mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
Merge 3.3.3 into 3.3
This commit is contained in:
commit
cba7950701
30
admin/javascript/lang/hr.js
Normal file
30
admin/javascript/lang/hr.js
Normal file
@ -0,0 +1,30 @@
|
||||
// This file was generated by silverstripe/cow from admin/javascript/lang/src/hr.js.
|
||||
// See https://github.com/tractorcow/cow 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
|
||||
}
|
||||
} else {
|
||||
ss.i18n.addDictionary('hr', {
|
||||
"CMSMAIN.BATCH_ARCHIVE_PROMPT": "You have {num} page(s) selected.\n\nAre you sure you want to archive these pages?\n\nThese pages and all of their children pages will be unpublished and sent to the archive.",
|
||||
"CMSMAIN.BATCH_DELETELIVE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to delete these pages from live?",
|
||||
"CMSMAIN.BATCH_DELETE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to delete?",
|
||||
"CMSMAIN.BATCH_PUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to publish?",
|
||||
"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": "Označili ste {num} stranicu(a).\n\nJeste li sigurni da želite odjaviti?",
|
||||
"CMSMAIN.SELECTONEPAGE": "Molimo odaberite bar jednu stranicu",
|
||||
"Campaigns.ADDCAMPAIGN": "Dodaj kampanju",
|
||||
"Campaigns.ITEM_SUMMARY_PLURAL": "%s stavki",
|
||||
"Campaigns.ITEM_SUMMARY_SINGULAR": "%s stavka",
|
||||
"Campaigns.PUBLISHCAMPAIGN": "Objavi kampanju",
|
||||
"Campaigns.REVERTCAMPAIGN": "Vrati",
|
||||
"LeftAndMain.CONFIRMUNSAVED": "Jeste li sigurni da želite otići s ove stranice?\n\nUPOZORENJE: Vaše promjene nisu spremljene.\n\nPritisnike OK za nastavka, ili Odustani za ostati na trenutnoj stranici.",
|
||||
"LeftAndMain.CONFIRMUNSAVEDSHORT": "UPOZORENJE: Vaše promjene nisu spremljene.",
|
||||
"LeftAndMain.PAGEWASDELETED": "Ova stranica je obrisana. Za uređivanje stranice, odaberite je s lijeve stranice.",
|
||||
"ModelAdmin.DELETED": "Obrisano",
|
||||
"ModelAdmin.REALLYDELETE": "Jeste li sigurni da želite obrisati?",
|
||||
"ModelAdmin.SAVED": "Spremljeno",
|
||||
"ModelAdmin.VALIDATIONERROR": "Greška validacije",
|
||||
"SecurityAdmin.BATCHACTIONSDELETECONFIRM": "Jeste li sigurni da želite obrisati %s grupe?"
|
||||
});
|
||||
}
|
@ -6,18 +6,18 @@ if (typeof(ss) === 'undefined' || typeof(ss.i18n) === 'undefined') {
|
||||
}
|
||||
} else {
|
||||
ss.i18n.addDictionary('ru', {
|
||||
"CMSMAIN.BATCH_ARCHIVE_PROMPT": "You have {num} page(s) selected.\n\nAre you sure you want to archive these pages?\n\nThese pages and all of their children pages will be unpublished and sent to the archive.",
|
||||
"CMSMAIN.BATCH_DELETELIVE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to delete these pages from live?",
|
||||
"CMSMAIN.BATCH_DELETE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to delete?",
|
||||
"CMSMAIN.BATCH_PUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to publish?",
|
||||
"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",
|
||||
"CMSMAIN.BATCH_ARCHIVE_PROMPT": "Вы выбрали {num} страниц(у)\nВы уверены что хотите отправить их в архив?\n\nПубликации этих страниц и их под-страниц будут отменены и отправлены в архив. ",
|
||||
"CMSMAIN.BATCH_DELETELIVE_PROMPT": "Вы выбрали {num} страниц(у)\n\nВы уверены что хотите отменить публикацию этих страниц?",
|
||||
"CMSMAIN.BATCH_DELETE_PROMPT": "Вы выбрали {num} страниц(у)\n\nВы уверены что хотите их удалить?",
|
||||
"CMSMAIN.BATCH_PUBLISH_PROMPT": "Вы выбрали {num} страниц(у)\n\nВы уверены что хотите их опубликовать?",
|
||||
"CMSMAIN.BATCH_RESTORE_PROMPT": "Вы выбрали {num} страниц(у)\n\nВы уверены что хотите восстановить эти страницы в черновик?\n\nПод-страницы архивных страниц будут восстановлены в корень если эти страницы также не отмечены для восстановления.",
|
||||
"CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Вы выбрали {num} страниц(у)\n\nВы уверены что хотите отменить их публикацию?",
|
||||
"CMSMAIN.SELECTONEPAGE": "Пожалуйста, выберите хотя бы одну страницу.",
|
||||
"Campaigns.ADDCAMPAIGN": "Добавить кампанию",
|
||||
"Campaigns.ITEM_SUMMARY_PLURAL": "%s элементов",
|
||||
"Campaigns.ITEM_SUMMARY_SINGULAR": "%s элемент",
|
||||
"Campaigns.PUBLISHCAMPAIGN": "Опубликовать кампанию",
|
||||
"Campaigns.REVERTCAMPAIGN": "Отменить",
|
||||
"LeftAndMain.CONFIRMUNSAVED": "Вы действительно хотите покинуть эту страницу?\n\nВНИМАНИЕ: Ваши изменения не были сохранены.\n\nНажмите ОК, чтобы продолжить или Отмена, чтобы остаться на текущей странице.",
|
||||
"LeftAndMain.CONFIRMUNSAVEDSHORT": "ВНИМАНИЕ: Ваши изменения не были сохранены",
|
||||
"LeftAndMain.PAGEWASDELETED": "Эта страница была удалена. Чтобы изменить страницу, выберите её из списка слева.",
|
||||
|
22
admin/javascript/lang/src/hr.js
Normal file
22
admin/javascript/lang/src/hr.js
Normal file
@ -0,0 +1,22 @@
|
||||
{
|
||||
"CMSMAIN.BATCH_ARCHIVE_PROMPT": "You have {num} page(s) selected.\n\nAre you sure you want to archive these pages?\n\nThese pages and all of their children pages will be unpublished and sent to the archive.",
|
||||
"CMSMAIN.BATCH_DELETELIVE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to delete these pages from live?",
|
||||
"CMSMAIN.BATCH_DELETE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to delete?",
|
||||
"CMSMAIN.BATCH_PUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to publish?",
|
||||
"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": "Označili ste {num} stranicu(a).\n\nJeste li sigurni da želite odjaviti?",
|
||||
"CMSMAIN.SELECTONEPAGE": "Molimo odaberite bar jednu stranicu",
|
||||
"Campaigns.ADDCAMPAIGN": "Dodaj kampanju",
|
||||
"Campaigns.ITEM_SUMMARY_PLURAL": "%s stavki",
|
||||
"Campaigns.ITEM_SUMMARY_SINGULAR": "%s stavka",
|
||||
"Campaigns.PUBLISHCAMPAIGN": "Objavi kampanju",
|
||||
"Campaigns.REVERTCAMPAIGN": "Vrati",
|
||||
"LeftAndMain.CONFIRMUNSAVED": "Jeste li sigurni da želite otići s ove stranice?\n\nUPOZORENJE: Vaše promjene nisu spremljene.\n\nPritisnike OK za nastavka, ili Odustani za ostati na trenutnoj stranici.",
|
||||
"LeftAndMain.CONFIRMUNSAVEDSHORT": "UPOZORENJE: Vaše promjene nisu spremljene.",
|
||||
"LeftAndMain.PAGEWASDELETED": "Ova stranica je obrisana. Za uređivanje stranice, odaberite je s lijeve stranice.",
|
||||
"ModelAdmin.DELETED": "Obrisano",
|
||||
"ModelAdmin.REALLYDELETE": "Jeste li sigurni da želite obrisati?",
|
||||
"ModelAdmin.SAVED": "Spremljeno",
|
||||
"ModelAdmin.VALIDATIONERROR": "Greška validacije",
|
||||
"SecurityAdmin.BATCHACTIONSDELETECONFIRM": "Jeste li sigurni da želite obrisati %s grupe?"
|
||||
}
|
@ -1,16 +1,16 @@
|
||||
{
|
||||
"CMSMAIN.BATCH_ARCHIVE_PROMPT": "You have {num} page(s) selected.\n\nAre you sure you want to archive these pages?\n\nThese pages and all of their children pages will be unpublished and sent to the archive.",
|
||||
"CMSMAIN.BATCH_DELETELIVE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to delete these pages from live?",
|
||||
"CMSMAIN.BATCH_DELETE_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to delete?",
|
||||
"CMSMAIN.BATCH_PUBLISH_PROMPT": "You have {num} page(s) selected.\n\nDo you really want to publish?",
|
||||
"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",
|
||||
"CMSMAIN.BATCH_ARCHIVE_PROMPT": "Вы выбрали {num} страниц(у)\nВы уверены что хотите отправить их в архив?\n\nПубликации этих страниц и их под-страниц будут отменены и отправлены в архив. ",
|
||||
"CMSMAIN.BATCH_DELETELIVE_PROMPT": "Вы выбрали {num} страниц(у)\n\nВы уверены что хотите отменить публикацию этих страниц?",
|
||||
"CMSMAIN.BATCH_DELETE_PROMPT": "Вы выбрали {num} страниц(у)\n\nВы уверены что хотите их удалить?",
|
||||
"CMSMAIN.BATCH_PUBLISH_PROMPT": "Вы выбрали {num} страниц(у)\n\nВы уверены что хотите их опубликовать?",
|
||||
"CMSMAIN.BATCH_RESTORE_PROMPT": "Вы выбрали {num} страниц(у)\n\nВы уверены что хотите восстановить эти страницы в черновик?\n\nПод-страницы архивных страниц будут восстановлены в корень если эти страницы также не отмечены для восстановления.",
|
||||
"CMSMAIN.BATCH_UNPUBLISH_PROMPT": "Вы выбрали {num} страниц(у)\n\nВы уверены что хотите отменить их публикацию?",
|
||||
"CMSMAIN.SELECTONEPAGE": "Пожалуйста, выберите хотя бы одну страницу.",
|
||||
"Campaigns.ADDCAMPAIGN": "Добавить кампанию",
|
||||
"Campaigns.ITEM_SUMMARY_PLURAL": "%s элементов",
|
||||
"Campaigns.ITEM_SUMMARY_SINGULAR": "%s элемент",
|
||||
"Campaigns.PUBLISHCAMPAIGN": "Опубликовать кампанию",
|
||||
"Campaigns.REVERTCAMPAIGN": "Отменить",
|
||||
"LeftAndMain.CONFIRMUNSAVED": "Вы действительно хотите покинуть эту страницу?\n\nВНИМАНИЕ: Ваши изменения не были сохранены.\n\nНажмите ОК, чтобы продолжить или Отмена, чтобы остаться на текущей странице.",
|
||||
"LeftAndMain.CONFIRMUNSAVEDSHORT": "ВНИМАНИЕ: Ваши изменения не были сохранены",
|
||||
"LeftAndMain.PAGEWASDELETED": "Эта страница была удалена. Чтобы изменить страницу, выберите её из списка слева.",
|
||||
|
@ -23,7 +23,7 @@ class VersionedRequestFilter implements RequestFilter {
|
||||
'You must log in with your CMS password in order to view the draft or archived content. '.
|
||||
'<a href="%s">Click here to go back to the published site.</a>'
|
||||
),
|
||||
Controller::join_links(Director::baseURL(), $request->getURL(), "?stage=Live")
|
||||
Convert::raw2xml(Controller::join_links(Director::baseURL(), $request->getURL(), "?stage=Live"))
|
||||
);
|
||||
|
||||
// Force output since RequestFilter::preRequest doesn't support response overriding
|
||||
|
49
docs/en/04_Changelogs/3.3.3.md
Normal file
49
docs/en/04_Changelogs/3.3.3.md
Normal file
@ -0,0 +1,49 @@
|
||||
# 3.3.3
|
||||
|
||||
<!--- Changes below this line will be automatically regenerated -->
|
||||
|
||||
## Change Log
|
||||
|
||||
### Security
|
||||
|
||||
* 2016-08-02 [049cdef](https://github.com/silverstripe/silverstripe-framework/commit/049cdefacfd3122d59d5488c1317f999fe8aacc4) Fix value / title escaping in CheckboxSetField and OptionsetField (Damian Mooyman) - See [ss-2016-015](http://www.silverstripe.org/download/security-releases/ss-2016-015)
|
||||
* 2016-07-25 [fa7f5af](https://github.com/silverstripe/silverstripe-framework/commit/fa7f5af8618a83c865b11fd6cc981ad9661046e6) Autologin cookies are ignored if autologin is disabled (Daniel Hensby) - See [ss-2016-014](http://www.silverstripe.org/download/security-releases/ss-2016-014)
|
||||
* 2016-07-22 [83e3302](https://github.com/silverstripe/silverstripe-framework/commit/83e3302c0425d9b0e4fe42e82e3df03379f4dca5) Uncasted member name (Daniel Hensby) - See [ss-2016-013](http://www.silverstripe.org/download/security-releases/ss-2016-013)
|
||||
* 2016-07-15 [f85dea2](https://github.com/silverstripe/silverstripe-framework/commit/f85dea2e6d5b303abd43b5e5efc07c66c8d2acf4) Reset `Member::Salt` on password change (Daniel Hensby) - See [ss-2016-008](http://www.silverstripe.org/download/security-releases/ss-2016-008)
|
||||
* 2016-07-14 [6d41db7](https://github.com/silverstripe/silverstripe-framework/commit/6d41db77fa78f473db7bcff389456c980ef4e412) ChangePasswordForm does not check $member->canLogin before login (Daniel Hensby) - See [ss-2016-011](http://www.silverstripe.org/download/security-releases/ss-2016-011)
|
||||
* 2016-07-14 [efa20d2](https://github.com/silverstripe-labs/silverstripe-reports/commit/efa20d2da03f80758cce7fe697c62f7f42fe098a) Missing ACL check on ReportAdmin (Daniel Hensby) - See [ss-2016-012](http://www.silverstripe.org/download/security-releases/ss-2016-012)
|
||||
* 2016-05-03 [3fa84cf](https://github.com/silverstripe/silverstripe-framework/commit/3fa84cf0c64a539d78600c36364817a8e38411d8) Encode user supplied URL for embeding into page (Daniel Hensby) - See [ss-2016-007](http://www.silverstripe.org/download/security-releases/ss-2016-007)
|
||||
|
||||
### Bugfixes
|
||||
|
||||
* 2016-08-15 [a6a9cd7](https://github.com/silverstripe/silverstripe-cms/commit/a6a9cd729fd24b19f7b39fdeb867a491489687e0) Fix regression in FormField casting (Damian Mooyman)
|
||||
* 2016-08-02 [cd80d50](https://github.com/silverstripe/silverstripe-framework/commit/cd80d501f9eb12d9aca3e65f742041b142ee659f) Fix unset config options returning isset() = true (Damian Mooyman)
|
||||
* 2016-07-25 [3306deb](https://github.com/silverstripe/silverstripe-cms/commit/3306deb69b88473efac009f46a90cbaa6bb27351) Fix link concatenation in SilverStripeNavigator (#1560) (Damian Mooyman)
|
||||
* 2016-07-20 [319d6d2](https://github.com/silverstripe/silverstripe-framework/commit/319d6d293e873d989c55473a0aa7ae1679010474) Fix doclink (#5827) (Damian Mooyman)
|
||||
* 2016-07-19 [10e06dc](https://github.com/silverstripe/silverstripe-cms/commit/10e06dce507c6f9b3588e4f8669ce36ee843f79e) Fixes #1054 By preventing errors in the CMS _only_. (Russell Michell)
|
||||
* 2016-07-15 [b3fea37](https://github.com/silverstripe/silverstripe-framework/commit/b3fea3723fae822068a6b761a682011b0970fff5) Fixes support for "inline" form actions (fixes #2534) (Loz Calver)
|
||||
* 2016-07-12 [24efc7e](https://github.com/silverstripe/silverstripe-framework/commit/24efc7edf83bb06b5a01080d2742c07ef68d21b2) Fix sorting ArrayList with sql-like syntax (Damian Mooyman)
|
||||
* 2016-07-12 [8123c43](https://github.com/silverstripe/silverstripe-cms/commit/8123c433f01ca1ce59062e45ad90bac13be1e990) Fix getAbsoluteLiveLink() concatenation (Damian Mooyman)
|
||||
* 2016-07-12 [87477a1](https://github.com/silverstripe-labs/silverstripe-reports/commit/87477a1e01d03ebee7eb71c352b3da47da73a9f2) Fix incorrect url manipulation (Damian Mooyman)
|
||||
* 2016-07-07 [4aa1fc2](https://github.com/silverstripe/silverstripe-framework/commit/4aa1fc2d2cafd1c90401896cefb03e64b530a59c) Changed form fields that call renderWith in Field() to call parent::Field() instead (#5783) (Ed Chipman)
|
||||
* 2016-07-07 [27cea80](https://github.com/silverstripe/silverstripe-framework/commit/27cea80b15a986d43b832658b13d01c08a5cfce1) SS_ConfigStaticManifest_Parser failed to handle ::class syntax (fixes #5701) (#5781) (Loz Calver)
|
||||
* 2016-07-01 [39238d9](https://github.com/silverstripe/silverstripe-framework/commit/39238d908e0ed077d7aaf773562749468b6827ee) falsey attribute values in shortcodes now work (Daniel Hensby)
|
||||
* 2016-06-30 [2cdfe6c](https://github.com/silverstripe/silverstripe-framework/commit/2cdfe6cc21f0cb253401fa169b5e1c3bb8738d43) Use RAW for DBField template helpers (Daniel Hensby)
|
||||
* 2016-06-30 [b0f237b](https://github.com/silverstripe/silverstripe-framework/commit/b0f237bb3a336eea9f3a9f9bece2b65661c03cbc) Use RAW instead of Value for parsing shortcodes (Daniel Hensby)
|
||||
* 2016-06-13 [f0d4951](https://github.com/silverstripe/silverstripe-framework/commit/f0d49518152bb9743e32174bc870fac6951c161d) for #5683: Address security warning in CMS when attempting to access <iframe> contents (Back-porting fix from PR #5163) (Patrick Nelson)
|
||||
* 2016-06-08 [bf00810](https://github.com/silverstripe/silverstripe-framework/commit/bf00810e1f5a7164d74ad66f3d03e813d81dfa25) Fix buttonClicked() error (Damian Mooyman)
|
||||
* 2016-05-31 [eba89b9](https://github.com/silverstripe/silverstripe-cms/commit/eba89b9520a0103e4c0cb4b6730c3c0742f8b0d9) OldPageRedirector no longer loops infinitely if 404 thrown on existing page (Daniel Hensby)
|
||||
* 2016-05-31 [341f49c](https://github.com/silverstripe/silverstripe-framework/commit/341f49c630c23ee665c195250c19935763172e36) Fixed lookup of next closest visible field for focus restoring (fixes #5618) (UndefinedOffset)
|
||||
* 2016-05-27 [f1a0aef](https://github.com/silverstripe/silverstripe-framework/commit/f1a0aef0d7e18b921b53a381ff8489bc5c12740b) fix CMS_ACCESS permission being ignored if in incorrect order in array (Damian Mooyman)
|
||||
* 2016-05-21 [decd7e5](https://github.com/silverstripe/silverstripe-framework/commit/decd7e5c57a0839cb873c86782a870326ffa175a) Fix getFinalisedQuery not including all queried columns (Damian Mooyman)
|
||||
* 2016-05-20 [8382685](https://github.com/silverstripe/silverstripe-framework/commit/83826850346bc486bc4599dca56067897961cbfa) #5557 Tests with no DB requirements wont create test DB (Daniel Hensby)
|
||||
* 2016-05-18 [62bd26d](https://github.com/silverstripe/silverstripe-framework/commit/62bd26d11ab9c9bf5b91ba8abb776ab3a4813a18) Fix suppression of display_errors in ErrorControlChain (Damian Mooyman)
|
||||
* 2016-05-16 [79d0590](https://github.com/silverstripe/silverstripe-framework/commit/79d05906286698e7cf7274703088a47c54b106f2) Fix singleton('DBLocale') (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-19 [43dcde5](https://github.com/silverstripe/silverstripe-framework/commit/43dcde5197e0995225235f69937ed57bec0cd7e2) Hierarchy was incorrectly unexpanding nodes that had been previously expanded (madmatt)
|
||||
* 2016-01-22 [4bd66b9](https://github.com/silverstripe/silverstripe-framework/commit/4bd66b9d3693492806bb4e9a512f8ae623c6a306) for #4909: Ensure RSSFeed_Entry is instantiated using the injector. (Patrick Nelson)
|
||||
* 2015-04-21 [a7100e9](https://github.com/silverstripe/silverstripe-framework/commit/a7100e9006b27e7885eb2ce851d9bc0839ca4468) Object::parse_class_spec failed to parse associative arrays (Loz Calver)
|
19
docs/en/04_Changelogs/rc/3.3.3-rc2.md
Normal file
19
docs/en/04_Changelogs/rc/3.3.3-rc2.md
Normal file
@ -0,0 +1,19 @@
|
||||
# 3.3.3-rc2
|
||||
|
||||
<!--- Changes below this line will be automatically regenerated -->
|
||||
|
||||
## Change Log
|
||||
|
||||
### Security
|
||||
|
||||
* 2016-08-02 [049cdef](https://github.com/silverstripe/silverstripe-framework/commit/049cdefacfd3122d59d5488c1317f999fe8aacc4) Fix value / title escaping in CheckboxSetField and OptionsetField (Damian Mooyman) - See [ss-2016-015](http://www.silverstripe.org/download/security-releases/ss-2016-015)
|
||||
* 2016-07-25 [fa7f5af](https://github.com/silverstripe/silverstripe-framework/commit/fa7f5af8618a83c865b11fd6cc981ad9661046e6) Autologin cookies are ignored if autologin is disabled (Daniel Hensby) - See [ss-2016-014](http://www.silverstripe.org/download/security-releases/ss-2016-014)
|
||||
* 2016-07-22 [83e3302](https://github.com/silverstripe/silverstripe-framework/commit/83e3302c0425d9b0e4fe42e82e3df03379f4dca5) Uncasted member name (Daniel Hensby) - See [ss-2016-013](http://www.silverstripe.org/download/security-releases/ss-2016-013)
|
||||
* 2016-07-15 [f85dea2](https://github.com/silverstripe/silverstripe-framework/commit/f85dea2e6d5b303abd43b5e5efc07c66c8d2acf4) Reset `Member::Salt` on password change (Daniel Hensby) - See [ss-2016-008](http://www.silverstripe.org/download/security-releases/ss-2016-008)
|
||||
* 2016-07-14 [6d41db7](https://github.com/silverstripe/silverstripe-framework/commit/6d41db77fa78f473db7bcff389456c980ef4e412) ChangePasswordForm does not check $member->canLogin before login (Daniel Hensby) - See [ss-2016-011](http://www.silverstripe.org/download/security-releases/ss-2016-011)
|
||||
* 2016-07-14 [efa20d2](https://github.com/silverstripe-labs/silverstripe-reports/commit/efa20d2da03f80758cce7fe697c62f7f42fe098a) Missing ACL check on ReportAdmin (Daniel Hensby) - See [ss-2016-012](http://www.silverstripe.org/download/security-releases/ss-2016-012)
|
||||
* 2016-05-03 [3fa84cf](https://github.com/silverstripe/silverstripe-framework/commit/3fa84cf0c64a539d78600c36364817a8e38411d8) Encode user supplied URL for embeding into page (Daniel Hensby) - See [ss-2016-007](http://www.silverstripe.org/download/security-releases/ss-2016-007)
|
||||
|
||||
### Bugfixes
|
||||
|
||||
* 2016-08-15 [a6a9cd7](https://github.com/silverstripe/silverstripe-cms/commit/a6a9cd729fd24b19f7b39fdeb867a491489687e0) Fix regression in FormField casting (Damian Mooyman)
|
@ -132,11 +132,14 @@ class CheckboxSetField extends OptionsetField {
|
||||
}
|
||||
|
||||
foreach($source as $value => $item) {
|
||||
// Ensure $title is cast for template
|
||||
if($item instanceof DataObject) {
|
||||
$value = $item->ID;
|
||||
$title = $item->Title;
|
||||
} else {
|
||||
$title = $item->obj('Title');
|
||||
} elseif ($item instanceof DBField) {
|
||||
$title = $item;
|
||||
} else {
|
||||
$title = DBField::create_field('Text', $item);
|
||||
}
|
||||
|
||||
$itemID = $this->ID() . '_' . preg_replace('/[^a-zA-Z0-9]/', '', $value);
|
||||
|
@ -62,6 +62,11 @@ class OptionsetField extends DropdownField {
|
||||
|
||||
if($source) {
|
||||
foreach($source as $value => $title) {
|
||||
// Ensure $title is safely cast
|
||||
if ( !($title instanceof DBField) ) {
|
||||
$title = DBField::create_field('Text', $title);
|
||||
}
|
||||
|
||||
$itemID = $this->ID() . '_' . preg_replace('/[^a-zA-Z0-9]/', '', $value);
|
||||
$odd = ($odd + 1) % 2;
|
||||
$extraClass = $odd ? 'odd' : 'even';
|
||||
|
49
javascript/lang/hr.js
Normal file
49
javascript/lang/hr.js
Normal file
@ -0,0 +1,49 @@
|
||||
// This file was generated by silverstripe/cow from javascript/lang/src/hr.js.
|
||||
// See https://github.com/tractorcow/cow 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
|
||||
}
|
||||
} else {
|
||||
ss.i18n.addDictionary('hr', {
|
||||
"FILEIFRAMEFIELD.CONFIRMDELETE": "Jeste li sigurni da želite obrisati ovu datoteku?",
|
||||
"FILEIFRAMEFIELD.DELETEFILE": "Obriši datoteku",
|
||||
"FILEIFRAMEFIELD.DELETEIMAGE": "Obriši sliku",
|
||||
"FILEIFRAMEFIELD.UNATTACHFILE": "Un-Attach File",
|
||||
"GRIDFIELD.ERRORINTRANSACTION": "An error occured while fetching data from the server\n Please try again later.",
|
||||
"HASMANYFILEFIELD.UPLOADING": "Prebacujem... %s",
|
||||
"HtmlEditorField.SelectAnchor": "Odaberite sidro",
|
||||
"LOADING": "učitavam...",
|
||||
"LeftAndMain.IncompatBrowserWarning": "Vaš browser nije kompatibilan s CMS sučeljem. Molimo koristite Internet Explorer 7+, Google Chrome 10+ ili Mozilla Firefox 3.5+.",
|
||||
"RESTRICTEDTEXTFIELD.CHARCANTBEUSED": "The character '%s' cannot be used in this field",
|
||||
"TABLEFIELD.DELETECONFIRMMESSAGE": "Are you sure you want to delete this record?",
|
||||
"TreeDropdownField.ENTERTOSEARCH": "Press enter to search",
|
||||
"TreeDropdownField.FieldTitle": "Odaberi",
|
||||
"TreeDropdownField.OpenLink": "Otvori",
|
||||
"TreeDropdownField.SearchFieldTitle": "Odaberi ili traži",
|
||||
"UNIQUEFIELD.CANNOTLEAVEEMPTY": "Ovo polje ne može biti prazno",
|
||||
"UNIQUEFIELD.ENTERNEWVALUE": "Morate unesti novu vrijednost za ovo polje",
|
||||
"UNIQUEFIELD.SUGGESTED": "Promjenjene vrijednosti u '%s' : %s",
|
||||
"UPDATEURL.CONFIRM": "Would you like me to change the URL to:\n\n%s/\n\nClick Ok to change the URL, click Cancel to leave it as:\n\n%s",
|
||||
"UPDATEURL.CONFIRMURLCHANGED": "The URL has been changed to\n'%s'",
|
||||
"UploadField.ConfirmDelete": "Are you sure you want to remove this file from the server filesystem?",
|
||||
"UploadField.EMPTYRESULT": "Empty file upload result",
|
||||
"UploadField.Editing": "Uređujem...",
|
||||
"UploadField.HTML_MAXFILESIZE": "File exceeds MAX_FILE_SIZE (HTML form directive)",
|
||||
"UploadField.INVALIDEXTENSION": "Extension is not allowed",
|
||||
"UploadField.LOADING": "Učitavam ...",
|
||||
"UploadField.MAXNUMBEROFFILESSIMPLE": "Maksimalan broj datoteka premašen",
|
||||
"UploadField.NOFILEUPLOADED": "Datoteka nije uploadana",
|
||||
"UploadField.NOTMPFOLDER": "Nedostaje privremeni direktorij",
|
||||
"UploadField.ONLYPARTIALUPLOADED": "Datoteka je djelimično uploadana",
|
||||
"UploadField.OVERWRITEWARNING": "File with the same name already exists",
|
||||
"UploadField.PHP_MAXFILESIZE": "File exceeds upload_max_filesize (php.ini directive)",
|
||||
"UploadField.STOPEDBYEXTENSION": "File upload stopped by extension",
|
||||
"UploadField.TOOLARGE": "Veličina datoteke je prevelika",
|
||||
"UploadField.TOOSMALL": "Veličina datoteke je premala",
|
||||
"UploadField.UPLOADEDBYTES": "Uploaded bytes exceed file size",
|
||||
"UploadField.Uploaded": "Prenešeno",
|
||||
"UploadField.WRITEFAILED": "Failed to write file to disk",
|
||||
"VALIDATOR.FIELDREQUIRED": "Please fill out \"%s\", it is required."
|
||||
});
|
||||
}
|
41
javascript/lang/src/hr.js
Normal file
41
javascript/lang/src/hr.js
Normal file
@ -0,0 +1,41 @@
|
||||
{
|
||||
"FILEIFRAMEFIELD.CONFIRMDELETE": "Jeste li sigurni da želite obrisati ovu datoteku?",
|
||||
"FILEIFRAMEFIELD.DELETEFILE": "Obriši datoteku",
|
||||
"FILEIFRAMEFIELD.DELETEIMAGE": "Obriši sliku",
|
||||
"FILEIFRAMEFIELD.UNATTACHFILE": "Un-Attach File",
|
||||
"GRIDFIELD.ERRORINTRANSACTION": "An error occured while fetching data from the server\n Please try again later.",
|
||||
"HASMANYFILEFIELD.UPLOADING": "Prebacujem... %s",
|
||||
"HtmlEditorField.SelectAnchor": "Odaberite sidro",
|
||||
"LOADING": "učitavam...",
|
||||
"LeftAndMain.IncompatBrowserWarning": "Vaš browser nije kompatibilan s CMS sučeljem. Molimo koristite Internet Explorer 7+, Google Chrome 10+ ili Mozilla Firefox 3.5+.",
|
||||
"RESTRICTEDTEXTFIELD.CHARCANTBEUSED": "The character '%s' cannot be used in this field",
|
||||
"TABLEFIELD.DELETECONFIRMMESSAGE": "Are you sure you want to delete this record?",
|
||||
"TreeDropdownField.ENTERTOSEARCH": "Press enter to search",
|
||||
"TreeDropdownField.FieldTitle": "Odaberi",
|
||||
"TreeDropdownField.OpenLink": "Otvori",
|
||||
"TreeDropdownField.SearchFieldTitle": "Odaberi ili traži",
|
||||
"UNIQUEFIELD.CANNOTLEAVEEMPTY": "Ovo polje ne može biti prazno",
|
||||
"UNIQUEFIELD.ENTERNEWVALUE": "Morate unesti novu vrijednost za ovo polje",
|
||||
"UNIQUEFIELD.SUGGESTED": "Promjenjene vrijednosti u '%s' : %s",
|
||||
"UPDATEURL.CONFIRM": "Would you like me to change the URL to:\n\n%s/\n\nClick Ok to change the URL, click Cancel to leave it as:\n\n%s",
|
||||
"UPDATEURL.CONFIRMURLCHANGED": "The URL has been changed to\n'%s'",
|
||||
"UploadField.ConfirmDelete": "Are you sure you want to remove this file from the server filesystem?",
|
||||
"UploadField.EMPTYRESULT": "Empty file upload result",
|
||||
"UploadField.Editing": "Uređujem...",
|
||||
"UploadField.HTML_MAXFILESIZE": "File exceeds MAX_FILE_SIZE (HTML form directive)",
|
||||
"UploadField.INVALIDEXTENSION": "Extension is not allowed",
|
||||
"UploadField.LOADING": "Učitavam ...",
|
||||
"UploadField.MAXNUMBEROFFILESSIMPLE": "Maksimalan broj datoteka premašen",
|
||||
"UploadField.NOFILEUPLOADED": "Datoteka nije uploadana",
|
||||
"UploadField.NOTMPFOLDER": "Nedostaje privremeni direktorij",
|
||||
"UploadField.ONLYPARTIALUPLOADED": "Datoteka je djelimično uploadana",
|
||||
"UploadField.OVERWRITEWARNING": "File with the same name already exists",
|
||||
"UploadField.PHP_MAXFILESIZE": "File exceeds upload_max_filesize (php.ini directive)",
|
||||
"UploadField.STOPEDBYEXTENSION": "File upload stopped by extension",
|
||||
"UploadField.TOOLARGE": "Veličina datoteke je prevelika",
|
||||
"UploadField.TOOSMALL": "Veličina datoteke je premala",
|
||||
"UploadField.UPLOADEDBYTES": "Uploaded bytes exceed file size",
|
||||
"UploadField.Uploaded": "Prenešeno",
|
||||
"UploadField.WRITEFAILED": "Failed to write file to disk",
|
||||
"VALIDATOR.FIELDREQUIRED": "Please fill out \"%s\", it is required."
|
||||
}
|
@ -210,12 +210,15 @@ cs:
|
||||
JsType: 'Javascript soubor'
|
||||
Mp3Type: 'MP3 audio soubor'
|
||||
MpgType: 'MPEG video soubor'
|
||||
NOFILESIZE: 'Velikost souboru je 0 bajtů.'
|
||||
NOVALIDUPLOAD: 'Soubor není validní pro nahrání'
|
||||
Name: Jméno
|
||||
PLURALNAME: Soubory
|
||||
PdfType: 'Adobe Acrobat PDF soubor'
|
||||
PngType: 'PNG obrázek - vhodný jako univerzálmí formát'
|
||||
SINGULARNAME: Soubor
|
||||
TOOLARGE: 'Velikost souboru je příliš velká, povolené maximum {size}'
|
||||
TOOLARGESHORT: 'Velikost souboru překračuje {size}'
|
||||
TiffType: 'Tiff formát obrázku'
|
||||
Title: Titulek
|
||||
WavType: 'WAV audo soubor'
|
||||
@ -378,6 +381,8 @@ cs:
|
||||
FROMWEB: 'Z webu'
|
||||
FindInFolder: 'Hledat ve složce'
|
||||
IMAGEALT: 'Alternativní text (alt)'
|
||||
IMAGEALTTEXT: 'Alternativní text (alt) - ukáže se, když obrázek nemúže být zobrazen'
|
||||
IMAGEALTTEXTDESC: 'Zobrazeno na obrazovce, anebo když obrázek nemůže být zobrazen'
|
||||
IMAGEDIMENSIONS: Rozměry
|
||||
IMAGEHEIGHTPX: Výška
|
||||
IMAGETITLE: 'Titul text (tooltip) - další informace o obrázku'
|
||||
@ -412,10 +417,13 @@ cs:
|
||||
CANCEL: Storno
|
||||
CANT_REORGANISE: 'Nemáte oprávnění měnit stránky nejvyšší úrovně. Vaše změna nebyla uložena.'
|
||||
DELETED: Smazáno.
|
||||
DropdownBatchActionsDefault: Akce
|
||||
HELP: Nápověda
|
||||
PAGETYPE: 'Typ stránky'
|
||||
PERMAGAIN: 'Byli jste odhlášeni z CMS. Pokud se chcete znovu přihlásit, zadejte níže své uživatelské jméno a heslo.'
|
||||
PERMALREADY: 'Omlouvám se, ale nemůžete vstoupit do této části CMS. Pokud se chcete přihlásit jako někdo jiný, udělejte tak níže.'
|
||||
PERMDEFAULT: 'Musíte být přihlášen/a k přístup do oblasti administrace, níže zadejte vaše přihlašovací údaje, prosím.'
|
||||
PLEASESAVE: 'Prosím uložte stránku: Tato stránka nemohla být aktualizována, protože ještě nebyla uložena.'
|
||||
PreviewButton: Náhled
|
||||
REORGANISATIONSUCCESSFUL: 'Strom webu reorganizován úspěšně.'
|
||||
SAVEDUP: Uloženo.
|
||||
@ -471,6 +479,7 @@ cs:
|
||||
SUBJECTPASSWORDRESET: 'Nulovací odkaz pro Vaše heslo'
|
||||
SURNAME: Příjmení
|
||||
TIMEFORMAT: 'Formát času'
|
||||
VALIDATIONMEMBEREXISTS: 'Již existuje člen se stejnou %s'
|
||||
ValidationIdentifierFailed: 'Nemůžete přepsat existujícího člena #{id} s identickým identifikátorem ({name} = {value}))'
|
||||
WELCOMEBACK: 'Vítejte zpět, {firstname}'
|
||||
YOUROLDPASSWORD: 'Vaše staré heslo'
|
||||
|
222
lang/hr.yml
222
lang/hr.yml
@ -7,38 +7,96 @@ hr:
|
||||
DIM: Dimenzije
|
||||
FILENAME: Naziv datoteke
|
||||
FOLDER: Direktorij
|
||||
HEIGHT: Visina
|
||||
LASTEDIT: 'Zadnja promjena'
|
||||
OWNER: Vlasnik
|
||||
SIZE: 'Veličina datoteke'
|
||||
TITLE: Naslov
|
||||
TYPE: 'Tip datoteke'
|
||||
URL: Link
|
||||
WIDTH: Širina
|
||||
AssetUploadField:
|
||||
ChooseFiles: 'Odaberite datoteke'
|
||||
DRAGFILESHERE: 'Povucite datoteke ovdje'
|
||||
DROPAREA: 'Područje ubacivanja'
|
||||
EDITALL: 'Uredi sve'
|
||||
EDITANDORGANIZE: 'Uredi i organiziraj'
|
||||
EDITINFO: 'Uredi datoteke'
|
||||
FILES: Datoteke
|
||||
FROMCOMPUTER: 'Odaberite datoteke sa svog računala'
|
||||
FROMCOMPUTERINFO: 'Uploadajte sa svog računala'
|
||||
INSERTURL: 'Ubaci sa linka'
|
||||
REMOVEINFO: 'Izbrišite ovu datoteku s ovog polja'
|
||||
TOTAL: Ukupno
|
||||
TOUPLOAD: 'Odaberite datoteke za upload...'
|
||||
UPLOADINPROGRESS: 'Molim pričekajte... upload u tijeku'
|
||||
UPLOADOR: ILI
|
||||
BBCodeParser:
|
||||
ALIGNEMENT: Poravnanje
|
||||
BOLD: 'Bold Text'
|
||||
BOLDEXAMPLE: Bold
|
||||
BackLink_Button_ss:
|
||||
Back: Nazad
|
||||
BasicAuth:
|
||||
ENTERINFO: 'Unesite korisničko ime i lozinu'
|
||||
ERRORNOTADMIN: 'Korisnik nije administrator'
|
||||
ERRORNOTREC: 'Korisničko ime / lozinka nije prepoznata'
|
||||
Boolean:
|
||||
ANY: Bilo koji
|
||||
NOANSWER: 'Ne'
|
||||
YESANSWER: 'Da'
|
||||
CAMPAIGNS:
|
||||
ADDTOCAMPAIGN: 'Dodaj kampanji'
|
||||
CMSLoadingScreen_ss:
|
||||
LOADING: učitavam...
|
||||
CMSMain:
|
||||
SAVE: Snimi
|
||||
CMSMemberLoginForm:
|
||||
BUTTONFORGOTPASSWORD: 'Zaboravljena lozinka?'
|
||||
CMSPagesController_Tools_ss:
|
||||
FILTER: Filter
|
||||
CMSProfileController:
|
||||
MENUTITLE: 'Moj profil'
|
||||
CMSSecurity:
|
||||
SUCCESS: Uspjeh
|
||||
TimedOutTitleAnonymous: 'Vaša sesija je istekla.'
|
||||
TimedOutTitleMember: 'Bok {name}!<br />Vaša sesija je istekla.'
|
||||
CampaignAdmin:
|
||||
MENUTITLE: Kampanje
|
||||
Campaigns:
|
||||
AddToCampaign: 'Dodaj kampanji'
|
||||
ChangePasswordEmail_ss:
|
||||
CHANGEPASSWORDTEXT1: 'Promjenili ste lozinku za '
|
||||
CHANGEPASSWORDTEXT2: 'Za prijavu koristite slijedeće podatke'
|
||||
CHANGEPASSWORDTEXT3: 'Promjeni lozinku'
|
||||
EMAIL: Email
|
||||
HELLO: Pozdrav
|
||||
PASSWORD: Lozinka
|
||||
ChangeSet:
|
||||
DESCRIPTION_AND: '{first} i {second}'
|
||||
DESCRIPTION_ITEM: stavka
|
||||
DESCRIPTION_ITEMS: stavke
|
||||
DESCRIPTION_LIST_FIRST: '{item}'
|
||||
DESCRIPTION_LIST_LAST: '{list}, i {item}'
|
||||
DESCRIPTION_LIST_MID: '{list}, {item}'
|
||||
DESCRIPTION_OTHER_ITEM: 'ostala stavka'
|
||||
DESCRIPTION_OTHER_ITEMS: 'ostale stavke'
|
||||
NAME: Naziv
|
||||
PLURALNAME: Kampanje
|
||||
SINGULARNAME: Kampanja
|
||||
STATE: Stanje
|
||||
CheckboxField:
|
||||
NOANSWER: 'Ne'
|
||||
YESANSWER: 'Da'
|
||||
ConfirmedPasswordField:
|
||||
SHOWONCLICKTITLE: 'Promjenite lozinku'
|
||||
CreditCardField:
|
||||
FIRST: prvi
|
||||
FOURTH: četvrti
|
||||
SECOND: drugi
|
||||
THIRD: treći
|
||||
CurrencyField:
|
||||
CURRENCYSYMBOL: $
|
||||
DataObject:
|
||||
PLURALNAME: 'Podatkovni objekti'
|
||||
SINGULARNAME: 'Podatkovni objekt'
|
||||
@ -70,9 +128,37 @@ hr:
|
||||
CHOOSE: (Odaberite)
|
||||
EmailField:
|
||||
VALIDATION: 'Molimo unesite email adresu'
|
||||
Enum:
|
||||
ANY: bilo koji
|
||||
File:
|
||||
AviType: 'AVI video datoteka'
|
||||
Content: Sadržaj
|
||||
CssType: 'CSS datoteka'
|
||||
DocType: 'Word dokument'
|
||||
Filename: Naziv datoteke
|
||||
GifType: 'GIF slika - dobra za dijagrame'
|
||||
GzType: 'GZIP komprimirana datoteka'
|
||||
HtlType: 'HTML datoteka'
|
||||
HtmlType: 'HTML datoteka'
|
||||
INVALIDEXTENSION: 'Ekstenzija nije dozvoljena (valjane: {extensions}) '
|
||||
INVALIDEXTENSIONSHORT: 'Ekstenzija nije dozvoljena'
|
||||
IcoType: 'Slika ikone'
|
||||
JpgType: 'JPEG slika - dobra za fotografije'
|
||||
JsType: 'Javascript datoteka'
|
||||
Mp3Type: 'MP3 zvuk datoteka'
|
||||
MpgType: 'MPEG video datoteka'
|
||||
NOVALIDUPLOAD: 'Datoteka nije valjan upload'
|
||||
Name: Naziv
|
||||
PLURALNAME: Datoteke
|
||||
PngType: 'PNG slika - dobar generalan format'
|
||||
SINGULARNAME: Datoteka
|
||||
Title: Naslov
|
||||
WavType: 'WAV zvuk datoteka'
|
||||
XlsType: 'Excel tablica'
|
||||
ZipType: 'ZIP komprimirana datoteka'
|
||||
Folder:
|
||||
PLURALNAME: Direktoriji
|
||||
SINGULARNAME: Direktorij
|
||||
ForgotPasswordEmail_ss:
|
||||
HELLO: Pozdrav
|
||||
TEXT1: 'Ovdje je Vaš'
|
||||
@ -83,22 +169,72 @@ hr:
|
||||
VALIDATIONNOTUNIQUE: 'Unešena vrijednost nije unikatna'
|
||||
VALIDATIONPASSWORDSDONTMATCH: 'Lozinke se ne slažu'
|
||||
VALIDATIONPASSWORDSNOTEMPTY: 'Lozinke moraju imati najmanje jedan broj i jedan alfanumerički znak'
|
||||
FormField:
|
||||
NONE: nijedan
|
||||
GridAction:
|
||||
DELETE_DESCRIPTION: Obriši
|
||||
Delete: Obriši
|
||||
GridField:
|
||||
Add: 'Dodaj {name}'
|
||||
Filter: Filter
|
||||
FilterBy: 'Filtriraj po'
|
||||
Find: Pronađi
|
||||
GridFieldDetailForm:
|
||||
CancelBtn: Odustani
|
||||
Create: Kreiraj
|
||||
Delete: Obriši
|
||||
DeletePermissionsFailure: 'Nema dozvole brisanja'
|
||||
Deleted: 'Obrisano %s %s'
|
||||
Save: Spremi
|
||||
Saved: 'Spremljeno {name} {link}'
|
||||
GridFieldEditButton_ss:
|
||||
EDIT: Uredi
|
||||
GridFieldItemEditView:
|
||||
Go_back: 'Idi nazad'
|
||||
Group:
|
||||
Code: 'Krupni kod'
|
||||
DefaultGroupTitleAdministrators: Administratori
|
||||
DefaultGroupTitleContentAuthors: 'Autori sadržaja'
|
||||
Description: Opis
|
||||
Locked: 'Zaključano?'
|
||||
PLURALNAME: Grupe
|
||||
Parent: 'Roditeljska grupa'
|
||||
SINGULARNAME: Grupa
|
||||
has_many_Permissions: Dozvole
|
||||
many_many_Members: Članovi
|
||||
HTMLEditorField:
|
||||
ANCHORVALUE: Sidro
|
||||
FILE: Datoteka
|
||||
FOLDER: Direktorij
|
||||
IMAGEDIMENSIONS: Dimenzije
|
||||
IMAGEHEIGHTPX: Visina
|
||||
IMAGEWIDTHPX: Širina
|
||||
LINK: 'Ubaci vezu'
|
||||
LINKFILE: 'Preuzmi datoteku'
|
||||
LINKINTERNAL: 'Stranica na ovom webu'
|
||||
LINKOPENNEWWIN: 'Otvori link u novom prozoru?'
|
||||
LINKTO: 'Poveži na'
|
||||
PAGE: Stranica
|
||||
URL: Link
|
||||
HtmlEditorField:
|
||||
ANCHORVALUE: Sidro
|
||||
BUTTONADDURL: 'Dodaj link'
|
||||
BUTTONINSERT: Ubaci
|
||||
BUTTONINSERTLINK: 'Ubaci vezu'
|
||||
BUTTONREMOVELINK: 'Obriši vezu'
|
||||
BUTTONUpdate: Ažuriraj
|
||||
CSSCLASS: 'Poravnanje / Stil'
|
||||
CSSCLASSCENTER: 'Centralno'
|
||||
CSSCLASSLEFT: 'Lijevo, sa okruženjem teksta.'
|
||||
CSSCLASSRIGHT: 'Desno, sa okruženjem teksta'
|
||||
DETAILS: Detalji
|
||||
EMAIL: 'Email adresa'
|
||||
FILE: Datoteka
|
||||
FOLDER: Direktorij
|
||||
FROMCOMPUTER: 'Sa računala'
|
||||
FROMWEB: 'Sa weba'
|
||||
FindInFolder: 'Pronađi u direktoriju'
|
||||
IMAGEALT: 'Alternativni tekst (alt)'
|
||||
IMAGEDIMENSIONS: Dimenzije
|
||||
IMAGEHEIGHTPX: Visina
|
||||
IMAGEWIDTHPX: Širina
|
||||
@ -111,18 +247,45 @@ hr:
|
||||
LINKOPENNEWWIN: 'Otvori vezu (link) u novom prozoru?'
|
||||
LINKTO: 'Poveži na'
|
||||
PAGE: Stranica
|
||||
Image:
|
||||
PLURALNAME: Datoteke
|
||||
SINGULARNAME: Datoteka
|
||||
Image_Cached:
|
||||
PLURALNAME: Datoteke
|
||||
SINGULARNAME: Datoteka
|
||||
Image_iframe_ss:
|
||||
TITLE: 'Iframe za upload slike'
|
||||
LeftAndMain:
|
||||
CANCEL: Odustani
|
||||
DELETED: Obrisano.
|
||||
HELP: Pomoć
|
||||
PERMAGAIN: 'Odjavili ste se sa sustava. Želite li se ponovno prijaviti upišite korisničko ime i lozinku.'
|
||||
PreviewButton: Pregled
|
||||
SAVEDUP: Spremljeno
|
||||
ValidationError: 'Greška validacije'
|
||||
VersionUnknown: nepoznato
|
||||
LeftAndMain_Menu_ss:
|
||||
Hello: Pozdrav
|
||||
LOGOUT: 'Odjava'
|
||||
LoginAttempt:
|
||||
Email: 'Email adresa'
|
||||
IP: 'IP adresa'
|
||||
Status: Status
|
||||
Member:
|
||||
ADDGROUP: 'Dodaj grupu'
|
||||
BUTTONCHANGEPASSWORD: 'Promjeni lozinku'
|
||||
BUTTONLOGIN: 'Prijava'
|
||||
BUTTONLOGINOTHER: 'Prijavite se kao netko drugi'
|
||||
BUTTONLOSTPASSWORD: 'Zaboravljena lozinka?'
|
||||
CANTEDIT: 'Nema prava za to'
|
||||
CONFIRMNEWPASSWORD: 'Potvrdite novu lozinku'
|
||||
CONFIRMPASSWORD: 'Potvrdi lozinku'
|
||||
CURRENT_PASSWORD: 'Trenutna lozinka'
|
||||
DATEFORMAT: 'Format datuma'
|
||||
DefaultAdminFirstname: 'Zadani administrator'
|
||||
DefaultDateTime: zadano
|
||||
EDIT_PASSWORD: 'Nova lozinka'
|
||||
EMAIL: Email
|
||||
ERRORNEWPASSWORD: 'Pogrešno ste upisali novu lozinku, pokušajte ponovno.'
|
||||
ERRORPASSWORDNOTMATCH: 'Vaša trenutna lozinka se ne podudara, probajte ponovno'
|
||||
FIRSTNAME: 'Ime'
|
||||
@ -136,10 +299,43 @@ hr:
|
||||
SURNAME: Prezime
|
||||
YOUROLDPASSWORD: 'Stara lozinka'
|
||||
belongs_many_many_Groups: Grupe
|
||||
db_LastVisited: 'Datum zadnje posjete'
|
||||
db_LockedOutUntil: 'Zaključano do'
|
||||
db_Password: Lozinka
|
||||
db_PasswordExpiry: 'Lozinka ističe'
|
||||
MemberAuthenticator:
|
||||
TITLE: 'E-mail & Lozinka'
|
||||
MemberDatetimeOptionsetField:
|
||||
Preview: Pregled
|
||||
ModelAdmin:
|
||||
IMPORT: 'Uvezi iz CSV'
|
||||
IMPORTEDRECORDS: 'Uveženo {count} zapisa.'
|
||||
NOCSVFILE: 'Molimo pretražite CSV datoteku za uvoz'
|
||||
NOIMPORT: 'Ništa za uvoz'
|
||||
RESET: Resetiraj
|
||||
Title: 'Klasa podataka'
|
||||
UPDATEDRECORDS: 'Osvježeno {count} zapisa.'
|
||||
ModelAdmin_Tools_ss:
|
||||
FILTER: Filter
|
||||
IMPORT: Uvoz
|
||||
ModelSidebar_ss:
|
||||
IMPORT_TAB_HEADER: Uvoz
|
||||
SEARCHLISTINGS: Traži
|
||||
MoneyField:
|
||||
FIELDLABELCURRENCY: Valuta
|
||||
Pagination:
|
||||
Page: Stranica
|
||||
View: Pregled
|
||||
Permission:
|
||||
AdminGroup: Administrator
|
||||
CMS_ACCESS_CATEGORY: 'CMS pristup'
|
||||
FULLADMINRIGHTS: 'Puna administrativna prava'
|
||||
PLURALNAME: Dozvole
|
||||
SINGULARNAME: Dozvola
|
||||
PermissionRole:
|
||||
PLURALNAME: Uloge
|
||||
SINGULARNAME: Uloga
|
||||
Title: Naslov
|
||||
PhoneNumberField:
|
||||
VALIDATION: 'Molim unesite ispravan telefonski broj'
|
||||
Security:
|
||||
@ -154,11 +350,37 @@ hr:
|
||||
NOTEPAGESECURED: 'Ova stranica je zaštićena. Prijavite se na sustav sa svojim pristupnim podatcima i odmah ćemo vas preusmjeriti.'
|
||||
NOTERESETPASSWORD: 'Unesite svoju e-mail adresu, a mi ćemo Vam poslati link putem kojega možete resetirati Vašu lozinku.'
|
||||
SecurityAdmin:
|
||||
MEMBERS: Članovi
|
||||
MENUTITLE: Sigurnost
|
||||
NEWGROUP: 'Nova Grupa'
|
||||
PERMISSIONS: Dozvole
|
||||
ROLES: Uloge
|
||||
TABROLES: Uloge
|
||||
Users: Korisnici
|
||||
SilverStripeNavigator:
|
||||
Auto: Aut
|
||||
Edit: Uredi
|
||||
EditView: 'Mod uređivanja'
|
||||
Width: širina
|
||||
SiteTree:
|
||||
TABMAIN: Osnovno
|
||||
TableListField:
|
||||
Print: Ispiši
|
||||
TableListField_PageControls_ss:
|
||||
OF: od
|
||||
ToggleField:
|
||||
LESS: manje
|
||||
MORE: više
|
||||
UploadField:
|
||||
ATTACHFILE: 'Dodaj datoteku'
|
||||
ATTACHFILES: 'Dodaj datoteke'
|
||||
AttachFile: 'Dodaj datoteku(e)'
|
||||
CHOOSEANOTHERFILE: 'Odaberi drugu datoteku'
|
||||
DELETE: 'Obriši iz datoteka'
|
||||
DOEDIT: Snimi
|
||||
EDIT: Uredi
|
||||
EDITINFO: 'Uredi ovu datoteku'
|
||||
FROMCOMPUTER: 'Sa računala'
|
||||
REMOVE: Ukloni
|
||||
Versioned:
|
||||
has_many_Versions: Verzije
|
||||
|
@ -1,5 +1,12 @@
|
||||
id_ID:
|
||||
AddToCampaign:
|
||||
ErrorCampaignPermissionDenied: 'Sepertinya Anda tidak memiliki ijin yang diperlukan untuk menambahkan {ObjectTitle} ke {CampaignTitle}'
|
||||
ErrorGeneral: 'Mohon maaf, ada kesalahan'
|
||||
ErrorNotFound: '{Type} tidak ditemukan'
|
||||
Success: 'Berhasil menambahkan {ObjectTitle} ke {CampaignTitle}'
|
||||
AssetAdmin:
|
||||
ALLOWEDEXTS: 'Ekstensi berkas yang diperbolehkan'
|
||||
HIDEALLOWEDEXTS: 'Sembunyikan ekstensi berkas yang diperbolehkan'
|
||||
NEWFOLDER: FolderBaru
|
||||
SHOWALLOWEDEXTS: 'Tampilkan ekstensi yang dibolehkan'
|
||||
AssetTableField:
|
||||
@ -13,6 +20,7 @@ id_ID:
|
||||
TITLE: Judul
|
||||
TYPE: 'Jenis berkas'
|
||||
URL: URL
|
||||
WIDTH: Lebar
|
||||
AssetUploadField:
|
||||
ChooseFiles: 'Pilih berkas'
|
||||
DRAGFILESHERE: 'Tarik berkas ke sini'
|
||||
@ -564,3 +572,6 @@ id_ID:
|
||||
UPLOADSINTO: 'disimpan ke /{path}'
|
||||
Versioned:
|
||||
has_many_Versions: Versi
|
||||
VersionedGridFieldItemRequest:
|
||||
ARCHIVE: Arsip
|
||||
Archived: '%s %s diarsipkan'
|
||||
|
155
lang/ru.yml
155
lang/ru.yml
@ -1,5 +1,13 @@
|
||||
ru:
|
||||
AddToCampaign:
|
||||
ErrorCampaignPermissionDenied: 'У вас не достаточно прав доступа для добавления {ObjectTitle} в {CampaignTitle}'
|
||||
ErrorGeneral: 'Произошла ошибка'
|
||||
ErrorItemPermissionDenied: 'У вас не достаточно прав доступа для добавления {ObjectTitle} к кампании'
|
||||
ErrorNotFound: '{Type} не обнаружен'
|
||||
Success: '{ObjectTitle} добавлен в {CampaignTitle}'
|
||||
AssetAdmin:
|
||||
ALLOWEDEXTS: 'Разрешённые расширения файлов для загрузки'
|
||||
HIDEALLOWEDEXTS: 'Скрыть разрешенные расширения'
|
||||
NEWFOLDER: Новая папка
|
||||
SHOWALLOWEDEXTS: 'Показать допустимые расширения'
|
||||
AssetTableField:
|
||||
@ -7,12 +15,14 @@ ru:
|
||||
DIM: Размеры
|
||||
FILENAME: Имя файла
|
||||
FOLDER: Папка
|
||||
HEIGHT: Высота
|
||||
LASTEDIT: 'Последнее изменение'
|
||||
OWNER: Владелец
|
||||
SIZE: 'Размер'
|
||||
TITLE: Название
|
||||
TYPE: 'Тип'
|
||||
URL: URL
|
||||
WIDTH: Ширина
|
||||
AssetUploadField:
|
||||
ChooseFiles: 'Выберите файлы'
|
||||
DRAGFILESHERE: 'Перетащите файлы сюда'
|
||||
@ -23,7 +33,10 @@ ru:
|
||||
FILES: Файлы
|
||||
FROMCOMPUTER: 'Выберите файлы с диска вашего компьютера'
|
||||
FROMCOMPUTERINFO: 'Загрузить с диска вашего компьютера'
|
||||
INSERTURL: 'Вставить ссылку'
|
||||
REMOVEINFO: 'Удалить этот файл из поля'
|
||||
TOTAL: Всего
|
||||
TOUPLOAD: 'Выберите файлы для загрузки ...'
|
||||
UPLOADINPROGRESS: 'Идет загрузка... Пожалуйста, подождите'
|
||||
UPLOADOR: ИЛИ
|
||||
BBCodeParser:
|
||||
@ -59,6 +72,10 @@ ru:
|
||||
ERRORNOTREC: 'Такое имя пользователя или пароль не существует'
|
||||
Boolean:
|
||||
ANY: Все
|
||||
NOANSWER: 'Нет'
|
||||
YESANSWER: 'Да'
|
||||
CAMPAIGNS:
|
||||
ADDTOCAMPAIGN: 'Добавить в кампанию'
|
||||
CMSLoadingScreen_ss:
|
||||
LOADING: Идет загрузка...
|
||||
REQUIREJS: 'Для работы с CMS у вас должен быть включен JavaScript.'
|
||||
@ -67,22 +84,69 @@ ru:
|
||||
ACCESSALLINTERFACES: 'Доступ ко всему интерфейсу CMS'
|
||||
ACCESSALLINTERFACESHELP: 'Отменяет индивидуальные настройки прав доступа.'
|
||||
SAVE: Сохранить
|
||||
CMSMemberLoginForm:
|
||||
BUTTONFORGOTPASSWORD: 'Забыли пароль?'
|
||||
BUTTONLOGIN: 'Вход'
|
||||
BUTTONLOGOUT: 'Выход'
|
||||
PASSWORDEXPIRED: '<p>Время действия вашего пароля истекло. <a target="_top" href="{link}">Установите новый пароль.</a></p>'
|
||||
CMSPageHistoryController_versions_ss:
|
||||
PREVIEW: 'Предварительный просмотр сайта'
|
||||
CMSPagesController_Tools_ss:
|
||||
FILTER: Фильтр
|
||||
CMSProfileController:
|
||||
MENUTITLE: 'Мой профиль'
|
||||
CMSSecurity:
|
||||
INVALIDUSER: '<p>Неправильный пользователь. <a target="_top" href="{link}">Войдите заново в систему</a> чтобы продолжить.</p>'
|
||||
LoginMessage: '<p>Если у вас есть что-либо несохраненное вы можете вернуться к этому войдя в систему заново с помощью формы ниже.</p>'
|
||||
SUCCESS: Готово
|
||||
SUCCESSCONTENT: '<p>Вы вошли в систему. Если вы не были автоматически перенаправлены <a target="_top" href="{link}">нажмите здесь</a></p>'
|
||||
TimedOutTitleAnonymous: 'Время вашего сеанса истекло.'
|
||||
TimedOutTitleMember: '{name}!<br />Время вашего сеанса истекло.'
|
||||
CampaignAdmin:
|
||||
MENUTITLE: Кампании
|
||||
Campaigns:
|
||||
AddToCampaign: 'Добавить в кампанию'
|
||||
ChangePasswordEmail_ss:
|
||||
CHANGEPASSWORDFOREMAIL: 'Пароль для регистрации с Email адресом {email} был изменён. Если вы его не меняли установите новый перейдя по ссылке ниже'
|
||||
CHANGEPASSWORDTEXT1: 'Вы изменили свой пароль на'
|
||||
CHANGEPASSWORDTEXT2: 'Для того, чтобы войти, используйте сейчас следующие учетные данные:'
|
||||
CHANGEPASSWORDTEXT3: 'Изменить пароль'
|
||||
EMAIL: Email
|
||||
HELLO: Здравствуйте
|
||||
PASSWORD: Пароль
|
||||
ChangeSet:
|
||||
DESCRIPTION_AND: '{first} и {second}'
|
||||
DESCRIPTION_ITEM: элемент
|
||||
DESCRIPTION_ITEMS: элементы
|
||||
DESCRIPTION_LIST_FIRST: '{item}'
|
||||
DESCRIPTION_LIST_LAST: '{list}, и {item}'
|
||||
DESCRIPTION_LIST_MID: '{list}, {item}'
|
||||
DESCRIPTION_OTHER_ITEM: 'другой элемент'
|
||||
DESCRIPTION_OTHER_ITEMS: 'другие элементы'
|
||||
NAME: Название
|
||||
PLURALNAME: Кампании
|
||||
SINGULARNAME: Кампания
|
||||
STATE: Статус
|
||||
ChangeSetItem:
|
||||
PLURALNAME: 'Изменить набор элементов'
|
||||
SINGULARNAME: 'Изменить элемент'
|
||||
CheckboxField:
|
||||
NOANSWER: 'Нет'
|
||||
YESANSWER: 'Да'
|
||||
CheckboxFieldSetField:
|
||||
SOURCE_VALIDATION: 'Выберите значение из списка. Ошибочно указано значение: {value}'
|
||||
CheckboxSetField:
|
||||
SOURCE_VALIDATION: 'Выберите значение из списка. Ошибочно указано значение: ''{value}'''
|
||||
ConfirmedPasswordField:
|
||||
ATLEAST: 'Пароль должен быть не короче {min} символов.'
|
||||
BETWEEN: 'Пароль должен иметь длину от {min} до {max} символов.'
|
||||
CURRENT_PASSWORD_ERROR: 'Неправильно введён текущий пароль.'
|
||||
CURRENT_PASSWORD_MISSING: 'Вы должны указать Ваш текущий пароль.'
|
||||
LOGGED_IN_ERROR: 'Вы должны войти в систему, чтобы изменить Ваш пароль.'
|
||||
MAXIMUM: 'Пароль должен быть не длиннее {max} символов.'
|
||||
SHOWONCLICKTITLE: 'Изменить пароль'
|
||||
ContentController:
|
||||
DRAFT_SITE_ACCESS_RESTRICTION: 'Для просмотра чернового или архивного содержимого вам необходимо войти в систему со своим именем пользователя и паролем. <a href="%s">Щелкните здесь, чтобы вернуться на опубликованный сайт.</a>'
|
||||
NOTLOGGEDIN: 'Не выполнен вход в систему'
|
||||
CreditCardField:
|
||||
FIRST: первая
|
||||
@ -122,6 +186,8 @@ ru:
|
||||
INVALID_REQUEST: 'Неверный запрос'
|
||||
DropdownField:
|
||||
CHOOSE: (Выберите)
|
||||
CHOOSESEARCH: '(Выбрать или найти)'
|
||||
SOURCE_VALIDATION: 'Выберите значение из списка. Ошибочно указано значение: {value}'
|
||||
EmailField:
|
||||
VALIDATION: 'Пожалуйста, задайте адрес email.'
|
||||
Enum:
|
||||
@ -167,6 +233,7 @@ ru:
|
||||
TEXT3: для
|
||||
Form:
|
||||
CSRF_EXPIRED_MESSAGE: 'Срок действия сеанса истек. Пожалуйста, отправьте данные формы еще раз.'
|
||||
CSRF_FAILED_MESSAGE: 'Произошла техническая ошибка. Нажмите кнопку "Назад", обновите страницу в браузере и повторите попытку.'
|
||||
FIELDISREQUIRED: 'Поле {$name} является обязательным'
|
||||
SubmitBtnLabel: Выбрать
|
||||
VALIDATIONCREDITNUMBER: 'Пожалуйста, убедитесь, что номер кредитной карты {number} задан правильно'
|
||||
@ -220,6 +287,7 @@ ru:
|
||||
DefaultGroupTitleContentAuthors: 'Авторы содержимого'
|
||||
Description: Описание
|
||||
GroupReminder: 'При назначении группы верхнего уровня все роли будут переняты из нее'
|
||||
HierarchyPermsError: 'У Вас недостаточно прав для назначения родительской группы "%s" (необходимы права администратора)'
|
||||
Locked: 'Блокировано?'
|
||||
NoRoles: 'Ролей не найдено'
|
||||
PLURALNAME: Группы
|
||||
@ -231,14 +299,64 @@ ru:
|
||||
many_many_Members: Члены группы
|
||||
GroupImportForm:
|
||||
Help1: '<p>Импорт одной или нескольких групп в формате <em>CSV</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Подробные сведения</a></small></p>'
|
||||
Help2: "<div class=\"advanced\">\n<h4>Расширенное использование</h4>\n<ul>\n<li>Разрешенные столбцы: <em>%s</em></li>\n<li>Существующие пользователи сверяются c уникальным атрибутом <em>Code</em>, после чего в записи вносятся новые значения из \nимпортированного файла.</li>\n<li>Назначение групп производится с помощью столбца <em>Groups</em>. Группы идентифицируются по атрибуту <em>Code</em>, \nотдельные группы разделяются запятой. Если участник входит в какую-либо группу, это свойство не обнуляется.</li>\n</ul>\n</div>"
|
||||
ResultCreated: 'Создано {count} групп'
|
||||
ResultDeleted: 'Удалено %d групп'
|
||||
ResultUpdated: 'Обновлено %d групп'
|
||||
HTMLEditorField:
|
||||
ANCHORSCANNOTACCESSPAGE: 'У Вас недостаточно прав для доступа к содержимому данной страницы.'
|
||||
ANCHORSPAGENOTFOUND: 'Страница не найдена.'
|
||||
ANCHORVALUE: Якорь
|
||||
BUTTONADDURL: 'Добавить ссылку'
|
||||
CAPTIONTEXT: 'Текст подписи'
|
||||
CSSCLASS: 'Выравнивание/Стиль'
|
||||
CSSCLASSCENTER: 'По центру без текста по бокам'
|
||||
CSSCLASSLEFT: 'Слева с обтеканием текста'
|
||||
CSSCLASSLEFTALONE: 'Независимо слева.'
|
||||
CSSCLASSRIGHT: 'Справа с обтеканием текста'
|
||||
DETAILS: Подробности
|
||||
EMAIL: 'Email'
|
||||
FILE: Файл
|
||||
FOLDER: Папка
|
||||
IMAGEALT: 'Альтернативный текст (alt)'
|
||||
IMAGEALTTEXT: 'Альтернативный текст (alt) - показывается, если изображение недоступно'
|
||||
IMAGEALTTEXTDESC: 'Отображается если в браузере отключены изображения или если изображение недоступно'
|
||||
IMAGEDIMENSIONS: Размеры
|
||||
IMAGEHEIGHTPX: Высота
|
||||
IMAGETITLE: 'Текст (всплывающая подсказка) - для дополнительной информации об изображении'
|
||||
IMAGETITLETEXT: 'Текст (всплывающая подсказка)'
|
||||
IMAGETITLETEXTDESC: 'Для дополнительных сведений об изображении'
|
||||
IMAGEWIDTHPX: Ширина
|
||||
INSERTMEDIA: 'Вставить медиафайл'
|
||||
LINK: 'Вставить ссылку'
|
||||
LINKANCHOR: 'Якорь на этой странице'
|
||||
LINKDESCR: 'Описание ссылки'
|
||||
LINKEMAIL: 'Email'
|
||||
LINKEXTERNAL: 'Другой сайт'
|
||||
LINKFILE: 'Скачивание файла'
|
||||
LINKINTERNAL: 'Страницу данного сайта'
|
||||
LINKOPENNEWWIN: 'Открыть ссылку в новом окне?'
|
||||
LINKTO: 'Ссылка на'
|
||||
PAGE: Страница
|
||||
SUBJECT: 'Тема Email письма'
|
||||
URL: Ссылка
|
||||
URLDESCRIPTION: 'Добавляйте видео и изображения из интернета просто введя нужный адрес. Убедитесь что у вас есть права на размещение данных файлов.<br /><br />Внимание: файлы не будут загружены на ваш сервер и если файл будет не доступен по указанному адресу то он так же будет не доступен на вашей странице.'
|
||||
URLNOTANOEMBEDRESOURCE: 'Данная ссылка ''{url}'' не может быть использована для добавления медиа.'
|
||||
UpdateMEDIA: 'Обновить медиа'
|
||||
HTMLEditorField_Toolbar:
|
||||
ERROR_ABSOLUTE: 'Только абсолютные (http://,https://) ссылки могут быть использованы'
|
||||
ERROR_HOSTNAME: 'Данный адрес недоступен'
|
||||
ERROR_ID: 'Необходимо указать "ID" или "FileURL" - ссылку на файл для идентификации файла'
|
||||
ERROR_NOTFOUND: 'Файл не обнаружен'
|
||||
ERROR_OEMBED_REMOTE: 'Доступны только файлы по ссылке'
|
||||
ERROR_SCHEME: 'Данный тип файла не поддерживается'
|
||||
Hierarchy:
|
||||
InfiniteLoopNotAllowed: 'Обнаружен бесконечный цикл в иерархической структуре "{type}". Для исправления ошибки измените страницу, находящуюся уровнем выше'
|
||||
HtmlEditorField:
|
||||
ADDURL: 'Добавить URL'
|
||||
ADJUSTDETAILSDIMENSIONS: 'Дополнительные сведения и размеры'
|
||||
ANCHORSCANNOTACCESSPAGE: 'У Вас недостаточно прав для доступа к содержимому данной страницы.'
|
||||
ANCHORSPAGENOTFOUND: 'Страница не найдена.'
|
||||
ANCHORVALUE: Якорь
|
||||
BUTTONADDURL: 'Добавить URL'
|
||||
BUTTONINSERT: Вставить
|
||||
@ -266,6 +384,7 @@ ru:
|
||||
IMAGETITLETEXT: 'Текст (всплывающая подсказка)'
|
||||
IMAGETITLETEXTDESC: 'Для дополнительных сведений об изображении'
|
||||
IMAGEWIDTHPX: Ширина
|
||||
INSERTMEDIA: 'Вставить медиафайл'
|
||||
LINK: 'Ссылка'
|
||||
LINKANCHOR: 'Якорь на этой странице'
|
||||
LINKDESCR: 'Описание ссылки'
|
||||
@ -276,8 +395,11 @@ ru:
|
||||
LINKOPENNEWWIN: 'Открыть ссылку в новом окне?'
|
||||
LINKTO: 'Ссылка на'
|
||||
PAGE: Страница
|
||||
SUBJECT: 'Тема Email письма'
|
||||
URL: URL
|
||||
URLDESCRIPTION: 'Добавляйте видео и изображения из интернета просто введя нужный адрес. Убедитесь что у вас есть права на размещение данных файлов.<br /><br />Внимание: файлы не будут загружены на ваш сервер и если файл будет не доступен по указанному адресу то он так же будет не доступен на вашей странице.'
|
||||
URLNOTANOEMBEDRESOURCE: 'Не удалось преобразовать ссылку ''{url}'' в медиа-ресурс.'
|
||||
UpdateMEDIA: 'Обновить медиафайл'
|
||||
Image:
|
||||
PLURALNAME: Файлы
|
||||
SINGULARNAME: Файл
|
||||
@ -287,19 +409,25 @@ ru:
|
||||
Image_iframe_ss:
|
||||
TITLE: 'Iframe загрузки изображений'
|
||||
LeftAndMain:
|
||||
CANCEL: Отмена
|
||||
CANT_REORGANISE: 'У вас нет права редактировать страницы верхнего уровня. Изменения не были сохранены.'
|
||||
DELETED: Удалено.
|
||||
HELP: Помощь
|
||||
PERMAGAIN: 'Вы вышли из Системы Управления Сайтом. Если Вы хотите войти снова, введите внизу имя пользователя и пароль.'
|
||||
PERMALREADY: 'Извините, у вас нет доступа к этому разделу Системы Управления. Если Вы хотите войти под другой учетной записью, сделайте это ниже.'
|
||||
PERMDEFAULT: 'Вы должны войти в систему для доступа к панели управления сайтом. Введите ваши данные ниже.'
|
||||
PreviewButton: Просмотр
|
||||
REORGANISATIONSUCCESSFUL: 'Древесная структура сайта успешно реорганизована.'
|
||||
SAVEDUP: Сохранено.
|
||||
ShowAsList: 'в виде списка'
|
||||
TooManyPages: 'Слишком много страниц'
|
||||
ValidationError: 'Ошибка проверки'
|
||||
VersionUnknown: неизвестно
|
||||
LeftAndMain_Menu_ss:
|
||||
Hello: Здравствуйте
|
||||
LOGOUT: 'Выход'
|
||||
ListboxField:
|
||||
SOURCE_VALIDATION: 'Выберите значение из списка. Ошибочно указано значение: %s'
|
||||
LoginAttempt:
|
||||
Email: 'Email'
|
||||
IP: 'IP-адрес'
|
||||
@ -315,9 +443,11 @@ ru:
|
||||
CANTEDIT: 'У вас недостаточно прав'
|
||||
CONFIRMNEWPASSWORD: 'Подтвердить новый пароль'
|
||||
CONFIRMPASSWORD: 'Подтвердить пароль'
|
||||
CURRENT_PASSWORD: 'Текущий пароль'
|
||||
DATEFORMAT: 'Формат даты'
|
||||
DefaultAdminFirstname: 'Администратор по умолчанию '
|
||||
DefaultDateTime: по умолч.
|
||||
EDIT_PASSWORD: 'Новый пароль'
|
||||
EMAIL: Email
|
||||
EMPTYNEWPASSWORD: 'Поле нового пароля не может быть пустым; пожалуйста, повторите попытку'
|
||||
ENTEREMAIL: 'Введите email, чтобы получить ссылку на сброс пароля.'
|
||||
@ -328,11 +458,14 @@ ru:
|
||||
FIRSTNAME: 'Имя'
|
||||
INTERFACELANG: 'Язык интерфейса'
|
||||
INVALIDNEWPASSWORD: 'Недопустимый пароль: {password}'
|
||||
KEEPMESIGNEDIN: 'Запомните меня'
|
||||
LOGGEDINAS: 'Вы вошли в систему как {name}.'
|
||||
NEWPASSWORD: 'Новый пароль'
|
||||
NoPassword: 'Для этого пользователя не задан пароль.'
|
||||
PASSWORD: Пароль
|
||||
PASSWORDEXPIRED: 'Срок действия Вашего пароля истек. Пожалуйста установите новый.'
|
||||
PLURALNAME: Члены группы
|
||||
REMEMBERME: 'Запомнить меня?'
|
||||
SINGULARNAME: Член группы
|
||||
SUBJECTPASSWORDCHANGED: 'Ваш пароль изменен'
|
||||
SUBJECTPASSWORDRESET: 'Ссылка для переустановки пароля'
|
||||
@ -372,6 +505,7 @@ ru:
|
||||
Toggle: 'Отобразить справку по форматированию'
|
||||
MemberImportForm:
|
||||
Help1: '<p>Импорт пользователей в формате <em>CSV</em> (comma-separated values). <small><a href="#" class="toggle-advanced">Подробные сведения</a></small></p>'
|
||||
Help2: "<div class=\"advanced\">\n<h4>Расширенное использование</h4>\n<ul>\n<li>Разрешенные столбцы: <em>%s</em></li>\n<li>Существующие пользователи сверяются c уникальным атрибутом <em>Code</em>, после чего в записи вносятся новые значения из \nимпортированного файла.</li>\n<li>Назначение групп производится с помощью столбца <em>Groups</em>. Группы идентифицируются по атрибуту <em>Code</em>, \nотдельные группы разделяются запятой. Если участник входит в какую-либо группу, это свойство не обнуляется.</li>\n</ul>\n</div>"
|
||||
ResultCreated: 'Создано {count} участников'
|
||||
ResultDeleted: 'Удалено %d участников'
|
||||
ResultNone: 'Изменений нет'
|
||||
@ -406,6 +540,8 @@ ru:
|
||||
MoneyField:
|
||||
FIELDLABELAMOUNT: Сумма
|
||||
FIELDLABELCURRENCY: Валюта
|
||||
MultiSelectField:
|
||||
SOURCE_VALIDATION: 'Выберите значение из списка. Ошибочно указано значение(я): {value}'
|
||||
NullableField:
|
||||
IsNullLabel: 'Недействительно'
|
||||
NumericField:
|
||||
@ -435,12 +571,17 @@ ru:
|
||||
SINGULARNAME: Роль
|
||||
Title: Название
|
||||
PermissionRoleCode:
|
||||
PLURALNAME: 'Код роли доступа'
|
||||
PermsError: 'У Вас недостаточно прав для назначения родительской группы "%s" (необходимы права администратора)'
|
||||
SINGULARNAME: 'Код роли доступа'
|
||||
Permissions:
|
||||
PERMISSIONS_CATEGORY: 'Роли и права доступа'
|
||||
UserPermissionsIntro: 'При включении этого пользователя в определенную группу его права доступа будут изменены соответствующим образом. Более подробные сведения о правах доступа для отдельных групп содержатся в разделе "Группы".'
|
||||
PhoneNumberField:
|
||||
VALIDATION: 'Пожалуйста, введите верный номер телефона'
|
||||
RememberLoginHash:
|
||||
PLURALNAME: 'Сохраненные хэши входов'
|
||||
SINGULARNAME: 'Сохраненный хэш входа'
|
||||
Security:
|
||||
ALREADYLOGGEDIN: 'У Вас нет доступа к этой странице. Если у вас имеется другая учетная запись, имеющая доступ к этой странице, введите ее данные ниже.'
|
||||
BUTTONSEND: 'Отправить мне ссылку переустановки пароля'
|
||||
@ -499,6 +640,8 @@ ru:
|
||||
Print: Печать
|
||||
TableListField_PageControls_ss:
|
||||
OF: из
|
||||
TextField:
|
||||
VALIDATEMAXLENGTH: 'Значение для {name} не должно превышать {maxLength} символов'
|
||||
TimeField:
|
||||
VALIDATEFORMAT: 'Пожалуйста, задайте верный формат времени {format})'
|
||||
ToggleField:
|
||||
@ -531,5 +674,17 @@ ru:
|
||||
REMOVEINFO: 'Удалить файл отсюда, но не удалять с сервера'
|
||||
STARTALL: 'Стартовать все'
|
||||
Saved: Сохранено
|
||||
UPLOADSINTO: 'загрузка в /{path}'
|
||||
Versioned:
|
||||
has_many_Versions: Версии
|
||||
VersionedGridFieldItemRequest:
|
||||
ARCHIVE: Архив
|
||||
Archived: 'Зархивировано %s %s'
|
||||
BUTTONARCHIVEDESC: 'Отменить публикацию и отправить в архив'
|
||||
BUTTONPUBLISH: Опубликовать
|
||||
BUTTONUNPUBLISH: Отмена публикации
|
||||
BUTTONUNPUBLISHDESC: 'Удалить эту страницу с опубликованного сайта'
|
||||
Published: 'Опубликована {name} {link}'
|
||||
Unpublished: 'Публикация отменена %s %s'
|
||||
i18n:
|
||||
PLURAL: '{number} {form}'
|
||||
|
@ -210,12 +210,15 @@ sk:
|
||||
JsType: 'Javascript súbor'
|
||||
Mp3Type: 'MP3 audio súbor'
|
||||
MpgType: 'MPEG video súbor'
|
||||
NOFILESIZE: 'Veľkosť súboru je nula bajtov.'
|
||||
NOVALIDUPLOAD: 'Subor nie je povolený pre nahratie'
|
||||
Name: Meno
|
||||
PLURALNAME: Súbory
|
||||
PdfType: 'Adobe Acrobat PDF súbor'
|
||||
PngType: 'PNG obrázok - vhodný univerzálny formát'
|
||||
SINGULARNAME: Súbor
|
||||
TOOLARGE: 'Veľkosť súboru je príliš veľká, maximum {size} je povolené'
|
||||
TOOLARGESHORT: 'Veľkosť súboru prekračuje {size}'
|
||||
TiffType: 'Tiff formát obrázku'
|
||||
Title: Názov
|
||||
WavType: 'WAV audo súbor'
|
||||
@ -378,6 +381,8 @@ sk:
|
||||
FROMWEB: 'Z webu'
|
||||
FindInFolder: 'Vyhľadať v priečinku'
|
||||
IMAGEALT: 'Atlernatívny text (alt)'
|
||||
IMAGEALTTEXT: 'Atlernatívny text (alt) - zobrazí sa ak obrázok nemože byť zobrazený '
|
||||
IMAGEALTTEXTDESC: 'Zobrazí sa na obrazovke, ak obrázok nemôže byť zobrazený'
|
||||
IMAGEDIMENSIONS: Rozmery
|
||||
IMAGEHEIGHTPX: Výška
|
||||
IMAGETITLE: 'Text titulky (tooltip) - pre doplňujúce informácie o obrázku'
|
||||
@ -412,10 +417,13 @@ sk:
|
||||
CANCEL: Zrušiť
|
||||
CANT_REORGANISE: 'Nemáte oprávnenie meniť stránky najvyššej úrovne. Vaša zmena nebola uložená.'
|
||||
DELETED: Zmazané.
|
||||
DropdownBatchActionsDefault: Akcie
|
||||
HELP: Pomoc
|
||||
PAGETYPE: 'Typ stránky'
|
||||
PERMAGAIN: 'Boli ste odhlásený'
|
||||
PERMALREADY: 'Je nám ľúto, ale k tejto časti CMS nemáte prístup . Ak sa chcete prihlásiť ako niekto iný, urobte tak nižšie.'
|
||||
PERMDEFAULT: 'Musíte byť prihlásený/á k prístupu do oblasti administrácie, zadajte vaše prihlasovacie údaje dole, prosím.'
|
||||
PLEASESAVE: 'Prosím uložte stránku: Táto stránka nemôže byť aktualizovaná, lebo ešte nebola uložená.'
|
||||
PreviewButton: Náhľad
|
||||
REORGANISATIONSUCCESSFUL: 'Strom webu bol reorganizovaný úspešne.'
|
||||
SAVEDUP: Uložené.
|
||||
@ -471,6 +479,7 @@ sk:
|
||||
SUBJECTPASSWORDRESET: 'Odkaz na resetovanie hesla'
|
||||
SURNAME: Priezvisko
|
||||
TIMEFORMAT: 'Formát času'
|
||||
VALIDATIONMEMBEREXISTS: 'Člen už existuje s rovnakým %s'
|
||||
ValidationIdentifierFailed: 'Nemôžte prepísať existujúceho člena #{id} s identickým identifikátorm ({name} = {value})'
|
||||
WELCOMEBACK: 'Vitajte späť, {firstname}'
|
||||
YOUROLDPASSWORD: 'Vaše staré heslo'
|
||||
|
@ -98,16 +98,19 @@ class ChangePasswordForm extends Form {
|
||||
else if($data['NewPassword1'] == $data['NewPassword2']) {
|
||||
$isValid = $member->changePassword($data['NewPassword1']);
|
||||
if($isValid->valid()) {
|
||||
$member->logIn();
|
||||
|
||||
// TODO Add confirmation message to login redirect
|
||||
Session::clear('AutoLoginHash');
|
||||
|
||||
// Clear locked out status
|
||||
$member->LockedOutUntil = null;
|
||||
$member->FailedLoginCount = null;
|
||||
$member->write();
|
||||
|
||||
|
||||
if ($member->canLogIn()->valid()) {
|
||||
$member->logIn();
|
||||
}
|
||||
|
||||
// TODO Add confirmation message to login redirect
|
||||
Session::clear('AutoLoginHash');
|
||||
|
||||
if (!empty($_REQUEST['BackURL'])
|
||||
// absolute redirection URLs may cause spoofing
|
||||
&& Director::is_site_url($_REQUEST['BackURL'])
|
||||
|
@ -118,12 +118,24 @@ class Member extends DataObject implements TemplateGlobalProvider {
|
||||
'Email',
|
||||
);
|
||||
|
||||
/**
|
||||
* @config
|
||||
* @var array
|
||||
*/
|
||||
private static $summary_fields = array(
|
||||
'FirstName',
|
||||
'Surname',
|
||||
'Email',
|
||||
);
|
||||
|
||||
/**
|
||||
* @config
|
||||
* @var array
|
||||
*/
|
||||
private static $casting = array(
|
||||
'Name' => 'Varchar',
|
||||
);
|
||||
|
||||
/**
|
||||
* Internal-use only fields
|
||||
*
|
||||
@ -472,7 +484,8 @@ class Member extends DataObject implements TemplateGlobalProvider {
|
||||
|
||||
$this->addVisit();
|
||||
|
||||
if($remember) {
|
||||
// Only set the cookie if autologin is enabled
|
||||
if($remember && Security::config()->autologin_enabled) {
|
||||
// Store the hash and give the client the cookie with the token.
|
||||
$generator = new RandomGenerator();
|
||||
$token = $generator->randomToken('sha1');
|
||||
@ -555,7 +568,8 @@ class Member extends DataObject implements TemplateGlobalProvider {
|
||||
// Don't bother trying this multiple times
|
||||
self::$_already_tried_to_auto_log_in = true;
|
||||
|
||||
if(strpos(Cookie::get('alc_enc'), ':') === false
|
||||
if(!Security::config()->autologin_enabled
|
||||
|| strpos(Cookie::get('alc_enc'), ':') === false
|
||||
|| Session::get("loggedInAs")
|
||||
|| !Security::database_is_ready()
|
||||
) {
|
||||
@ -824,7 +838,7 @@ class Member extends DataObject implements TemplateGlobalProvider {
|
||||
} else {
|
||||
$random = rand();
|
||||
$string = md5($random);
|
||||
$output = substr($string, 0, 6);
|
||||
$output = substr($string, 0, 8);
|
||||
return $output;
|
||||
}
|
||||
}
|
||||
@ -880,6 +894,9 @@ class Member extends DataObject implements TemplateGlobalProvider {
|
||||
// Note that this only works with cleartext passwords, as we can't rehash
|
||||
// existing passwords.
|
||||
if((!$this->ID && $this->Password) || $this->isChanged('Password')) {
|
||||
//reset salt so that it gets regenerated - this will invalidate any persistant login cookies
|
||||
// or other information encrypted with this Member's settings (see self::encryptWithUserSettings)
|
||||
$this->Salt = '';
|
||||
// Password was changed: encrypt the password according the settings
|
||||
$encryption_details = Security::encrypt_password(
|
||||
$this->Password, // this is assumed to be cleartext
|
||||
|
@ -2,9 +2,9 @@
|
||||
<% if $Options.Count %>
|
||||
<% loop $Options %>
|
||||
<li class="$Class">
|
||||
<input id="$ID" class="checkbox" name="$Name" type="checkbox" value="$Value"<% if $isChecked %> checked="checked"<% end_if %><% if $isDisabled %> disabled="disabled"<% end_if %> />
|
||||
<input id="$ID" class="checkbox" name="$Name" type="checkbox" value="$Value.ATT"<% if $isChecked %> checked="checked"<% end_if %><% if $isDisabled %> disabled="disabled"<% end_if %> />
|
||||
<label for="$ID">$Title</label>
|
||||
</li>
|
||||
</li>
|
||||
<% end_loop %>
|
||||
<% else %>
|
||||
<li>No options available</li>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<ul $AttributesHTML>
|
||||
<% loop $Options %>
|
||||
<li class="$Class">
|
||||
<input id="$ID" class="radio" name="$Name" type="radio" value="$Value"<% if $isChecked %> checked<% end_if %><% if $isDisabled %> disabled<% end_if %> />
|
||||
<input id="$ID" class="radio" name="$Name" type="radio" value="$Value.ATT"<% if $isChecked %> checked<% end_if %><% if $isDisabled %> disabled<% end_if %> />
|
||||
<label for="$ID">$Title</label>
|
||||
</li>
|
||||
<% end_loop %>
|
||||
|
@ -206,6 +206,27 @@ class CheckboxSetFieldTest extends SapphireTest {
|
||||
);
|
||||
}
|
||||
|
||||
public function testSafelyCast() {
|
||||
$member = new Member();
|
||||
$member->FirstName = '<firstname>';
|
||||
$member->Surname = '<surname>';
|
||||
$member->write();
|
||||
$field1 = new CheckboxSetField('Options', 'Options', array(
|
||||
'one' => 'One',
|
||||
'two' => 'Two & Three',
|
||||
'three' => DBField::create_field('HTMLText', 'Four & Five & Six'),
|
||||
$member
|
||||
));
|
||||
$fieldHTML = (string)$field1->Field();
|
||||
$this->assertContains('One', $fieldHTML);
|
||||
$this->assertContains('Two & Three', $fieldHTML);
|
||||
$this->assertNotContains('Two & Three', $fieldHTML);
|
||||
$this->assertContains('Four & Five & Six', $fieldHTML);
|
||||
$this->assertNotContains('Four & Five & Six', $fieldHTML);
|
||||
$this->assertContains('<firstname>', $fieldHTML);
|
||||
$this->assertNotContains('<firstname>', $fieldHTML);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -63,4 +63,18 @@ class OptionsetFieldTest extends SapphireTest {
|
||||
preg_match('/Yes/', $field->Field(), $matches);
|
||||
$this->assertEquals($matches[0], 'Yes');
|
||||
}
|
||||
|
||||
public function testSafelyCast() {
|
||||
$field1 = new OptionsetField('Options', 'Options', array(
|
||||
1 => 'One',
|
||||
2 => 'Two & Three',
|
||||
3 => DBField::create_field('HTMLText', 'Four & Five & Six')
|
||||
));
|
||||
$fieldHTML = (string)$field1->Field();
|
||||
$this->assertContains('One', $fieldHTML);
|
||||
$this->assertContains('Two & Three', $fieldHTML);
|
||||
$this->assertNotContains('Two & Three', $fieldHTML);
|
||||
$this->assertContains('Four & Five & Six', $fieldHTML);
|
||||
$this->assertNotContains('Four & Five & Six', $fieldHTML);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user