From 5a1804ca62835875603315b95b70c6da5cb2f285 Mon Sep 17 00:00:00 2001 From: brandonkelly Date: Fri, 9 Jun 2017 16:50:40 -0700 Subject: [PATCH 01/34] c747e0bcee58e1c3a871571c3489a1a9cffa05b2 fixed #1767 --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ed7287845ff..a26dd3abc65 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,7 @@ Craft CMS Changelog - Updated Yii to 1.1.19. ### Fixed -- Fixed a bug where doctype and XML declarations were getting stripped out of SVG files on upload. +- Fixed a bug where doctype and XML declarations were getting stripped out of SVG files on upload. ([#1767](https://github.com/craftcms/cms/issues/1767)) ## 2.6.2982 - 2017-06-07 [CRITICAL] From d60fa3665118b663600b7b6ddffdbb85ca254853 Mon Sep 17 00:00:00 2001 From: brandonkelly Date: Sat, 10 Jun 2017 03:15:41 -0700 Subject: [PATCH 02/34] template* --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a26dd3abc65..78f9f0a0cea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -71,7 +71,7 @@ Craft CMS Changelog ## 2.6.2976 - 2017-04-27 ### Changed -- The `_layouts/cp.html` Control Panel now defines the `#container` element attributes within a `containerAttributes` block, so they can be overridden or added to from sub-templates. ([#1665](https://github.com/craftcms/cms/issues/1665)) +- The `_layouts/cp.html` Control Panel template now defines the `#container` element attributes within a `containerAttributes` block, so they can be overridden or added to from sub-templates. ([#1665](https://github.com/craftcms/cms/issues/1665)) ### Fixed - Fixed a bug where `HttpRequestService::getSegments()` and `getActionSegments()` could return an array that started at a non-0 number allowing for a bypass of the XSS vulnerability fix in 2.6.2974. From 9fcf4015c6026f61bf155ba94c39d73012a5e23a Mon Sep 17 00:00:00 2001 From: Brad Bell Date: Sun, 11 Jun 2017 19:48:48 -0700 Subject: [PATCH 03/34] Don't use our fork of svg-sanitize --- composer.json | 6 +----- composer.lock | 20 +++++++++----------- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/composer.json b/composer.json index 873b55098fe..6aab98ba5b4 100644 --- a/composer.json +++ b/composer.json @@ -20,10 +20,6 @@ { "type": "vcs", "url": "https://github.com/pixelandtonic/yii" - }, - { - "type": "vcs", - "url": "https://github.com/pixelandtonic/svg-sanitizer" } ], "require": { @@ -35,7 +31,7 @@ "lsolesen/pel": "0.9.4.2", "pclzip/pclzip": "2.8.2", "yiisoft/yii": "1.1.19.1", - "enshrined/svg-sanitize": "0.5.3.1" + "enshrined/svg-sanitize": "0.6.0" }, "require-dev": { "phpunit/phpunit": "4.8.16", diff --git a/composer.lock b/composer.lock index 37822e273de..1494d18ddbc 100644 --- a/composer.lock +++ b/composer.lock @@ -4,21 +4,21 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "abcb23f6f58ae828803b984b9112e691", - "content-hash": "1458fe92286c999b92b46c65f513c21c", + "hash": "7cbbbc91652daeca02fc655a5f319370", + "content-hash": "c4400c61e2aa5ca8f9ef58615a9b69c4", "packages": [ { "name": "enshrined/svg-sanitize", - "version": "0.5.3.1", + "version": "0.6.0", "source": { "type": "git", - "url": "https://github.com/pixelandtonic/svg-sanitizer.git", - "reference": "a392da2ace76ecb27263cb09e2163449514bcf81" + "url": "https://github.com/darylldoyle/svg-sanitizer.git", + "reference": "0c943fe5fe0acb30f4c80f3a4602c44498f95eff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pixelandtonic/svg-sanitizer/zipball/a392da2ace76ecb27263cb09e2163449514bcf81", - "reference": "a392da2ace76ecb27263cb09e2163449514bcf81", + "url": "https://api.github.com/repos/darylldoyle/svg-sanitizer/zipball/0c943fe5fe0acb30f4c80f3a4602c44498f95eff", + "reference": "0c943fe5fe0acb30f4c80f3a4602c44498f95eff", "shasum": "" }, "require-dev": { @@ -31,6 +31,7 @@ "enshrined\\svgSanitize\\": "src" } }, + "notification-url": "https://packagist.org/downloads/", "license": [ "GPL-2.0+" ], @@ -41,10 +42,7 @@ } ], "description": "An SVG sanitizer for PHP", - "support": { - "source": "https://github.com/pixelandtonic/svg-sanitizer/tree/0.5.3.1" - }, - "time": "2017-06-09 21:45:33" + "time": "2017-06-11 23:08:25" }, { "name": "guzzle/guzzle", From b147ae17001eb28941a9f74c75dcfedece49d298 Mon Sep 17 00:00:00 2001 From: Brad Bell Date: Mon, 12 Jun 2017 16:11:13 -0700 Subject: [PATCH 04/34] - Fixed a bug where a validation error would occur when saving two routes with the same URL Pattern in different locales. --- .../m170612_000000_route_index_shuffle.php | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/migrations/m170612_000000_route_index_shuffle.php diff --git a/src/migrations/m170612_000000_route_index_shuffle.php b/src/migrations/m170612_000000_route_index_shuffle.php new file mode 100644 index 00000000000..4c37532d98a --- /dev/null +++ b/src/migrations/m170612_000000_route_index_shuffle.php @@ -0,0 +1,24 @@ +createIndex('routes', 'urlPattern'); + + return true; + } +} From 9f9184201b5a93505a98d14c489ac9fea3ce7bc7 Mon Sep 17 00:00:00 2001 From: Brad Bell Date: Mon, 12 Jun 2017 16:13:51 -0700 Subject: [PATCH 05/34] - Fixed a bug where a validation error would occur when saving two routes with the same URL Pattern in different locales. --- CHANGELOG.md | 1 + src/Info.php | 2 +- src/records/RouteRecord.php | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 78f9f0a0cea..42a31474517 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ Craft CMS Changelog ### Fixed - Fixed a bug where doctype and XML declarations were getting stripped out of SVG files on upload. ([#1767](https://github.com/craftcms/cms/issues/1767)) +- Fixed a bug where a validation error would occur when saving two routes with the same URL Pattern in different locales. ## 2.6.2982 - 2017-06-07 [CRITICAL] diff --git a/src/Info.php b/src/Info.php index 34cf52ba0c8..ea51ce698db 100644 --- a/src/Info.php +++ b/src/Info.php @@ -2,5 +2,5 @@ namespace Craft; define('CRAFT_VERSION', '2.6.2983'); -define('CRAFT_SCHEMA_VERSION', '2.6.9'); +define('CRAFT_SCHEMA_VERSION', '2.6.10'); define('CRAFT_MIN_VERSION_REQUIRED', '2.6.2922'); diff --git a/src/records/RouteRecord.php b/src/records/RouteRecord.php index 385d76c04ee..305b8b01280 100644 --- a/src/records/RouteRecord.php +++ b/src/records/RouteRecord.php @@ -47,7 +47,7 @@ public function defineIndexes() { return array( array('columns' => array('locale')), - array('columns' => array('urlPattern'), 'unique' => true), + array('columns' => array('urlPattern')), ); } From 04c5fe4c7f3c41787c1e6077c5ac6fa8e551dc55 Mon Sep 17 00:00:00 2001 From: brandonkelly Date: Tue, 13 Jun 2017 11:25:50 -0700 Subject: [PATCH 06/34] Fixed changelog --- CHANGELOG.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 42a31474517..88efffa127a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ Craft CMS Changelog =================== +## Unreleased + +### Fixed +- Fixed a bug where a validation error would occur when saving two routes with the same URL Pattern in different locales. + ## 2.6.2983 - 2017-06-09 ### Changed @@ -9,7 +14,6 @@ Craft CMS Changelog ### Fixed - Fixed a bug where doctype and XML declarations were getting stripped out of SVG files on upload. ([#1767](https://github.com/craftcms/cms/issues/1767)) -- Fixed a bug where a validation error would occur when saving two routes with the same URL Pattern in different locales. ## 2.6.2982 - 2017-06-07 [CRITICAL] From 1f8c9e0c108a49b39d093892e2157d0991331791 Mon Sep 17 00:00:00 2001 From: brandonkelly Date: Tue, 13 Jun 2017 11:26:07 -0700 Subject: [PATCH 07/34] Fixed JS error after sending support request --- CHANGELOG.md | 1 + src/resources/js/CraftSupportWidget.js | 2 +- src/resources/js/compressed/CraftSupportWidget.js | 2 +- src/resources/js/compressed/CraftSupportWidget.js.map | 2 +- src/templates/_components/widgets/CraftSupport/response.html | 2 +- 5 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 88efffa127a..10df2e9ce29 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ Craft CMS Changelog ### Fixed - Fixed a bug where a validation error would occur when saving two routes with the same URL Pattern in different locales. +- Fixed a JavaScript error that occurred after sending in a support request from the Craft Support widget. ## 2.6.2983 - 2017-06-09 diff --git a/src/resources/js/CraftSupportWidget.js b/src/resources/js/CraftSupportWidget.js index 2fa027bb02f..3457e450736 100644 --- a/src/resources/js/CraftSupportWidget.js +++ b/src/resources/js/CraftSupportWidget.js @@ -515,7 +515,7 @@ this.$supportAttachment.val(''); } - this.$iframe.html(''); + this.$supportIframe.html(''); }, getFormParams: function() { throw 'getFormParams() must be implemented'; }, diff --git a/src/resources/js/compressed/CraftSupportWidget.js b/src/resources/js/compressed/CraftSupportWidget.js index e276f50bbbf..d7e6679e535 100644 --- a/src/resources/js/compressed/CraftSupportWidget.js +++ b/src/resources/js/compressed/CraftSupportWidget.js @@ -1,2 +1,2 @@ -!function(a){Craft.CraftSupportWidget=Garnish.Base.extend({widgetId:0,envInfo:null,loading:!1,$widget:null,$pane:null,$screens:null,$currentScreen:null,$nextScreen:null,screens:null,currentScreen:null,$helpBody:null,$feedbackBody:null,init:function(b,c){this.widgetId=b,this.envInfo=c,Craft.CraftSupportWidget.widgets[this.widgetId]=this,this.$widget=a("#widget"+b),this.$pane=this.$widget.find("> .front > .pane"),this.$screens=this.$pane.find("> .body > .cs-screen"),this.screens={},this.$currentScreen=this.initScreen(Craft.CraftSupportWidget.SCREEN_HOME).$screen},getScreen:function(a){return this.$screens.filter(".cs-screen-"+a+":first")},initScreen:function(a){return"undefined"==typeof this.screens[a]?this.screens[a]=this.loadScreen(a):this.screens[a].reinit(),this.screens[a]},loadScreen:function(a){var b=this.getScreen(a);switch(a){case Craft.CraftSupportWidget.SCREEN_HOME:return new c(this,a,b);case Craft.CraftSupportWidget.SCREEN_HELP:return new e(this,a,b);case Craft.CraftSupportWidget.SCREEN_FEEDBACK:return new f(this,a,b);default:throw"Invalid screen: "+a}},gotoScreen:function(b){this.$nextScreen&&(this.$currentScreen.velocity("stop").css({opacity:0,display:"none"}),this.$nextScreen.velocity("stop").css({opacity:1}),this.$pane.velocity("stop"),this.handleScreenAnimationComplete()),this.$nextScreen=this.getScreen(b).css({display:"block",position:"absolute",left:"0px",top:"0px",width:this.$pane.width()+"px"}),this.$pane.height(this.$pane.height()),this.$currentScreen.velocity({opacity:0},{display:"none"}),this.$nextScreen.velocity({opacity:1}),this.$pane.velocity({height:this.$nextScreen.outerHeight()},{complete:a.proxy(this,"handleScreenAnimationComplete")}),this.currentScreen=this.initScreen(b)},handleScreenAnimationComplete:function(){this.$pane.height("auto"),this.$nextScreen.css({position:"relative",width:"auto"}),this.$currentScreen=this.$nextScreen,this.$nextScreen=null}},{widgets:{},SCREEN_HOME:"home",SCREEN_HELP:"help",SCREEN_FEEDBACK:"feedback"});var b=Garnish.Base.extend({widget:null,screen:null,$screen:null,init:function(a,b,c){this.widget=a,this.screen=b,this.$screen=c,this.afterInit()},afterInit:a.noop,reinit:a.noop}),c=b.extend({afterInit:function(){var a=this.$screen.children(".cs-opt");this.addListener(a,"click","handleOptionClick")},handleOptionClick:function(b){var c=a.attr(b.currentTarget,"data-screen");this.widget.gotoScreen(c)}}),d=b.extend({$body:null,$formContainer:null,mode:null,bodyStartHeight:null,$searchResultsContainer:null,$searchResults:null,$searchForm:null,$searchParams:null,$searchSubmit:null,searchTimeout:null,showingResults:!1,$supportForm:null,$supportMessage:null,$supportAttachment:null,$supportSubmit:null,$supportSpinner:null,$supportErrorList:null,$supportIframe:null,sendingSupportTicket:!1,afterInit:function(){this.$body=this.$screen.find(".cs-body-text:first").focus(),this.$formContainer=this.$screen.children(".cs-forms"),this.$searchResultsContainer=this.$screen.children(".cs-search-results-container:first"),this.$searchResults=this.$searchResultsContainer.find(".cs-search-results:first"),this.$searchForm=this.$formContainer.children(".cs-search-form:first"),this.$searchParams=this.$searchForm.children(".cs-search-params:first"),this.$searchSubmit=this.$searchForm.children(".submit:first"),this.addListener(this.$searchForm,"submit","handleSearchFormSubmit"),this.addListener(this.$searchForm.find("> p > a"),"click","handleSupportLinkClick"),this.$supportForm=this.$formContainer.children(".cs-support-form:first"),this.$supportMessage=this.$supportForm.children("input.cs-support-message");var a=this.$supportForm.children(".cs-support-more");this.$supportAttachment=a.find(".cs-support-attachment:first"),this.$supportSubmit=this.$supportForm.children(".submit:first"),this.$supportSpinner=this.$supportForm.children(".spinner:first"),this.$supportIframe=this.$screen.children("iframe"),this.addListener(this.$supportForm,"submit","handleSupportFormSubmit"),this.bodyStartHeight=this.$body.height(),this.addListener(this.$body,"textchange","handleBodyTextChange"),this.addListener(this.$body,"keydown","handleBodyKeydown"),this.prepForSearch(!1)},handleSearchFormSubmit:function(a){this.$body.val()||a.preventDefault()},handleBodyTextChange:function(){var b=this.$body.val();if(this.mode===d.MODE_SEARCH)if(this.clearSearchTimeout(),this.searchTimeout=setTimeout(a.proxy(this,"search"),500),b){this.$searchParams.html("");var c=this.getFormParams(b);for(var e in c)c.hasOwnProperty(e)&&a("",{type:"hidden",name:e,value:c[e]}).appendTo(this.$searchParams);this.$searchSubmit.removeClass("disabled")}else this.$searchSubmit.addClass("disabled");else b?(this.$supportMessage.val(b),this.$supportSubmit.removeClass("disabled")):this.$supportSubmit.addClass("disabled")},handleBodyKeydown:function(a){switch(a.keyCode){case Garnish.ESC_KEY:this.mode===d.MODE_SEARCH?this.widget.gotoScreen(Craft.CraftSupportWidget.SCREEN_HOME):this.sendingSupportTicket||this.prepForSearch(!0);break;case Garnish.RETURN_KEY:Garnish.isCtrlKeyPressed(a)&&(this.mode===d.MODE_SEARCH?this.$searchForm.submit():this.$supportForm.submit())}},handleSupportLinkClick:function(){this.prepForSupport(!0)},clearSearchTimeout:function(){this.searchTimeout&&(clearTimeout(this.searchTimeout),this.searchTimeout=null)},search:function(){this.clearSearchTimeout();var b=this.$body.val();if(b){var c=this.getSearchUrl(this.$body.val());a.ajax({url:c,dataType:"json",success:a.proxy(this,"handleSearchSuccess"),error:a.proxy(this,"hideSearchResults")})}else this.hideSearchResults()},handleSearchSuccess:function(b){if(this.mode===d.MODE_SEARCH){var c=this.getSearchResults(b);if(c.length){var e;this.showingResults?e=this.$searchResultsContainer.height():(this.$searchResultsContainer.removeClass("hidden"),e=0,this.showingResults=!0,this.$screen.addClass("with-results")),this.$searchResults.html("");for(var f=Math.min(c.length,20),g=0;g").append(a("",{href:this.getSearchResultUrl(c[g]),target:"_blank",html:''+this.getSearchResultText(c[g])})));var h=this.$searchResultsContainer.height("auto").height();this.$searchResultsContainer.velocity("stop").height(e).velocity({height:h},{complete:a.proxy(function(){this.$searchResultsContainer.height("auto")},this)})}else this.hideSearchResults()}},hideSearchResults:function(){this.mode===d.MODE_SEARCH&&this.showingResults&&(this.$searchResultsContainer.velocity("stop").height(this.$searchResultsContainer.height()).velocity({height:0},{complete:a.proxy(function(){this.$searchResultsContainer.addClass("hidden")},this)}),this.showingResults=!1,this.$screen.removeClass("with-results"))},handleSupportFormSubmit:function(a){return!this.$body.val()||this.sendingSupportTicket?void a.preventDefault():(this.sendingSupportTicket=!0,this.$supportSubmit.addClass("active"),void this.$supportSpinner.removeClass("hidden"))},reinit:function(){this.$body.focus()},prepForSearch:function(a){this.mode=d.MODE_SEARCH,this.$body.velocity("stop").focus(),this.$supportErrorList&&(this.$supportErrorList.remove(),this.$supportErrorList=null),a?this.$body.velocity({height:this.bodyStartHeight}):this.$body.height(this.bodyStartHeight),this.swapForms(this.$supportForm,this.$searchForm,a),this.handleBodyTextChange(),this.search()},prepForSupport:function(a){this.clearSearchTimeout(),this.hideSearchResults(),this.mode=d.MODE_SUPPORT,this.$body.velocity("stop").focus(),a?this.$body.velocity({height:2*this.bodyStartHeight}):this.$body.height(2*this.bodyStartHeight),this.swapForms(this.$searchForm,this.$supportForm,a),this.handleBodyTextChange()},swapForms:function(b,c,d){if(d){this.$formContainer.height(this.$formContainer.height());var e=this.$formContainer.width();b.velocity("stop").css({position:"absolute",top:0,left:0,width:e}).velocity({opacity:0},{complete:function(){b.addClass("hidden").css({position:"relative",width:"auto"})}}),c.velocity("stop").removeClass("hidden").css({position:"absolute",top:0,left:0,width:e}).velocity({opacity:1},{complete:function(){c.css({position:"relative",width:"auto"})}}),this.$formContainer.velocity("stop").velocity({height:c.height()},{complete:a.proxy(function(){this.$formContainer.css({height:"auto"})},this)})}else b.addClass("hidden"),c.removeClass("hidden")},parseSupportResponse:function(b){if(this.sendingSupportTicket=!1,this.$supportSubmit.removeClass("active"),this.$supportSpinner.addClass("hidden"),this.$supportErrorList&&this.$supportErrorList.children().remove(),b.errors){this.$supportErrorList||(this.$supportErrorList=a('
    ').insertAfter(this.$supportForm));for(var c in b.errors)if(b.errors.hasOwnProperty(c))for(var d=0;d"+e+"").appendTo(this.$supportErrorList)}}b.success&&(Craft.cp.displayNotice(Craft.t("Message sent successfully.")),this.$body.val(""),this.$supportMessage.val(""),this.$supportAttachment.val("")),this.$iframe.html("")},getFormParams:function(){throw"getFormParams() must be implemented"},getSearchUrl:function(){throw"getSearchUrl() must be implemented"},getSearchResults:function(){throw"getSearchResults() must be implemented"},getSearchResultUrl:function(){throw"getSearchResultUrl() must be implemented"},getSearchResultStatus:function(){throw"getSearchResultStatus() must be implemented"},getSearchResultText:function(){throw"getSearchResultUrl() must be implemented"}},{MODE_SEARCH:"search",MODE_SUPPORT:"support"}),e=d.extend({getFormParams:function(a){return{title:a}},getSearchUrl:function(a){return"https://api.stackexchange.com/2.2/similar?site=craftcms&sort=relevance&order=desc&title="+encodeURIComponent(a)},getSearchResults:function(a){return a.items||[]},getSearchResultUrl:function(a){return a.link},getSearchResultStatus:function(a){return a.is_answered?"green":""},getSearchResultText:function(a){return a.title}}),f=d.extend({getFormParams:function(a){var b="### Description\n\n\n\n### Steps to reproduce\n\n1.\n2.\n\n### Additional info\n";for(var c in this.widget.envInfo)this.widget.envInfo.hasOwnProperty(c)&&(b+="\n- "+c+": "+this.widget.envInfo[c]);return{title:a,body:b}},getSearchUrl:function(a){return"https://api.github.com/search/issues?q=type:issue+repo:craftcms/cms+"+encodeURIComponent(a)},getSearchResults:function(a){return a.items||[]},getSearchResultUrl:function(a){return a.html_url},getSearchResultStatus:function(a){return"open"===a.state?"green":"red"},getSearchResultText:function(a){return a.title}})}(jQuery); +!function(a){Craft.CraftSupportWidget=Garnish.Base.extend({widgetId:0,envInfo:null,loading:!1,$widget:null,$pane:null,$screens:null,$currentScreen:null,$nextScreen:null,screens:null,currentScreen:null,$helpBody:null,$feedbackBody:null,init:function(b,c){this.widgetId=b,this.envInfo=c,Craft.CraftSupportWidget.widgets[this.widgetId]=this,this.$widget=a("#widget"+b),this.$pane=this.$widget.find("> .front > .pane"),this.$screens=this.$pane.find("> .body > .cs-screen"),this.screens={},this.$currentScreen=this.initScreen(Craft.CraftSupportWidget.SCREEN_HOME).$screen},getScreen:function(a){return this.$screens.filter(".cs-screen-"+a+":first")},initScreen:function(a){return"undefined"==typeof this.screens[a]?this.screens[a]=this.loadScreen(a):this.screens[a].reinit(),this.screens[a]},loadScreen:function(a){var b=this.getScreen(a);switch(a){case Craft.CraftSupportWidget.SCREEN_HOME:return new c(this,a,b);case Craft.CraftSupportWidget.SCREEN_HELP:return new e(this,a,b);case Craft.CraftSupportWidget.SCREEN_FEEDBACK:return new f(this,a,b);default:throw"Invalid screen: "+a}},gotoScreen:function(b){this.$nextScreen&&(this.$currentScreen.velocity("stop").css({opacity:0,display:"none"}),this.$nextScreen.velocity("stop").css({opacity:1}),this.$pane.velocity("stop"),this.handleScreenAnimationComplete()),this.$nextScreen=this.getScreen(b).css({display:"block",position:"absolute",left:"0px",top:"0px",width:this.$pane.width()+"px"}),this.$pane.height(this.$pane.height()),this.$currentScreen.velocity({opacity:0},{display:"none"}),this.$nextScreen.velocity({opacity:1}),this.$pane.velocity({height:this.$nextScreen.outerHeight()},{complete:a.proxy(this,"handleScreenAnimationComplete")}),this.currentScreen=this.initScreen(b)},handleScreenAnimationComplete:function(){this.$pane.height("auto"),this.$nextScreen.css({position:"relative",width:"auto"}),this.$currentScreen=this.$nextScreen,this.$nextScreen=null}},{widgets:{},SCREEN_HOME:"home",SCREEN_HELP:"help",SCREEN_FEEDBACK:"feedback"});var b=Garnish.Base.extend({widget:null,screen:null,$screen:null,init:function(a,b,c){this.widget=a,this.screen=b,this.$screen=c,this.afterInit()},afterInit:a.noop,reinit:a.noop}),c=b.extend({afterInit:function(){var a=this.$screen.children(".cs-opt");this.addListener(a,"click","handleOptionClick")},handleOptionClick:function(b){var c=a.attr(b.currentTarget,"data-screen");this.widget.gotoScreen(c)}}),d=b.extend({$body:null,$formContainer:null,mode:null,bodyStartHeight:null,$searchResultsContainer:null,$searchResults:null,$searchForm:null,$searchParams:null,$searchSubmit:null,searchTimeout:null,showingResults:!1,$supportForm:null,$supportMessage:null,$supportAttachment:null,$supportSubmit:null,$supportSpinner:null,$supportErrorList:null,$supportIframe:null,sendingSupportTicket:!1,afterInit:function(){this.$body=this.$screen.find(".cs-body-text:first").focus(),this.$formContainer=this.$screen.children(".cs-forms"),this.$searchResultsContainer=this.$screen.children(".cs-search-results-container:first"),this.$searchResults=this.$searchResultsContainer.find(".cs-search-results:first"),this.$searchForm=this.$formContainer.children(".cs-search-form:first"),this.$searchParams=this.$searchForm.children(".cs-search-params:first"),this.$searchSubmit=this.$searchForm.children(".submit:first"),this.addListener(this.$searchForm,"submit","handleSearchFormSubmit"),this.addListener(this.$searchForm.find("> p > a"),"click","handleSupportLinkClick"),this.$supportForm=this.$formContainer.children(".cs-support-form:first"),this.$supportMessage=this.$supportForm.children("input.cs-support-message");var a=this.$supportForm.children(".cs-support-more");this.$supportAttachment=a.find(".cs-support-attachment:first"),this.$supportSubmit=this.$supportForm.children(".submit:first"),this.$supportSpinner=this.$supportForm.children(".spinner:first"),this.$supportIframe=this.$screen.children("iframe"),this.addListener(this.$supportForm,"submit","handleSupportFormSubmit"),this.bodyStartHeight=this.$body.height(),this.addListener(this.$body,"textchange","handleBodyTextChange"),this.addListener(this.$body,"keydown","handleBodyKeydown"),this.prepForSearch(!1)},handleSearchFormSubmit:function(a){this.$body.val()||a.preventDefault()},handleBodyTextChange:function(){var b=this.$body.val();if(this.mode===d.MODE_SEARCH)if(this.clearSearchTimeout(),this.searchTimeout=setTimeout(a.proxy(this,"search"),500),b){this.$searchParams.html("");var c=this.getFormParams(b);for(var e in c)c.hasOwnProperty(e)&&a("",{type:"hidden",name:e,value:c[e]}).appendTo(this.$searchParams);this.$searchSubmit.removeClass("disabled")}else this.$searchSubmit.addClass("disabled");else b?(this.$supportMessage.val(b),this.$supportSubmit.removeClass("disabled")):this.$supportSubmit.addClass("disabled")},handleBodyKeydown:function(a){switch(a.keyCode){case Garnish.ESC_KEY:this.mode===d.MODE_SEARCH?this.widget.gotoScreen(Craft.CraftSupportWidget.SCREEN_HOME):this.sendingSupportTicket||this.prepForSearch(!0);break;case Garnish.RETURN_KEY:Garnish.isCtrlKeyPressed(a)&&(this.mode===d.MODE_SEARCH?this.$searchForm.submit():this.$supportForm.submit())}},handleSupportLinkClick:function(){this.prepForSupport(!0)},clearSearchTimeout:function(){this.searchTimeout&&(clearTimeout(this.searchTimeout),this.searchTimeout=null)},search:function(){this.clearSearchTimeout();var b=this.$body.val();if(b){var c=this.getSearchUrl(this.$body.val());a.ajax({url:c,dataType:"json",success:a.proxy(this,"handleSearchSuccess"),error:a.proxy(this,"hideSearchResults")})}else this.hideSearchResults()},handleSearchSuccess:function(b){if(this.mode===d.MODE_SEARCH){var c=this.getSearchResults(b);if(c.length){var e;this.showingResults?e=this.$searchResultsContainer.height():(this.$searchResultsContainer.removeClass("hidden"),e=0,this.showingResults=!0,this.$screen.addClass("with-results")),this.$searchResults.html("");for(var f=Math.min(c.length,20),g=0;g").append(a("",{href:this.getSearchResultUrl(c[g]),target:"_blank",html:''+this.getSearchResultText(c[g])})));var h=this.$searchResultsContainer.height("auto").height();this.$searchResultsContainer.velocity("stop").height(e).velocity({height:h},{complete:a.proxy(function(){this.$searchResultsContainer.height("auto")},this)})}else this.hideSearchResults()}},hideSearchResults:function(){this.mode===d.MODE_SEARCH&&this.showingResults&&(this.$searchResultsContainer.velocity("stop").height(this.$searchResultsContainer.height()).velocity({height:0},{complete:a.proxy(function(){this.$searchResultsContainer.addClass("hidden")},this)}),this.showingResults=!1,this.$screen.removeClass("with-results"))},handleSupportFormSubmit:function(a){return!this.$body.val()||this.sendingSupportTicket?void a.preventDefault():(this.sendingSupportTicket=!0,this.$supportSubmit.addClass("active"),void this.$supportSpinner.removeClass("hidden"))},reinit:function(){this.$body.focus()},prepForSearch:function(a){this.mode=d.MODE_SEARCH,this.$body.velocity("stop").focus(),this.$supportErrorList&&(this.$supportErrorList.remove(),this.$supportErrorList=null),a?this.$body.velocity({height:this.bodyStartHeight}):this.$body.height(this.bodyStartHeight),this.swapForms(this.$supportForm,this.$searchForm,a),this.handleBodyTextChange(),this.search()},prepForSupport:function(a){this.clearSearchTimeout(),this.hideSearchResults(),this.mode=d.MODE_SUPPORT,this.$body.velocity("stop").focus(),a?this.$body.velocity({height:2*this.bodyStartHeight}):this.$body.height(2*this.bodyStartHeight),this.swapForms(this.$searchForm,this.$supportForm,a),this.handleBodyTextChange()},swapForms:function(b,c,d){if(d){this.$formContainer.height(this.$formContainer.height());var e=this.$formContainer.width();b.velocity("stop").css({position:"absolute",top:0,left:0,width:e}).velocity({opacity:0},{complete:function(){b.addClass("hidden").css({position:"relative",width:"auto"})}}),c.velocity("stop").removeClass("hidden").css({position:"absolute",top:0,left:0,width:e}).velocity({opacity:1},{complete:function(){c.css({position:"relative",width:"auto"})}}),this.$formContainer.velocity("stop").velocity({height:c.height()},{complete:a.proxy(function(){this.$formContainer.css({height:"auto"})},this)})}else b.addClass("hidden"),c.removeClass("hidden")},parseSupportResponse:function(b){if(this.sendingSupportTicket=!1,this.$supportSubmit.removeClass("active"),this.$supportSpinner.addClass("hidden"),this.$supportErrorList&&this.$supportErrorList.children().remove(),b.errors){this.$supportErrorList||(this.$supportErrorList=a('
      ').insertAfter(this.$supportForm));for(var c in b.errors)if(b.errors.hasOwnProperty(c))for(var d=0;d"+e+"").appendTo(this.$supportErrorList)}}b.success&&(Craft.cp.displayNotice(Craft.t("Message sent successfully.")),this.$body.val(""),this.$supportMessage.val(""),this.$supportAttachment.val("")),this.$supportIframe.html("")},getFormParams:function(){throw"getFormParams() must be implemented"},getSearchUrl:function(){throw"getSearchUrl() must be implemented"},getSearchResults:function(){throw"getSearchResults() must be implemented"},getSearchResultUrl:function(){throw"getSearchResultUrl() must be implemented"},getSearchResultStatus:function(){throw"getSearchResultStatus() must be implemented"},getSearchResultText:function(){throw"getSearchResultUrl() must be implemented"}},{MODE_SEARCH:"search",MODE_SUPPORT:"support"}),e=d.extend({getFormParams:function(a){return{title:a}},getSearchUrl:function(a){return"https://api.stackexchange.com/2.2/similar?site=craftcms&sort=relevance&order=desc&title="+encodeURIComponent(a)},getSearchResults:function(a){return a.items||[]},getSearchResultUrl:function(a){return a.link},getSearchResultStatus:function(a){return a.is_answered?"green":""},getSearchResultText:function(a){return a.title}}),f=d.extend({getFormParams:function(a){var b="### Description\n\n\n\n### Steps to reproduce\n\n1.\n2.\n\n### Additional info\n";for(var c in this.widget.envInfo)this.widget.envInfo.hasOwnProperty(c)&&(b+="\n- "+c+": "+this.widget.envInfo[c]);return{title:a,body:b}},getSearchUrl:function(a){return"https://api.github.com/search/issues?q=type:issue+repo:craftcms/cms+"+encodeURIComponent(a)},getSearchResults:function(a){return a.items||[]},getSearchResultUrl:function(a){return a.html_url},getSearchResultStatus:function(a){return"open"===a.state?"green":"red"},getSearchResultText:function(a){return a.title}})}(jQuery); //# sourceMappingURL=CraftSupportWidget.js.map \ No newline at end of file diff --git a/src/resources/js/compressed/CraftSupportWidget.js.map b/src/resources/js/compressed/CraftSupportWidget.js.map index 288a76dbc24..4189c550051 100644 --- a/src/resources/js/compressed/CraftSupportWidget.js.map +++ b/src/resources/js/compressed/CraftSupportWidget.js.map @@ -1 +1 @@ -{"version":3,"sources":["../CraftSupportWidget.js"],"names":["$","Craft","CraftSupportWidget","Garnish","Base","extend","widgetId","envInfo","loading","$widget","$pane","$screens","$currentScreen","$nextScreen","screens","currentScreen","$helpBody","$feedbackBody","init","this","widgets","find","initScreen","SCREEN_HOME","$screen","getScreen","screen","filter","loadScreen","reinit","HomeScreen","SCREEN_HELP","HelpScreen","SCREEN_FEEDBACK","FeedbackScreen","gotoScreen","velocity","css","opacity","display","handleScreenAnimationComplete","position","left","top","width","height","outerHeight","complete","proxy","BaseScreen","widget","afterInit","noop","$options","children","addListener","handleOptionClick","ev","attr","currentTarget","BaseSearchScreen","$body","$formContainer","mode","bodyStartHeight","$searchResultsContainer","$searchResults","$searchForm","$searchParams","$searchSubmit","searchTimeout","showingResults","$supportForm","$supportMessage","$supportAttachment","$supportSubmit","$supportSpinner","$supportErrorList","$supportIframe","sendingSupportTicket","focus","$more","prepForSearch","handleSearchFormSubmit","val","preventDefault","handleBodyTextChange","text","MODE_SEARCH","clearSearchTimeout","setTimeout","html","params","getFormParams","name","hasOwnProperty","type","value","appendTo","removeClass","addClass","handleBodyKeydown","keyCode","ESC_KEY","RETURN_KEY","isCtrlKeyPressed","submit","handleSupportLinkClick","prepForSupport","clearTimeout","search","url","getSearchUrl","ajax","dataType","success","error","hideSearchResults","handleSearchSuccess","response","results","getSearchResults","length","startResultsHeight","max","Math","min","i","append","href","getSearchResultUrl","target","getSearchResultStatus","getSearchResultText","endResultsHeight","handleSupportFormSubmit","animate","remove","swapForms","MODE_SUPPORT","$out","$in","parseSupportResponse","errors","insertAfter","attribute","cp","displayNotice","t","$iframe","query","title","encodeURIComponent","items","result","link","is_answered","body","html_url","state","jQuery"],"mappings":"CAAA,SAAUA,GAETC,MAAMC,mBAAqBC,QAAQC,KAAKC,QAEtCC,SAAU,EACVC,QAAS,KACTC,SAAS,EAETC,QAAS,KACTC,MAAO,KACPC,SAAU,KACVC,eAAgB,KAChBC,YAAa,KAEbC,QAAS,KACTC,cAAe,KACfC,UAAW,KACXC,cAAe,KAEfC,KAAM,SAASZ,EAAUC,GAExBY,KAAKb,SAAWA,EAChBa,KAAKZ,QAAUA,EAEfN,MAAMC,mBAAmBkB,QAAQD,KAAKb,UAAYa,KAElDA,KAAKV,QAAUT,EAAE,UAAUM,GAC3Ba,KAAKT,MAAQS,KAAKV,QAAQY,KAAK,oBAC/BF,KAAKR,SAAWQ,KAAKT,MAAMW,KAAK,wBAEhCF,KAAKL,WACLK,KAAKP,eAAiBO,KAAKG,WAAWrB,MAAMC,mBAAmBqB,aAAaC,SAG7EC,UAAW,SAASC,GAEnB,MAAOP,MAAKR,SAASgB,OAAO,cAAcD,EAAO,WAGlDJ,WAAY,SAASI,GASpB,MANoC,mBAAzBP,MAAKL,QAAQY,GACvBP,KAAKL,QAAQY,GAAUP,KAAKS,WAAWF,GAEvCP,KAAKL,QAAQY,GAAQG,SAGfV,KAAKL,QAAQY,IAGrBE,WAAY,SAASF,GAEpB,GAAIF,GAAUL,KAAKM,UAAUC,EAE7B,QAAQA,GACP,IAAKzB,OAAMC,mBAAmBqB,YAC7B,MAAO,IAAIO,GAAWX,KAAMO,EAAQF,EACrC,KAAKvB,OAAMC,mBAAmB6B,YAC7B,MAAO,IAAIC,GAAWb,KAAMO,EAAQF,EACrC,KAAKvB,OAAMC,mBAAmB+B,gBAC7B,MAAO,IAAIC,GAAef,KAAMO,EAAQF,EACzC,SACC,KAAM,mBAAmBE,IAI5BS,WAAY,SAAST,GAGhBP,KAAKN,cAERM,KAAKP,eACHwB,SAAS,QACTC,KAAMC,QAAS,EAAGC,QAAS,SAC7BpB,KAAKN,YACHuB,SAAS,QACTC,KAAMC,QAAS,IACjBnB,KAAKT,MAAM0B,SAAS,QACpBjB,KAAKqB,iCAINrB,KAAKN,YAAcM,KAAKM,UAAUC,GAChCW,KACAE,QAAS,QACTE,SAAU,WACVC,KAAM,MACNC,IAAK,MACLC,MAAOzB,KAAKT,MAAMkC,QAAQ,OAI5BzB,KAAKT,MAAMmC,OAAO1B,KAAKT,MAAMmC,UAC7B1B,KAAKP,eAAewB,UAAWE,QAAS,IAAOC,QAAS,SACxDpB,KAAKN,YAAYuB,UAAWE,QAAS,IACrCnB,KAAKT,MAAM0B,UAAWS,OAAQ1B,KAAKN,YAAYiC,gBAC9CC,SAAU/C,EAAEgD,MAAM7B,KAAM,mCAGzBA,KAAKJ,cAAgBI,KAAKG,WAAWI,IAGtCc,8BAA+B,WAE9BrB,KAAKT,MAAMmC,OAAO,QAClB1B,KAAKN,YAAYwB,KAChBI,SAAU,WACVG,MAAO,SAERzB,KAAKP,eAAiBO,KAAKN,YAC3BM,KAAKN,YAAc,QAIpBO,WACAG,YAAa,OACbQ,YAAa,OACbE,gBAAiB,YAGnB,IAAIgB,GAAa9C,QAAQC,KAAKC,QAE5B6C,OAAQ,KACRxB,OAAQ,KACRF,QAAS,KAETN,KAAM,SAASgC,EAAQxB,EAAQF,GAE9BL,KAAK+B,OAASA,EACd/B,KAAKO,OAASA,EACdP,KAAKK,QAAUA,EAEfL,KAAKgC,aAGNA,UAAWnD,EAAEoD,KACbvB,OAAQ7B,EAAEoD,OAGRtB,EAAamB,EAAW5C,QAE1B8C,UAAW,WAEV,GAAIE,GAAWlC,KAAKK,QAAQ8B,SAAS,UACrCnC,MAAKoC,YAAYF,EAAU,QAAS,sBAGrCG,kBAAmB,SAASC,GAE3B,GAAI/B,GAAS1B,EAAE0D,KAAKD,EAAGE,cAAe,cACtCxC,MAAK+B,OAAOf,WAAWT,MAItBkC,EAAmBX,EAAW5C,QAEhCwD,MAAO,KACPC,eAAgB,KAChBC,KAAM,KACNC,gBAAiB,KAEjBC,wBAAyB,KACzBC,eAAgB,KAChBC,YAAa,KACbC,cAAe,KACfC,cAAe,KACfC,cAAe,KACfC,gBAAgB,EAEhBC,aAAc,KACdC,gBAAiB,KACjBC,mBAAoB,KACpBC,eAAgB,KAChBC,gBAAiB,KACjBC,kBAAmB,KACnBC,eAAgB,KAChBC,sBAAsB,EAEtB5B,UAAW,WAEVhC,KAAK0C,MAAQ1C,KAAKK,QAAQH,KAAK,uBAAuB2D,QACtD7D,KAAK2C,eAAiB3C,KAAKK,QAAQ8B,SAAS,aAG5CnC,KAAK8C,wBAA0B9C,KAAKK,QAAQ8B,SAAS,sCACrDnC,KAAK+C,eAAiB/C,KAAK8C,wBAAwB5C,KAAK,4BACxDF,KAAKgD,YAAchD,KAAK2C,eAAeR,SAAS,yBAChDnC,KAAKiD,cAAgBjD,KAAKgD,YAAYb,SAAS,2BAC/CnC,KAAKkD,cAAgBlD,KAAKgD,YAAYb,SAAS,iBAC/CnC,KAAKoC,YAAYpC,KAAKgD,YAAa,SAAU,0BAC7ChD,KAAKoC,YAAYpC,KAAKgD,YAAY9C,KAAK,WAAY,QAAS,0BAG5DF,KAAKqD,aAAerD,KAAK2C,eAAeR,SAAS,0BACjDnC,KAAKsD,gBAAkBtD,KAAKqD,aAAalB,SAAS,2BAClD,IAAI2B,GAAQ9D,KAAKqD,aAAalB,SAAS,mBACvCnC,MAAKuD,mBAAqBO,EAAM5D,KAAK,gCACrCF,KAAKwD,eAAiBxD,KAAKqD,aAAalB,SAAS,iBACjDnC,KAAKyD,gBAAkBzD,KAAKqD,aAAalB,SAAS,kBAClDnC,KAAK2D,eAAiB3D,KAAKK,QAAQ8B,SAAS,UAC5CnC,KAAKoC,YAAYpC,KAAKqD,aAAc,SAAU,2BAE9CrD,KAAK6C,gBAAkB7C,KAAK0C,MAAMhB,SAClC1B,KAAKoC,YAAYpC,KAAK0C,MAAO,aAAc,wBAC3C1C,KAAKoC,YAAYpC,KAAK0C,MAAO,UAAW,qBACxC1C,KAAK+D,eAAc,IAGpBC,uBAAwB,SAAS1B,GAE3BtC,KAAK0C,MAAMuB,OACf3B,EAAG4B,kBAILC,qBAAsB,WAErB,GAAIC,GAAOpE,KAAK0C,MAAMuB,KAEtB,IAAIjE,KAAK4C,OAASH,EAAiB4B,YAIlC,GAHArE,KAAKsE,qBACLtE,KAAKmD,cAAgBoB,WAAW1F,EAAEgD,MAAM7B,KAAM,UAAW,KAErDoE,EAAM,CACTpE,KAAKiD,cAAcuB,KAAK,GACxB,IAAIC,GAASzE,KAAK0E,cAAcN,EAChC,KAAK,GAAIO,KAAQF,GACZA,EAAOG,eAAeD,IACzB9F,EAAE,YACDgG,KAAM,SACNF,KAAMA,EACNG,MAAOL,EAAOE,KACZI,SAAS/E,KAAKiD,cAGnBjD,MAAKkD,cAAc8B,YAAY,gBAE/BhF,MAAKkD,cAAc+B,SAAS,gBAGzBb,IACHpE,KAAKsD,gBAAgBW,IAAIG,GACzBpE,KAAKwD,eAAewB,YAAY,aAEhChF,KAAKwD,eAAeyB,SAAS,aAKhCC,kBAAmB,SAAS5C,GAE3B,OAAQA,EAAG6C,SACV,IAAKnG,SAAQoG,QACRpF,KAAK4C,OAASH,EAAiB4B,YAClCrE,KAAK+B,OAAOf,WAAWlC,MAAMC,mBAAmBqB,aACrCJ,KAAK4D,sBAChB5D,KAAK+D,eAAc,EAEpB,MACD,KAAK/E,SAAQqG,WACRrG,QAAQsG,iBAAiBhD,KACxBtC,KAAK4C,OAASH,EAAiB4B,YAClCrE,KAAKgD,YAAYuC,SAEjBvF,KAAKqD,aAAakC,YAOvBC,uBAAwB,WAEvBxF,KAAKyF,gBAAe,IAGrBnB,mBAAoB,WAEftE,KAAKmD,gBACRuC,aAAa1F,KAAKmD,eAClBnD,KAAKmD,cAAgB,OAIvBwC,OAAQ,WAEP3F,KAAKsE,oBAEL,IAAIF,GAAOpE,KAAK0C,MAAMuB,KAEtB,IAAIG,EAAM,CACT,GAAIwB,GAAM5F,KAAK6F,aAAa7F,KAAK0C,MAAMuB,MACvCpF,GAAEiH,MACDF,IAAKA,EACLG,SAAU,OACVC,QAASnH,EAAEgD,MAAM7B,KAAM,uBACvBiG,MAAOpH,EAAEgD,MAAM7B,KAAM,2BAGtBA,MAAKkG,qBAIPC,oBAAqB,SAASC,GAE7B,GAAIpG,KAAK4C,OAASH,EAAiB4B,YAAnC,CAIA,GAAIgC,GAAUrG,KAAKsG,iBAAiBF,EAEpC,IAAIC,EAAQE,OAAQ,CACnB,GAAIC,EAECxG,MAAKoD,eAMToD,EAAqBxG,KAAK8C,wBAAwBpB,UALlD1B,KAAK8C,wBAAwBkC,YAAY,UACzCwB,EAAqB,EACrBxG,KAAKoD,gBAAiB,EACtBpD,KAAKK,QAAQ4E,SAAS,iBAKvBjF,KAAK+C,eAAeyB,KAAK,GAGzB,KAAK,GADDiC,GAAMC,KAAKC,IAAIN,EAAQE,OAAQ,IAC1BK,EAAI,EAAGA,EAAIH,EAAKG,IACxB5G,KAAK+C,eAAe8D,OAAOhI,EAAE,QAAQgI,OAAOhI,EAAE,OAC7CiI,KAAM9G,KAAK+G,mBAAmBV,EAAQO,IACtCI,OAAQ,SACRxC,KAAM,uBAAuBxE,KAAKiH,sBAAsBZ,EAAQO,IAAI,YAAY5G,KAAKkH,oBAAoBb,EAAQO,OAInH,IAAIO,GAAmBnH,KAAK8C,wBAAwBpB,OAAO,QAAQA,QACnE1B,MAAK8C,wBACH7B,SAAS,QACTS,OAAO8E,GACPvF,UACES,OAAQyF,IAETvF,SAAU/C,EAAEgD,MAAM,WACjB7B,KAAK8C,wBAAwBpB,OAAO,SAClC1B,YAGNA,MAAKkG,sBAIPA,kBAAmB,WAEdlG,KAAK4C,OAASH,EAAiB4B,aAAgBrE,KAAKoD,iBAIxDpD,KAAK8C,wBACH7B,SAAS,QACTS,OAAO1B,KAAK8C,wBAAwBpB,UACpCT,UACES,OAAQ,IAETE,SAAU/C,EAAEgD,MAAM,WACjB7B,KAAK8C,wBAAwBmC,SAAS,WACpCjF,QAGNA,KAAKoD,gBAAiB,EACtBpD,KAAKK,QAAQ2E,YAAY,kBAG1BoC,wBAAyB,SAAS9E,GAEjC,OAAKtC,KAAK0C,MAAMuB,OAASjE,KAAK4D,yBAC7BtB,GAAG4B,kBAIJlE,KAAK4D,sBAAuB,EAC5B5D,KAAKwD,eAAeyB,SAAS,cAC7BjF,MAAKyD,gBAAgBuB,YAAY,YAGlCtE,OAAQ,WAEPV,KAAK0C,MAAMmB,SAGZE,cAAe,SAASsD,GAEvBrH,KAAK4C,KAAOH,EAAiB4B,YAE7BrE,KAAK0C,MACHzB,SAAS,QACT4C,QAEE7D,KAAK0D,oBACR1D,KAAK0D,kBAAkB4D,SACvBtH,KAAK0D,kBAAoB,MAGtB2D,EACHrH,KAAK0C,MAAMzB,UAAWS,OAAQ1B,KAAK6C,kBAEnC7C,KAAK0C,MAAMhB,OAAO1B,KAAK6C,iBAGxB7C,KAAKuH,UAAUvH,KAAKqD,aAAcrD,KAAKgD,YAAaqE,GAGpDrH,KAAKmE,uBACLnE,KAAK2F,UAGNF,eAAgB,SAAS4B,GAExBrH,KAAKsE,qBACLtE,KAAKkG,oBAELlG,KAAK4C,KAAOH,EAAiB+E,aAE7BxH,KAAK0C,MACHzB,SAAS,QACT4C,QAEEwD,EACHrH,KAAK0C,MAAMzB,UAAWS,OAA+B,EAAvB1B,KAAK6C,kBAEnC7C,KAAK0C,MAAMhB,OAA8B,EAAvB1B,KAAK6C,iBAGxB7C,KAAKuH,UAAUvH,KAAKgD,YAAahD,KAAKqD,aAAcgE,GAGpDrH,KAAKmE,wBAGNoD,UAAW,SAASE,EAAMC,EAAKL,GAE9B,GAAIA,EAAS,CACZrH,KAAK2C,eAAejB,OAAO1B,KAAK2C,eAAejB,SAC/C,IAAID,GAAQzB,KAAK2C,eAAelB,OAEhCgG,GACExG,SAAS,QACTC,KAAMI,SAAU,WAAYE,IAAK,EAAGD,KAAM,EAAGE,MAAOA,IACpDR,UACEE,QAAS,IAEVS,SAAU,WACT6F,EACExC,SAAS,UACT/D,KAAMI,SAAU,WAAYG,MAAO,YAIzCiG,EACEzG,SAAS,QACT+D,YAAY,UACZ9D,KAAMI,SAAU,WAAYE,IAAK,EAAGD,KAAM,EAAGE,MAAOA,IACpDR,UACEE,QAAS,IAEVS,SAAU,WACT8F,EAAIxG,KAAMI,SAAU,WAAYG,MAAO,YAI3CzB,KAAK2C,eACH1B,SAAS,QACTA,UACES,OAAQgG,EAAIhG,WAEbE,SAAU/C,EAAEgD,MAAM,WACjB7B,KAAK2C,eAAezB,KAAMQ,OAAQ,UAChC1B,YAINyH,GAAKxC,SAAS,UACdyC,EAAI1C,YAAY,WAIlB2C,qBAAsB,SAASvB,GAU9B,GARApG,KAAK4D,sBAAuB,EAC5B5D,KAAKwD,eAAewB,YAAY,UAChChF,KAAKyD,gBAAgBwB,SAAS,UAE1BjF,KAAK0D,mBACR1D,KAAK0D,kBAAkBvB,WAAWmF,SAG/BlB,EAASwB,OAAQ,CACf5H,KAAK0D,oBACT1D,KAAK0D,kBAAoB7E,EAAE,wBAAwBgJ,YAAY7H,KAAKqD,cAGrE,KAAK,GAAIyE,KAAa1B,GAASwB,OAC9B,GAAIxB,EAASwB,OAAOhD,eAAekD,GAClC,IAAK,GAAIlB,GAAI,EAAGA,EAAIR,EAASwB,OAAOE,GAAWvB,OAAQK,IAAK,CAC3D,GAAIX,GAAQG,EAASwB,OAAOE,GAAWlB,EACvC/H,GAAE,OAAOoH,EAAM,SAASlB,SAAS/E,KAAK0D,oBAMtC0C,EAASJ,UACZlH,MAAMiJ,GAAGC,cAAclJ,MAAMmJ,EAAE,+BAC/BjI,KAAK0C,MAAMuB,IAAI,IACfjE,KAAKsD,gBAAgBW,IAAI,IACzBjE,KAAKuD,mBAAmBU,IAAI,KAG7BjE,KAAKkI,QAAQ1D,KAAK,KAGnBE,cAAe,WAAa,KAAM,uCAClCmB,aAAc,WAAa,KAAM,sCACjCS,iBAAkB,WAAa,KAAM,0CACrCS,mBAAoB,WAAa,KAAM,4CACvCE,sBAAuB,WAAa,KAAM,+CAC1CC,oBAAqB,WAAa,KAAM,8CAExC7C,YAAa,SACbmD,aAAc,YAGZ3G,EAAa4B,EAAiBvD,QAEhCwF,cAAe,SAASyD,GAEvB,OAASC,MAAOD,IAGjBtC,aAAc,SAASsC,GAEtB,MAAO,2FAA2FE,mBAAmBF,IAGtH7B,iBAAkB,SAASF,GAE1B,MAAOA,GAASkC,WAGjBvB,mBAAoB,SAASwB,GAE5B,MAAOA,GAAOC,MAGfvB,sBAAuB,SAASsB,GAE/B,MAAOA,GAAOE,YAAc,QAAU,IAGvCvB,oBAAqB,SAASqB,GAE7B,MAAOA,GAAOH,SAIbrH,EAAiB0B,EAAiBvD,QAEpCwF,cAAe,SAASyD,GAEvB,GAAIO,GAAO,kFAMX,KAAK,GAAI/D,KAAQ3E,MAAK+B,OAAO3C,QACxBY,KAAK+B,OAAO3C,QAAQwF,eAAeD,KACtC+D,GAAQ,OAAO/D,EAAK,KAAK3E,KAAK+B,OAAO3C,QAAQuF,GAI/C,QAASyD,MAAOD,EAAOO,KAAMA,IAG9B7C,aAAc,SAASsC,GAEtB,MAAO,uEAAuEE,mBAAmBF,IAGlG7B,iBAAkB,SAASF,GAE1B,MAAOA,GAASkC,WAGjBvB,mBAAoB,SAASwB,GAE5B,MAAOA,GAAOI,UAGf1B,sBAAuB,SAASsB,GAE/B,MAAwB,SAAjBA,EAAOK,MAAmB,QAAU,OAG5C1B,oBAAqB,SAASqB,GAE7B,MAAOA,GAAOH,UAIfS","file":"CraftSupportWidget.js"} \ No newline at end of file +{"version":3,"sources":["../CraftSupportWidget.js"],"names":["$","Craft","CraftSupportWidget","Garnish","Base","extend","widgetId","envInfo","loading","$widget","$pane","$screens","$currentScreen","$nextScreen","screens","currentScreen","$helpBody","$feedbackBody","init","this","widgets","find","initScreen","SCREEN_HOME","$screen","getScreen","screen","filter","loadScreen","reinit","HomeScreen","SCREEN_HELP","HelpScreen","SCREEN_FEEDBACK","FeedbackScreen","gotoScreen","velocity","css","opacity","display","handleScreenAnimationComplete","position","left","top","width","height","outerHeight","complete","proxy","BaseScreen","widget","afterInit","noop","$options","children","addListener","handleOptionClick","ev","attr","currentTarget","BaseSearchScreen","$body","$formContainer","mode","bodyStartHeight","$searchResultsContainer","$searchResults","$searchForm","$searchParams","$searchSubmit","searchTimeout","showingResults","$supportForm","$supportMessage","$supportAttachment","$supportSubmit","$supportSpinner","$supportErrorList","$supportIframe","sendingSupportTicket","focus","$more","prepForSearch","handleSearchFormSubmit","val","preventDefault","handleBodyTextChange","text","MODE_SEARCH","clearSearchTimeout","setTimeout","html","params","getFormParams","name","hasOwnProperty","type","value","appendTo","removeClass","addClass","handleBodyKeydown","keyCode","ESC_KEY","RETURN_KEY","isCtrlKeyPressed","submit","handleSupportLinkClick","prepForSupport","clearTimeout","search","url","getSearchUrl","ajax","dataType","success","error","hideSearchResults","handleSearchSuccess","response","results","getSearchResults","length","startResultsHeight","max","Math","min","i","append","href","getSearchResultUrl","target","getSearchResultStatus","getSearchResultText","endResultsHeight","handleSupportFormSubmit","animate","remove","swapForms","MODE_SUPPORT","$out","$in","parseSupportResponse","errors","insertAfter","attribute","cp","displayNotice","t","query","title","encodeURIComponent","items","result","link","is_answered","body","html_url","state","jQuery"],"mappings":"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","file":"CraftSupportWidget.js"} \ No newline at end of file diff --git a/src/templates/_components/widgets/CraftSupport/response.html b/src/templates/_components/widgets/CraftSupport/response.html index 4457c1cd2c7..a9c93ab1cd4 100644 --- a/src/templates/_components/widgets/CraftSupport/response.html +++ b/src/templates/_components/widgets/CraftSupport/response.html @@ -2,7 +2,7 @@ var widget = window.parent.Craft.CraftSupportWidget.widgets[{{ widgetId }}]; var response = { success: {{ success == true ? 1 : 0 }}, - errors: {{ errors|raw }} + errors: {{ errors ? errors|raw : 'null' }} }; widget.currentScreen.parseSupportResponse(response); From 64035f1f639d447a0f42b668fc5414f0ab680bc4 Mon Sep 17 00:00:00 2001 From: Brad Bell Date: Tue, 13 Jun 2017 12:10:52 -0700 Subject: [PATCH 08/34] Added the sanitizeSvgUploads config setting (defaults to `true`) to determine whether SVG files should be sanitized on uploads. --- CHANGELOG.md | 3 +++ src/etc/config/defaults/general.php | 6 ++++++ src/services/ImagesService.php | 27 ++++++++++++++++----------- 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 10df2e9ce29..cc4ded5c054 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,9 @@ Craft CMS Changelog ## Unreleased +### Added +- Added the [sanitizeSvgUploads](https://craftcms.com/docs/config-settings#sanitizeSvgUploads) config setting (defaults to `true`) to determine whether SVG files should be sanitized on uploads. + ### Fixed - Fixed a bug where a validation error would occur when saving two routes with the same URL Pattern in different locales. - Fixed a JavaScript error that occurred after sending in a support request from the Craft Support widget. diff --git a/src/etc/config/defaults/general.php b/src/etc/config/defaults/general.php index 8259f594b79..5538c9633d8 100644 --- a/src/etc/config/defaults/general.php +++ b/src/etc/config/defaults/general.php @@ -536,6 +536,12 @@ */ 'runTasksAutomatically' => true, + /** + * Whether Craft should sanitize uploaded SVG files and strip out potential malicious looking content. + * Should definitely be enabled if you are accepting SVG uploads from untrusted sources. + */ + 'sanitizeSvgUploads' => true, + /** * Whether the X-Powered-By header should be sent on each request, helping clients identify that the site is powered by Craft. */ diff --git a/src/services/ImagesService.php b/src/services/ImagesService.php index d0962076ed7..b09ed29eb82 100644 --- a/src/services/ImagesService.php +++ b/src/services/ImagesService.php @@ -169,11 +169,12 @@ public function checkMemoryForImage($filePath, $toTheMax = false) } /** - * Cleans an image by it's path, clearing embedded JS and PHP code. + * Cleans an image by it's path, clearing embedded potentially malicious embedded code. * * @param string $filePath * * @return bool|null + * @throws Exception */ public function cleanImage($filePath) { @@ -183,21 +184,25 @@ public function cleanImage($filePath) // Special case for SVG files. if (IOHelper::getExtension($filePath) === 'svg') { - if (!extension_loaded('dom')) + if (craft()->config->get('sanitizeSvgUploads')) { - throw new Exception('Craft needs the PHP DOM extension (http://www.php.net/manual/en/book.dom.php) enabled to upload SVG files.'); - } + if (!extension_loaded('dom')) + { + throw new Exception('Craft needs the PHP DOM extension (http://www.php.net/manual/en/book.dom.php) enabled to upload SVG files.'); + } - $sanitizer = new Sanitizer(); - $svgContents = IOHelper::getFileContents($filePath); - $svgContents = $sanitizer->sanitize($svgContents); + $sanitizer = new Sanitizer(); + $svgContents = IOHelper::getFileContents($filePath); + $svgContents = $sanitizer->sanitize($svgContents); - if (!$svgContents) - { - throw new Exception('There was a problem sanitizing the SVG file contents. Likely due to not well-formed XML.'); + if (!$svgContents) + { + throw new Exception('There was a problem sanitizing the SVG file contents. Likely due to not well-formed XML.'); + } + + IOHelper::writeToFile($filePath, $svgContents); } - IOHelper::writeToFile($filePath, $svgContents); return true; } From 510f62a4c4fc9279cfa02828caa920a905ba2289 Mon Sep 17 00:00:00 2001 From: brandonkelly Date: Tue, 13 Jun 2017 15:02:32 -0700 Subject: [PATCH 09/34] ImagesService::cleanImage() should be consistant about what it returns --- src/services/ImagesService.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/services/ImagesService.php b/src/services/ImagesService.php index b09ed29eb82..8ff625b2e71 100644 --- a/src/services/ImagesService.php +++ b/src/services/ImagesService.php @@ -173,7 +173,7 @@ public function checkMemoryForImage($filePath, $toTheMax = false) * * @param string $filePath * - * @return bool|null + * @return bool * @throws Exception */ public function cleanImage($filePath) @@ -226,7 +226,9 @@ public function cleanImage($filePath) return true; } - return $this->loadImage($filePath)->saveAs($filePath, true); + $this->loadImage($filePath)->saveAs($filePath, true); + + return true; } /** From 40ad918359088a990c66a5c1299f1c8bfdfea92e Mon Sep 17 00:00:00 2001 From: brandonkelly Date: Tue, 13 Jun 2017 15:32:56 -0700 Subject: [PATCH 10/34] Better exception message --- src/services/ImagesService.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/ImagesService.php b/src/services/ImagesService.php index 8ff625b2e71..6e182517cb3 100644 --- a/src/services/ImagesService.php +++ b/src/services/ImagesService.php @@ -197,7 +197,7 @@ public function cleanImage($filePath) if (!$svgContents) { - throw new Exception('There was a problem sanitizing the SVG file contents. Likely due to not well-formed XML.'); + throw new Exception('There was a problem sanitizing the SVG file contents, likely due to malformed XML.'); } IOHelper::writeToFile($filePath, $svgContents); From 30e58df54883efc04a6be746005d2dbc47b1e055 Mon Sep 17 00:00:00 2001 From: Brad Bell Date: Thu, 15 Jun 2017 10:47:21 -0700 Subject: [PATCH 11/34] Update HTML Purifier to 4.9.3. --- CHANGELOG.md | 3 +++ composer.json | 2 +- composer.lock | 14 +++++++------- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cc4ded5c054..b302e564f99 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,9 @@ Craft CMS Changelog ### Added - Added the [sanitizeSvgUploads](https://craftcms.com/docs/config-settings#sanitizeSvgUploads) config setting (defaults to `true`) to determine whether SVG files should be sanitized on uploads. +### Changed +- Updated HTML Purifier to 4.9.3. + ### Fixed - Fixed a bug where a validation error would occur when saving two routes with the same URL Pattern in different locales. - Fixed a JavaScript error that occurred after sending in a support request from the Craft Support widget. diff --git a/composer.json b/composer.json index 6aab98ba5b4..ca5d427a762 100644 --- a/composer.json +++ b/composer.json @@ -30,7 +30,7 @@ "pixelandtonic/imagine": "v0.7.1.1", "lsolesen/pel": "0.9.4.2", "pclzip/pclzip": "2.8.2", - "yiisoft/yii": "1.1.19.1", + "yiisoft/yii": "1.1.19.2", "enshrined/svg-sanitize": "0.6.0" }, "require-dev": { diff --git a/composer.lock b/composer.lock index 1494d18ddbc..4fb5c6bb6b9 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,8 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "7cbbbc91652daeca02fc655a5f319370", - "content-hash": "c4400c61e2aa5ca8f9ef58615a9b69c4", + "hash": "72047cb92ffd365ebc9b9f3a9ff92699", + "content-hash": "cd24d2b02c76fffa6074ddfa9eb1ac70", "packages": [ { "name": "enshrined/svg-sanitize", @@ -538,16 +538,16 @@ }, { "name": "yiisoft/yii", - "version": "1.1.19.1", + "version": "1.1.19.2", "source": { "type": "git", "url": "https://github.com/pixelandtonic/yii.git", - "reference": "c7a034eba65dc7b6768f0c5aefaeb2693cef787a" + "reference": "2bbfc6a84a03fded2cb09daa3b9c013ecb88e485" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pixelandtonic/yii/zipball/c7a034eba65dc7b6768f0c5aefaeb2693cef787a", - "reference": "c7a034eba65dc7b6768f0c5aefaeb2693cef787a", + "url": "https://api.github.com/repos/pixelandtonic/yii/zipball/2bbfc6a84a03fded2cb09daa3b9c013ecb88e485", + "reference": "2bbfc6a84a03fded2cb09daa3b9c013ecb88e485", "shasum": "" }, "require": { @@ -630,7 +630,7 @@ "irc": "irc://irc.freenode.net/yii", "source": "https://github.com/yiisoft/yii" }, - "time": "2017-06-09 20:46:36" + "time": "2017-06-15 17:40:26" } ], "packages-dev": [ From c796efb19afb799b82f72846bfd7c7ef03a07dd3 Mon Sep 17 00:00:00 2001 From: Brad Bell Date: Fri, 16 Jun 2017 13:39:58 -0700 Subject: [PATCH 12/34] Latest translations from PhraseApp. --- src/translations/ar.php | 22 +++++++++++++++------- src/translations/cs.php | 22 +++++++++++++++------- src/translations/da.php | 22 +++++++++++++++------- src/translations/de.php | 24 ++++++++++++++++-------- src/translations/en_gb.php | 22 +++++++++++++++------- src/translations/es.php | 22 +++++++++++++++------- src/translations/fr.php | 32 ++++++++++++++++++++------------ src/translations/fr_ca.php | 24 ++++++++++++++++-------- src/translations/he.php | 22 +++++++++++++++------- src/translations/hu.php | 24 ++++++++++++++++-------- src/translations/it.php | 22 +++++++++++++++------- src/translations/ja.php | 22 +++++++++++++++------- src/translations/ko.php | 22 +++++++++++++++------- src/translations/nl.php | 22 +++++++++++++++------- src/translations/no.php | 22 +++++++++++++++------- src/translations/pl.php | 24 ++++++++++++++++-------- src/translations/pt.php | 22 +++++++++++++++------- src/translations/ru.php | 22 +++++++++++++++------- src/translations/sk.php | 22 +++++++++++++++------- src/translations/sv.php | 22 +++++++++++++++------- src/translations/tr.php | 26 +++++++++++++++++--------- src/translations/zh.php | 22 +++++++++++++++------- 22 files changed, 341 insertions(+), 165 deletions(-) diff --git a/src/translations/ar.php b/src/translations/ar.php index ac0d037f57b..c4ba0617282 100644 --- a/src/translations/ar.php +++ b/src/translations/ar.php @@ -101,6 +101,7 @@ 'Are you sure you want to uninstall {plugin}? You will lose all of its associated data.' => 'هل تريد بالتأكيد إلغاء تثبيت {plugin}؟ ستفقد كل البيانات المرتبطة به.', 'Area' => 'المنطقة', 'Ascending' => 'تصاعدي', + 'Ask on Stack Exchange' => 'اسأل عن Stack Exchange', 'Asset caches' => 'الذاكرة المؤقتة للأصول', 'Asset indexing data' => 'بيانات فهرسة الأصول', 'Asset Settings' => 'إعدادات الأصول', @@ -134,7 +135,10 @@ 'Bottom-Center' => 'منتصف الأسفل', 'Bottom-Left' => 'أسفل اليسار', 'Bottom-Right' => 'أسفل اليمين', + 'Briefly describe your issue or idea.' => 'اشرح مشكلتك أو فكرتك بإيجاز.', + 'Briefly describe your question.' => 'اشرح سؤالك بإيجاز.', 'Bucket' => 'المخزن', + 'Bug reports and feature requests' => 'تقارير الأخطاء وطلبات الميزة', 'Business name' => 'الاسم التجاري', 'Business tax ID' => 'مُعرف الضريبة التجارية', 'Buy now' => 'شراء الآن', @@ -203,7 +207,6 @@ 'Column Type' => 'نوع العمود', 'Compiled templates' => 'القوالب المترجمة برمجياً', 'Compressed' => 'مضغوط', - 'Config' => 'تكوين', 'Configuration' => 'التكوين', 'Congrats! You’re up-to-date.' => 'تهانينا! لديك آخر تحديث.', 'Connection information not found!' => 'لم يتم العثور على معلومات الإتصال!', @@ -262,7 +265,6 @@ 'Couldn’t save user.' => 'تعذر حفظ المستخدم.', 'Couldn’t save widget.' => 'تعذر حفظ عنصر الواجهة.', 'Couldn’t send activation email. Check your email settings.' => 'لقد تعذّر إرسال البريد الإلكتروني الخاص بالتفعيل. تحقق من إعدادات بريدك الإلكتروني.', - 'Couldn’t send your message. Please email it to {email} instead.' => 'تعذر إرسال رسالتك. الرجاء إرسالها إلى {email} بدلاً من ذلك.', 'Couldn’t suspend user.' => 'لا يمكن تعليق عضوية المستخدم.', 'Couldn’t uninstall plugin.' => 'تعذر إلغاء تثبيت الملحق.', 'Couldn’t unsuspended user.' => 'لا يمكن إلغاء تعليق عضوية المستخدم.', @@ -284,6 +286,7 @@ 'Craft is unable to transfer your license to this domain at this time.' => 'يتعذر على Craft نقل الترخيص إلى هذا النطاق في هذا الوقت.', 'Craft requires the PDO extension to operate.' => 'يتطلب Craft توفر ملحق PDO ليعمل.', 'Craft requires the PDO_MYSQL driver to operate.' => 'يتطلب Craft توفر برنامج تشغيل PDO_MYSQL ليعمل.', + 'Craft Support' => 'دعم Craft', 'Craft was unable to install this update :(' => 'يتعذر على Craft تثبيت هذا التحديث :(', 'Craft {edition} is required to perform this action.' => 'نسخة Craft {edition} مطلوبة للقيام بهذا الإجراء.', 'Craft’s Terms and Conditions have changed.' => 'لقد تغيرت شروط وبنود كرافت.', @@ -484,9 +487,10 @@ 'General Settings' => 'الإعدادات العامة', 'General settings saved.' => 'تم حفظ الإعدادات العامة.', 'Generating pending image transforms' => 'جاري جلب تحويلات الصور المعلقة', - 'Get Help' => 'الحصول على المساعدة', + 'Get help' => 'احصل على المساعدة', 'GET Info' => 'GET Info', 'GET param “{name}” doesn’t exist.' => 'معلمة GET والتي اسمها ”{name}“ غير موجودة.', + 'Give feedback' => 'اعطِ رأيك', 'Give your tab a name.' => 'قم بتسمية علامة التبويب.', 'Global' => 'عمومي', 'Global Set Name' => 'اسم المجموعة العمومية', @@ -524,8 +528,10 @@ 'How you’ll refer to this global set in the templates.' => 'كيف يمكنك الإشارة إلى هذه المجموعة العمومية في القوالب.', 'How you’ll refer to this section in the templates.' => 'كيف يمكنك الإشارة إلى هذا القسم في القوالب.', 'How you’ll refer to this tag group in the templates.' => 'كيف يمكنك الإشارة إلى مجموعة العلامات هذه في القوالب.', + 'How-to’s and other questions' => 'كيفية أداء العمل وأسئلة أخرى', 'HTML' => 'HTML', 'HTML Email Template' => 'قالب الرسالة بتنسيق HTML', + 'HTML Purifier Config' => 'تكوين HTML Purifier', 'http://example.com/path/to/folder/' => 'http://example.com/path/to/folder/', 'HttpRequestService::close() cannot be called after content has been output.' => 'HttpRequestService::close() لا يمكن استدعاؤه بعد أن تم تحويل المحتوى لمخرجات.', 'I agree.' => 'أوافق.', @@ -756,6 +762,7 @@ 'Oops!' => 'عذراً!', 'Option Label' => 'تسمية الخيار', 'Options' => 'خيارات', + 'or send to Craft Support' => 'أو أرسل إلى دعم Craft', 'Origin' => 'الأصل', 'Our site is temporarily unavailable. Please try again later.' => 'موقعنا غير متوفر حالياً. الرجاء المحاولة مرة أخرى لاحقاً.', 'Page Not Found' => 'الصفحة غير موجودة', @@ -793,6 +800,7 @@ 'Position Select' => 'تحديد الموضع', 'Post a new {section} entry' => 'نشر إدخال جديد في {section}', 'Post Date' => 'تاريخ النشر', + 'Post on GitHub' => 'انشر على GitHub', 'POST param “{name}” doesn’t exist.' => 'معلمة POST والتي اسمها ”{name}“ غير موجودة.', 'POST param “{name}” was invalid.' => 'معلم النشر “{name}” غير صالح.', 'Powered by Craft CMS' => 'مشغل بواسطة Craft CMS', @@ -820,6 +828,7 @@ 'Recent Entries' => 'الإدخالات الأخيرة', 'Recent Versions' => 'الإصدارات الأخيرة', 'Recent {section} Entries' => 'إدخالات {section} الأخيرة', + 'Redactor Config' => 'تكوين المحرر', 'Refresh' => 'تحديث', 'Region' => 'المنطقة', 'Register a new user' => 'تسجيل مستخدم جديد', @@ -893,7 +902,6 @@ 'Select transform' => 'تحديد التحويل', 'Selection Label' => 'تسمية الاختيار', 'Send' => 'إرسال', - 'Send a message to Craft CMS Support' => 'إرسال رسالة إلى فريق دعم Craft CMS', 'Send activation email' => 'إرسال رسالة التفعيل', 'Send an activation email now?' => 'إرسال رسالة تفعيل الآن؟', 'Send for help' => 'إرسال للمساعدة', @@ -926,6 +934,8 @@ 'Show time' => 'إظهار الوقت', 'Show/hide children' => 'إظهار/إخفاء العناصر التابعة', 'Sign out' => 'تسجيل الخروج', + 'Similar issues on GitHub' => 'مشكلات مشابهة على GitHub', + 'Similar questions on Stack Exchange' => 'أسئلة مشابهة حول Stack Exchange', 'Single' => 'الفردي', 'Single-line Text' => 'نص ذو سطر واحد', 'Singles' => 'الفرديات', @@ -975,7 +985,6 @@ 'Tag Groups' => 'مجموعات العلامات', 'Tags' => 'العلامات', 'Target Locale' => 'اللغة المستهدفة', - 'Tell us about your problems.' => 'أخبرنا عن مشاكلك.', 'Temp files' => 'الملفات المؤقتة', 'Template caches' => 'التخزينات المؤقتة للقوالب', 'Template Error' => 'خطأ في القالب', @@ -1260,11 +1269,10 @@ 'Years' => 'سنوات', 'Yesterday' => 'أمس', 'yii' => 'يي', - 'You can save custom Redactor configs as .json files in craft/config/redactor/.' => 'يمكنك حفظ تكوينات Redactor المخصصة كملفات بتنسيق .json في المسار craft/config/redactor/.', + 'You can save custom {name} configs as {ext} files in {path}.' => 'يمكنك حفظ تكوينات مخصص {name} كملفات {ext} في {path}.', 'You cannot access the CP while the system is offline with that account.' => 'لا يمكنك الوصول إلى لوحة التحكم من خلال هذا الحساب عندما يكون النظام متوقف.', 'You cannot access the CP with that account.' => 'لا يمكنك الوصول إلى لوحة التحكم من خلال هذا الحساب.', 'You cannot access the site while the system is offline with that account.' => 'لا يمكنك الوصول إلى الموقع من خلال هذا الحساب عندما يكون النظام متوقف.', - 'You don’t have any Redactor configs yet.' => 'ليس لديك أي تكوينات مُحررة بعد.', 'You don’t have any widgets yet.' => 'ليس لديك أي عناصر واجهة بعد.', 'You don’t have the proper credentials to access this page.' => 'ليس لديك بيانات اعتماد صحيحة للوصول إلى هذه الصفحة.', 'You don’t have the required permissions for this operation.' => 'ليس لديك الأذونات المطلوبة لهذه العملية.', diff --git a/src/translations/cs.php b/src/translations/cs.php index a8ba7658ee9..4d9bb71b3ef 100644 --- a/src/translations/cs.php +++ b/src/translations/cs.php @@ -101,6 +101,7 @@ 'Are you sure you want to uninstall {plugin}? You will lose all of its associated data.' => 'Určitě si přejete odinstalovat plugin {plugin}? Ztratíte veškerá související data.', 'Area' => 'Oblast', 'Ascending' => 'Vzestupně', + 'Ask on Stack Exchange' => 'Zeptejte se na Stack Exchange', 'Asset caches' => 'Cache objektů', 'Asset indexing data' => 'Indexační data objektů', 'Asset Settings' => 'Nastavení objektů', @@ -134,7 +135,10 @@ 'Bottom-Center' => 'Dole-Uprostřed', 'Bottom-Left' => 'Dole-Vlevo', 'Bottom-Right' => 'Dole-Vpravo', + 'Briefly describe your issue or idea.' => 'Stručně popište svůj problém nebo nápad.', + 'Briefly describe your question.' => 'Stručně popište svoji otázku.', 'Bucket' => 'Bucket', + 'Bug reports and feature requests' => 'Zprávy o chybách a požadavky na funkce', 'Business name' => 'Obchodní název', 'Business tax ID' => 'Daňové identifikační číslo', 'Buy now' => 'Koupit nyní', @@ -203,7 +207,6 @@ 'Column Type' => 'Typ sloupce', 'Compiled templates' => 'Kompilované šablony', 'Compressed' => 'Komprimováno', - 'Config' => 'Konfigurace', 'Configuration' => 'Konfigurace.', 'Congrats! You’re up-to-date.' => 'Gratulujeme! Vše je aktuální!', 'Connection information not found!' => 'Informace o připojení nebyla nalezena.', @@ -262,7 +265,6 @@ 'Couldn’t save user.' => 'Nepodařilo se uložit uživatele.', 'Couldn’t save widget.' => 'Nepodařilo se uložit widget.', 'Couldn’t send activation email. Check your email settings.' => 'Aktivační email nebylo možné poslat. Zkontrolujte nastavení Vašeho emailu.', - 'Couldn’t send your message. Please email it to {email} instead.' => 'Vaši zprávu se nepodařilo odeslat. Prosím pošlete ji ručně na {email}.', 'Couldn’t suspend user.' => 'Nepodařilo se blokovat uživatele.', 'Couldn’t uninstall plugin.' => 'Plugin se nepovedlo odinstalovat.', 'Couldn’t unsuspended user.' => 'Nepodařilo se odblokovat uživatele.', @@ -284,6 +286,7 @@ 'Craft is unable to transfer your license to this domain at this time.' => 'Craft nyní nemůže přenést Vaši licenci na tuto doménu.', 'Craft requires the PDO extension to operate.' => 'Craft pro fungování vyžaduje rozšíření PDO.', 'Craft requires the PDO_MYSQL driver to operate.' => 'Craft potřebuje PDO_MYSQL pro svůj běh.', + 'Craft Support' => 'Tým podpory Craft', 'Craft was unable to install this update :(' => 'Craftu se nepodařilo aktualizaci nainstalovat.', 'Craft {edition} is required to perform this action.' => 'Craft {edition} je vyžadován pro tuto akci.', 'Craft’s Terms and Conditions have changed.' => 'Změnily se Obchodní podmínky společnosti Craft.', @@ -484,9 +487,10 @@ 'General Settings' => 'Obecné nastavení', 'General settings saved.' => 'Obecné nastavení uloženo.', 'Generating pending image transforms' => 'Provádím naplánované transformace obrázků', - 'Get Help' => 'Získat pomoc', + 'Get help' => 'Získat nápovědu', 'GET Info' => 'GET Info', 'GET param “{name}” doesn’t exist.' => 'GET parametr "{name}" neexistuje.', + 'Give feedback' => 'Poskytnout zpětnou vazbu', 'Give your tab a name.' => 'Pojmenujte záložku', 'Global' => 'Globální', 'Global Set Name' => 'Nastavení globální sady', @@ -524,8 +528,10 @@ 'How you’ll refer to this global set in the templates.' => 'Jak budete tuto globální sadu volat v šablonách.', 'How you’ll refer to this section in the templates.' => 'Jak se budete odkazovat na tuto sekci v šablonách.', 'How you’ll refer to this tag group in the templates.' => 'Jak se budete na tuto skupinu tagů odkazovat v šablonách.', + 'How-to’s and other questions' => 'Návody a další otázky', 'HTML' => 'HTML', 'HTML Email Template' => 'HTML šablona emailu.', + 'HTML Purifier Config' => 'Konfigurace čističe HTML', 'http://example.com/path/to/folder/' => 'http://example.com/path/to/folder/', 'HttpRequestService::close() cannot be called after content has been output.' => 'Po odeslání obsahu již nelze volat HttpRequestService::close().', 'I agree.' => 'Souhlasím.', @@ -756,6 +762,7 @@ 'Oops!' => 'A to je nepříjemné!', 'Option Label' => 'Popis možnosti', 'Options' => 'Možnosti', + 'or send to Craft Support' => 'nebo odešlete týmu podpory Craft', 'Origin' => 'Původ', 'Our site is temporarily unavailable. Please try again later.' => 'Naše stránka je dočasně nedostupná. Prosím zkuste to později.', 'Page Not Found' => 'Stránka nenalezena', @@ -793,6 +800,7 @@ 'Position Select' => 'Výběr polohy', 'Post a new {section} entry' => 'Přidat nový záznam v sekci {section}', 'Post Date' => 'Datum vydání', + 'Post on GitHub' => 'Zveřejnit na GitHub', 'POST param “{name}” doesn’t exist.' => 'POST parametr "{name}" neexistuje.', 'POST param “{name}” was invalid.' => 'Param POSTU “{name}” byl neplatný.', 'Powered by Craft CMS' => 'Provozováno pomocí Craft CMS', @@ -820,6 +828,7 @@ 'Recent Entries' => 'Nedávné záznamy', 'Recent Versions' => 'Nedávné verze', 'Recent {section} Entries' => 'Nedávné záznamy sekce {section}', + 'Redactor Config' => 'Konfigurace redaktora', 'Refresh' => 'Obnovit', 'Region' => 'Region', 'Register a new user' => 'Registrovat uživatele', @@ -893,7 +902,6 @@ 'Select transform' => 'Zvolit transformaci', 'Selection Label' => 'Označení výběru', 'Send' => 'Odeslat', - 'Send a message to Craft CMS Support' => 'Pošlete zprávu podpoře Craft CMS', 'Send activation email' => 'Odeslat aktivační email', 'Send an activation email now?' => 'Odeslat nyní aktivační email?', 'Send for help' => 'Požádat o pomoc', @@ -926,6 +934,8 @@ 'Show time' => 'Čas zobrazení', 'Show/hide children' => 'Zobrazit/skrýt potomky', 'Sign out' => 'Odhlásit', + 'Similar issues on GitHub' => 'Podobné problém na GitHub', + 'Similar questions on Stack Exchange' => 'Podobné otázky na Stack Exchange', 'Single' => 'Single', 'Single-line Text' => 'Jednořádkový text', 'Singles' => 'Stránky', @@ -975,7 +985,6 @@ 'Tag Groups' => 'Skupiny tagů', 'Tags' => 'Tagy', 'Target Locale' => 'Cílový jazyk', - 'Tell us about your problems.' => 'Řekněte nám o Vašich problémech.', 'Temp files' => 'Dočasné soubory', 'Template caches' => 'Cache šablon', 'Template Error' => 'Chyba šablony', @@ -1260,11 +1269,10 @@ 'Years' => 'Roky', 'Yesterday' => 'Včera', 'yii' => 'yii', - 'You can save custom Redactor configs as .json files in craft/config/redactor/.' => 'Vlastní konfiguraci Redactoru můžete uložit jako .json soubory v craft/config/redactor/.', + 'You can save custom {name} configs as {ext} files in {path}.' => 'Můžete uložit vlastní konfigurace {name} jako soubory {ext} v {path}.', 'You cannot access the CP while the system is offline with that account.' => 'S Vaším účtem nemůžete otevvřít CP, když je systém offline.', 'You cannot access the CP with that account.' => 'Administrační rozhraní není s tímto účtem přístupné.', 'You cannot access the site while the system is offline with that account.' => 'S tímto účtem se nemůžete dostat na stránku, když je systém vypnutý.', - 'You don’t have any Redactor configs yet.' => 'Zatím nemáte žádné Redakční konfigurace.', 'You don’t have any widgets yet.' => 'Zatím nemáte žádné widgety', 'You don’t have the proper credentials to access this page.' => 'Nemáte potřebné oprávnění pro přístup k této stránce.', 'You don’t have the required permissions for this operation.' => 'Nemáte oprávnění potřebná pro provedení této operace.', diff --git a/src/translations/da.php b/src/translations/da.php index f27e2ab56c8..b4e2701f4fa 100644 --- a/src/translations/da.php +++ b/src/translations/da.php @@ -101,6 +101,7 @@ 'Are you sure you want to uninstall {plugin}? You will lose all of its associated data.' => 'Er du sikker på, du vil afinstallere {plugin}? Du vil miste alle dets associerede data.', 'Area' => 'Område', 'Ascending' => 'Stigende', + 'Ask on Stack Exchange' => 'Spørg på Stack Exchange', 'Asset caches' => 'Fil caches', 'Asset indexing data' => 'Fil indekserings data', 'Asset Settings' => 'Fil indstillinger', @@ -134,7 +135,10 @@ 'Bottom-Center' => 'Nederst i midten', 'Bottom-Left' => 'Nederst til venstre', 'Bottom-Right' => 'Nederst til Højre', + 'Briefly describe your issue or idea.' => 'Beskriv kort dit problem eller din idé', + 'Briefly describe your question.' => 'Beskriv kort dit spørgsmål', 'Bucket' => 'Bucket', + 'Bug reports and feature requests' => 'Fejlrapporter og anmodninger om nye funktioner', 'Business name' => 'Firmanavn', 'Business tax ID' => 'Forretning skatte-id', 'Buy now' => 'Køb nu', @@ -203,7 +207,6 @@ 'Column Type' => 'Kolonne type', 'Compiled templates' => 'Kompilerede skabeloner', 'Compressed' => 'Komprimeret', - 'Config' => 'Konfig', 'Configuration' => 'Konfiguration', 'Congrats! You’re up-to-date.' => 'Tillykke! Alt er up-to date.', 'Connection information not found!' => 'Forbindelses information kunne ikke findes...', @@ -262,7 +265,6 @@ 'Couldn’t save user.' => 'Kunne ikke gemme bruger', 'Couldn’t save widget.' => 'Kunne ikke gemme widget.', 'Couldn’t send activation email. Check your email settings.' => 'Kunne ikke afsende aktiverings-email. Tjek dine e-mail indstillinger.', - 'Couldn’t send your message. Please email it to {email} instead.' => 'Kunne ikke sende din besked. Send venligst en email med beskeden til {email} i stedet.', 'Couldn’t suspend user.' => 'Kunne ikke suspendere bruger.', 'Couldn’t uninstall plugin.' => 'Kunne ikke installere plugin', 'Couldn’t unsuspended user.' => 'Kunne ikke ophæve suspenderingen af bruger.', @@ -284,6 +286,7 @@ 'Craft is unable to transfer your license to this domain at this time.' => 'Craft er ude af stand til at overføre din licens til dette domæne på nuværende tidspunkt.', 'Craft requires the PDO extension to operate.' => 'Craft kræver PDO udvidelsen for at fungere.', 'Craft requires the PDO_MYSQL driver to operate.' => 'Craft kræver PDO_MYSQL driveren for at kunne fungere.', + 'Craft Support' => 'Craft Support', 'Craft was unable to install this update :(' => 'Craft kunne ikke installere denne opdatering :(', 'Craft {edition} is required to perform this action.' => 'Craft {edition} er krævet, for at kunne gennemføre denne handling.', 'Craft’s Terms and Conditions have changed.' => 'Craft\'s Terms and Conditions er blevet ændret.', @@ -484,9 +487,10 @@ 'General Settings' => 'Generelle Instillinger', 'General settings saved.' => 'Generelle instillinger gemt.', 'Generating pending image transforms' => 'Genererer afventende billedbehandlinger', - 'Get Help' => 'Få Hjælp', + 'Get help' => 'Få hjælp', 'GET Info' => 'Få Info', 'GET param “{name}” doesn’t exist.' => 'GET-parameter “{name}” eksisterer ikke.', + 'Give feedback' => 'Giv feedback', 'Give your tab a name.' => 'Giv din fane et navn.', 'Global' => 'Global', 'Global Set Name' => 'Globalt Sæt Navn', @@ -524,8 +528,10 @@ 'How you’ll refer to this global set in the templates.' => 'Hvordan du vil referere til dette globaal sæt i skabelonerne.', 'How you’ll refer to this section in the templates.' => 'Hvordan vi vil referere til denne sektion i skabelonerne.', 'How you’ll refer to this tag group in the templates.' => 'Hvordan vil du referere til denne tag-gruppe i skabelonerne.', + 'How-to’s and other questions' => 'Forklaringer og andre spørgsmål', 'HTML' => 'HTML', 'HTML Email Template' => 'HTML Email Skabelon', + 'HTML Purifier Config' => 'HTML Purifier-konfiguration', 'http://example.com/path/to/folder/' => 'http://eksempel.com/sti/til/mappe/', 'HttpRequestService::close() cannot be called after content has been output.' => 'HttpRequestService::close() kan ikke kaldes efter indholdet er blevet udsendt.', 'I agree.' => 'Jeg acceptere.', @@ -756,6 +762,7 @@ 'Oops!' => 'Ups!', 'Option Label' => 'Etiket for alternativ', 'Options' => 'Indstillinger', + 'or send to Craft Support' => 'eller send til Craft Support', 'Origin' => 'Oprindelse', 'Our site is temporarily unavailable. Please try again later.' => 'Vores side er midlertidigt utilgængrlig. Prøv venligst igen senere.', 'Page Not Found' => 'Siden blev ikke fundet', @@ -793,6 +800,7 @@ 'Position Select' => 'Vælg position', 'Post a new {section} entry' => 'Indsend en ny {section} indgang', 'Post Date' => 'Dato for indlæg', + 'Post on GitHub' => 'Læg op på GitHub', 'POST param “{name}” doesn’t exist.' => 'POST parameter "{name}" eksisterer ikke.', 'POST param “{name}” was invalid.' => 'POST parameter “{name}” var ugyldig.', 'Powered by Craft CMS' => 'Leveret af Craft CMS', @@ -820,6 +828,7 @@ 'Recent Entries' => 'Seneste Indgange', 'Recent Versions' => 'Tidligere Versioner', 'Recent {section} Entries' => 'Nylige {section} opslag', + 'Redactor Config' => 'Redactor-konfiguration', 'Refresh' => 'Genindlæs', 'Region' => 'Region', 'Register a new user' => 'Registrer en ny bruger', @@ -893,7 +902,6 @@ 'Select transform' => 'Vælg transformering', 'Selection Label' => 'Valgmærkat', 'Send' => 'Send', - 'Send a message to Craft CMS Support' => 'Send en besked til Craft CMS support', 'Send activation email' => 'Send aktiverings email', 'Send an activation email now?' => 'Send aktiverings-e-mail nu?', 'Send for help' => 'Send for hjælp', @@ -926,6 +934,8 @@ 'Show time' => 'Vis tid', 'Show/hide children' => 'Vis/gem børn', 'Sign out' => 'Log ud', + 'Similar issues on GitHub' => 'Ligende problemer på GitHub', + 'Similar questions on Stack Exchange' => 'Ligende spørgsmål på Stack Exchange', 'Single' => 'Enkelt', 'Single-line Text' => 'Enkelt linje tekst', 'Singles' => 'Enkelte', @@ -975,7 +985,6 @@ 'Tag Groups' => 'Tag Grupper', 'Tags' => 'Mærker', 'Target Locale' => 'Målets lokalitet', - 'Tell us about your problems.' => 'Fortæl os om dine problemer.', 'Temp files' => 'Midlertidige filer', 'Template caches' => 'Skabelon cache', 'Template Error' => 'Skabelon Fejl', @@ -1260,11 +1269,10 @@ 'Years' => 'År', 'Yesterday' => 'Igår', 'yii' => 'yii', - 'You can save custom Redactor configs as .json files in craft/config/redactor/.' => 'Du kan gemme brugerdefinerede Redactor configs som .json filer i craft/config/redactor/.', + 'You can save custom {name} configs as {ext} files in {path}.' => 'Du kan gemme brugerdefinerede {name} konfigurationer som {ext} filer under {path}.', 'You cannot access the CP while the system is offline with that account.' => 'Du kan ikke få adgang til din CP mens systemet er offline med den bruger.', 'You cannot access the CP with that account.' => 'Du har ikke adgang CPen med den konto.', 'You cannot access the site while the system is offline with that account.' => 'Du kan ikke få adgang til siden mens systemet er offline med den konto.', - 'You don’t have any Redactor configs yet.' => 'Du har endnu ingen Redactor configs .', 'You don’t have any widgets yet.' => 'Du har ikke nogen widgets endnu.', 'You don’t have the proper credentials to access this page.' => 'Den bruger du er logget ind med, har ikke adgang til at se denne side.', 'You don’t have the required permissions for this operation.' => 'Du har ikke de krævede tilladelser til at udføre denne handling.', diff --git a/src/translations/de.php b/src/translations/de.php index 34a6fcba5c6..fee6f125078 100644 --- a/src/translations/de.php +++ b/src/translations/de.php @@ -101,6 +101,7 @@ 'Are you sure you want to uninstall {plugin}? You will lose all of its associated data.' => 'Sind Sie sicher, dass Sie „{plugin}“ wirklich deinstallieren möchten? Damit verlieren Sie auch alle mit dem Plugin verbundenen Daten.', 'Area' => 'Bereich', 'Ascending' => 'Aufsteigend', + 'Ask on Stack Exchange' => 'Bei Stack Exchange fragen', 'Asset caches' => 'Datei-Zwischenspeicher', 'Asset indexing data' => 'Datei-Index-Daten', 'Asset Settings' => 'Datei-Einstellungen', @@ -134,7 +135,10 @@ 'Bottom-Center' => 'Mitte unten', 'Bottom-Left' => 'Links unten', 'Bottom-Right' => 'Rechts unten', + 'Briefly describe your issue or idea.' => 'Beschreiben Sie kurz Ihr Problem oder Ihre Idee.', + 'Briefly describe your question.' => 'Beschreiben Sie kurz Ihre Frage.', 'Bucket' => 'Speicherort', + 'Bug reports and feature requests' => 'Fehlermeldungen und Vorschläge für Funktionen', 'Business name' => 'Unternehmensname', 'Business tax ID' => 'Unternehmenssteuernummer', 'Buy now' => 'Jetzt kaufen', @@ -203,7 +207,6 @@ 'Column Type' => 'Spaltentyp', 'Compiled templates' => 'Kompilierte Templates', 'Compressed' => 'Komprimiert', - 'Config' => 'Konfiguration', 'Configuration' => 'Einstellungen', 'Congrats! You’re up-to-date.' => 'Glückwunsch! Sie sind auf dem aktuellen Stand.', 'Connection information not found!' => 'Keine Verbindungsinformationen gefunden!', @@ -262,7 +265,6 @@ 'Couldn’t save user.' => 'Der Benutzer konnte nicht gespeichert werden.', 'Couldn’t save widget.' => 'Das Widget konnte nicht gespeichert werden.', 'Couldn’t send activation email. Check your email settings.' => 'Aktivierungs-E-Mail konnte nicht versendet werden. Bitte prüfen Sie Ihre E-Mail-Einstellungen', - 'Couldn’t send your message. Please email it to {email} instead.' => 'Die Mitteilung konnte nicht gesendet werden. Bitte senden Sie sie diese stattdessen per E-Mail an {email}.', 'Couldn’t suspend user.' => 'Konnte den Benutzer nicht suspendieren.', 'Couldn’t uninstall plugin.' => 'Das Plugin konnte nicht deinstalliert werden.', 'Couldn’t unsuspended user.' => 'Konnte die Suspendierung des Benutzers nicht aufheben.', @@ -284,6 +286,7 @@ 'Craft is unable to transfer your license to this domain at this time.' => 'Craft kann Ihre Nutzerlizenz im Moment nicht auf diese Domain übertragen.', 'Craft requires the PDO extension to operate.' => 'Craft benötigt die PDO-Erweiterung.', 'Craft requires the PDO_MYSQL driver to operate.' => 'Craft benötigt den PDO_MYSQL-Treiber.', + 'Craft Support' => 'Craft-Support', 'Craft was unable to install this update :(' => 'Craft konnte diese Aktualisierung nicht installieren. :(', 'Craft {edition} is required to perform this action.' => 'Craft {edition} ist erforderlich, um diese Aktion durchzuführen.', 'Craft’s Terms and Conditions have changed.' => 'Die Geschäftsbedingungen von Craft haben sich geändert.', @@ -484,9 +487,10 @@ 'General Settings' => 'Allgemeine Einstellungen', 'General settings saved.' => 'Die allgemeine Einstellungen wurden gespeichert.', 'Generating pending image transforms' => 'Erzeuge anstehende Bildtransformationen', - 'Get Help' => 'Hilfe', + 'Get help' => 'Hilfe einholen', 'GET Info' => 'GET-Informationen', 'GET param “{name}” doesn’t exist.' => 'Der GET-Parameter „{name}“ existiert nicht.', + 'Give feedback' => 'Feedback abgeben', 'Give your tab a name.' => 'Geben Sie Ihrem Tab einen Namen.', 'Global' => 'Überall', 'Global Set Name' => 'Name der Gruppe von globalen Inhalten', @@ -524,8 +528,10 @@ 'How you’ll refer to this global set in the templates.' => 'Wie Sie in Templates auf diese Gruppe von globalen Inhalten verweisen.', 'How you’ll refer to this section in the templates.' => 'Wie Sie in Templates auf diese Sektion verweisen.', 'How you’ll refer to this tag group in the templates.' => 'Wie Sie sich in den Templates auf diese Schlagwörter-Gruppe beziehen.', + 'How-to’s and other questions' => 'Anleitungen und andere Fragen', 'HTML' => 'HTML', 'HTML Email Template' => 'Template für HTML-E-Mails', + 'HTML Purifier Config' => 'HTML-Purifier-Konfiguration', 'http://example.com/path/to/folder/' => 'http://beispiel.de/pfad/zum/verzeichnis/', 'HttpRequestService::close() cannot be called after content has been output.' => 'HttpRequestService::close() kann nicht aufgerufen werden, nachdem Inhalte ausgegeben wurden.', 'I agree.' => 'Ich stimme zu.', @@ -756,6 +762,7 @@ 'Oops!' => 'Huch!', 'Option Label' => 'Bezeichnung der Einstellungen', 'Options' => 'Einstellungen', + 'or send to Craft Support' => 'oder an den Craft-Support senden', 'Origin' => 'Ursprung', 'Our site is temporarily unavailable. Please try again later.' => 'Unsere Seite ist vorübergehend nicht erreichbar. Bitte versuchen Sie es zu einem späteren Zeitpunkt erneut.', 'Page Not Found' => 'Seite nicht gefunden', @@ -769,7 +776,7 @@ 'Pay {price}' => '{price} bezahlen', 'PDF' => 'PDF', 'Pending' => 'Anstehend', - 'Perform Craft CMS and plugin updates' => 'Craft CMS ausführen und Plugin Updates', + 'Perform Craft CMS and plugin updates' => 'Updates für Craft CMS und Plugins ausführen', 'Permissions' => 'Zugangsrechte', 'Photo' => 'Foto', 'Photoshop' => 'Photoshop', @@ -793,6 +800,7 @@ 'Position Select' => 'Auswahl der Position', 'Post a new {section} entry' => 'Einen neuen Eintrag in „{section}“ erstellen', 'Post Date' => 'Eintragsdatum', + 'Post on GitHub' => 'Bei GitHib posten', 'POST param “{name}” doesn’t exist.' => 'Der POST-Parameter „{name}“ existiert nicht.', 'POST param “{name}” was invalid.' => 'POST-Parameter “{name}” war ungültig.', 'Powered by Craft CMS' => 'Ein Angebot von Craft CMS', @@ -820,6 +828,7 @@ 'Recent Entries' => 'Aktuelle Einträge', 'Recent Versions' => 'Aktuelle Versionen', 'Recent {section} Entries' => 'Aktuelle {section}-Einträge', + 'Redactor Config' => 'Redactor-Konfiguration', 'Refresh' => 'Aktualisieren', 'Region' => 'Region', 'Register a new user' => 'Einen neuen Benutzer registrieren', @@ -893,7 +902,6 @@ 'Select transform' => 'Transformationen auswählen', 'Selection Label' => 'Auswahlbeschriftung', 'Send' => 'Senden', - 'Send a message to Craft CMS Support' => 'Eine Nachricht an den Craft CMS Support senden', 'Send activation email' => 'E-Mail zur Aktivierung senden', 'Send an activation email now?' => 'Soll jetzt eine E-Mail zur Aktivierung gesendet werden?', 'Send for help' => 'Hilfe anfordern', @@ -926,6 +934,8 @@ 'Show time' => 'Zeit anzeigen', 'Show/hide children' => 'Untere Ebenen anzeigen/verstecken', 'Sign out' => 'Abmelden', + 'Similar issues on GitHub' => 'Ähnliche Probleme bei GitHub', + 'Similar questions on Stack Exchange' => 'Ähnliche Fragen bei Stack Exchange', 'Single' => 'Einzeleintrag', 'Single-line Text' => 'Einzeiliger Text', 'Singles' => 'Einzeleinträge', @@ -975,7 +985,6 @@ 'Tag Groups' => 'Schlagwörter-Gruppen', 'Tags' => 'Schlagwörter', 'Target Locale' => 'Ziel-Lokalisierung', - 'Tell us about your problems.' => 'Beschreiben Sie uns Ihre Probleme.', 'Temp files' => 'Temporäre Dateien', 'Template caches' => 'Template-Cache', 'Template Error' => 'Fehler im Template', @@ -1260,11 +1269,10 @@ 'Years' => 'Jahre', 'Yesterday' => 'Gestern', 'yii' => 'yii', - 'You can save custom Redactor configs as .json files in craft/config/redactor/.' => 'Sie können individuelle Redactor-Konfigurationen als .json-Dateien in craft/config/redactor/ speichern.', + 'You can save custom {name} configs as {ext} files in {path}.' => 'Sie können individuell angepasste {name}-Konfigurationen als {ext}-Dateien unter {path} speichern.', 'You cannot access the CP while the system is offline with that account.' => 'Mit diesem Benutzerkonto können Sie nicht auf das Kontrollzentrum zugreifen, solange das System offline ist.', 'You cannot access the CP with that account.' => 'Mit diesem Benutzerkonto können Sie nicht auf das Kontrollzentrum zugreifen.', 'You cannot access the site while the system is offline with that account.' => 'Sie können mit diesem Benuterkonto nicht auf die Website zugreifen, während das System offline ist.', - 'You don’t have any Redactor configs yet.' => 'Sie haben bisher keine Redactor-Konfigurationen.', 'You don’t have any widgets yet.' => 'Sie haben noch keine Widgets.', 'You don’t have the proper credentials to access this page.' => 'Sie verfügen nicht über ausreichende Rechte, um auf diese Seite zugreifen zu können.', 'You don’t have the required permissions for this operation.' => 'Für diese Handlung haben Sie nicht die erforderliche Berechtigung.', diff --git a/src/translations/en_gb.php b/src/translations/en_gb.php index 90cea64b6d6..9628d2ea9ce 100644 --- a/src/translations/en_gb.php +++ b/src/translations/en_gb.php @@ -101,6 +101,7 @@ 'Are you sure you want to uninstall {plugin}? You will lose all of its associated data.' => 'Are you sure you want to uninstall {plugin}? You will lose all of its associated data.', 'Area' => 'Area', 'Ascending' => 'Ascending', + 'Ask on Stack Exchange' => 'Ask on Stack Exchange', 'Asset caches' => 'Asset caches', 'Asset indexing data' => 'Asset indexing data', 'Asset Settings' => 'Asset Settings', @@ -134,7 +135,10 @@ 'Bottom-Center' => 'Bottom-Centre', 'Bottom-Left' => 'Bottom-Left', 'Bottom-Right' => 'Bottom-Right', + 'Briefly describe your issue or idea.' => 'Briefly describe your issue or idea.', + 'Briefly describe your question.' => 'Briefly describe your question.', 'Bucket' => 'Bucket', + 'Bug reports and feature requests' => 'Bug reports and feature requests', 'Business name' => 'Business name', 'Business tax ID' => 'Business tax ID', 'Buy now' => 'Buy now', @@ -203,7 +207,6 @@ 'Column Type' => 'Column Type', 'Compiled templates' => 'Compiled templates', 'Compressed' => 'Compressed', - 'Config' => 'Config', 'Configuration' => 'Configuration', 'Congrats! You’re up-to-date.' => 'Congrats! You’re up-to-date.', 'Connection information not found!' => 'Connection information not found!', @@ -262,7 +265,6 @@ 'Couldn’t save user.' => 'Couldn’t save user.', 'Couldn’t save widget.' => 'Couldn’t save widget.', 'Couldn’t send activation email. Check your email settings.' => 'Couldn’t send activation e-mail. Check your e-mail settings.', - 'Couldn’t send your message. Please email it to {email} instead.' => 'Couldn’t send your message. Please email it to {email} instead.', 'Couldn’t suspend user.' => 'Couldn’t suspend user.', 'Couldn’t uninstall plugin.' => 'Couldn’t uninstall plugin.', 'Couldn’t unsuspended user.' => 'Couldn’t unsuspended user.', @@ -284,6 +286,7 @@ 'Craft is unable to transfer your license to this domain at this time.' => 'Craft is unable to transfer your license to this domain at this time.', 'Craft requires the PDO extension to operate.' => 'Craft requires the PDO extension to operate.', 'Craft requires the PDO_MYSQL driver to operate.' => 'Craft requires the PDO_MYSQL driver to operate.', + 'Craft Support' => 'Craft Support', 'Craft was unable to install this update :(' => 'Craft was unable to install this update :(', 'Craft {edition} is required to perform this action.' => 'Craft {edition} is required to perform this action.', 'Craft’s Terms and Conditions have changed.' => 'Craft’s Terms and Conditions have changed.', @@ -484,9 +487,10 @@ 'General Settings' => 'General Settings', 'General settings saved.' => 'General settings saved.', 'Generating pending image transforms' => 'Generating pending image transforms', - 'Get Help' => 'Get Help', + 'Get help' => 'Get help', 'GET Info' => 'GET Info', 'GET param “{name}” doesn’t exist.' => 'GET param “{name}” doesn’t exist.', + 'Give feedback' => 'Give feedback', 'Give your tab a name.' => 'Give your tab a name.', 'Global' => 'Global', 'Global Set Name' => 'Global Set Name', @@ -524,8 +528,10 @@ 'How you’ll refer to this global set in the templates.' => 'How you’ll refer to this global set in the templates.', 'How you’ll refer to this section in the templates.' => 'How you’ll refer to this section in the templates.', 'How you’ll refer to this tag group in the templates.' => 'How you’ll refer to this tag group in the templates.', + 'How-to’s and other questions' => 'How-to’s and other questions', 'HTML' => 'HTML', 'HTML Email Template' => 'HTML Email Template', + 'HTML Purifier Config' => 'HTML Purifier Config', 'http://example.com/path/to/folder/' => 'http://example.com/path/to/folder/', 'HttpRequestService::close() cannot be called after content has been output.' => 'HttpRequestService::close() cannot be called after content has been output.', 'I agree.' => 'I agree.', @@ -756,6 +762,7 @@ 'Oops!' => 'Oops!', 'Option Label' => 'Option Label', 'Options' => 'Options', + 'or send to Craft Support' => 'or send to Craft Support', 'Origin' => 'Origin', 'Our site is temporarily unavailable. Please try again later.' => 'Our site is temporarily unavailable. Please try again later.', 'Page Not Found' => 'Page Not Found', @@ -793,6 +800,7 @@ 'Position Select' => 'Position Select', 'Post a new {section} entry' => 'Post a new {section} entry', 'Post Date' => 'Post Date', + 'Post on GitHub' => 'Post on GitHub', 'POST param “{name}” doesn’t exist.' => 'POST param “{name}” doesn’t exist.', 'POST param “{name}” was invalid.' => 'POST param “{name}” was invalid.', 'Powered by Craft CMS' => 'Powered by Craft CMS', @@ -820,6 +828,7 @@ 'Recent Entries' => 'Recent Entries', 'Recent Versions' => 'Recent Versions', 'Recent {section} Entries' => 'Recent {section} Entries', + 'Redactor Config' => 'Redactor Config', 'Refresh' => 'Refresh', 'Region' => 'Region', 'Register a new user' => 'Register a new user', @@ -893,7 +902,6 @@ 'Select transform' => 'Select transform', 'Selection Label' => 'Selection Label', 'Send' => 'Send', - 'Send a message to Craft CMS Support' => 'Send a message to Craft CMS Support', 'Send activation email' => 'Send activation email', 'Send an activation email now?' => 'Send an activation email now?', 'Send for help' => 'Send for help', @@ -926,6 +934,8 @@ 'Show time' => 'Show time', 'Show/hide children' => 'Show/hide children', 'Sign out' => 'Sign out', + 'Similar issues on GitHub' => 'Similar issues on GitHub', + 'Similar questions on Stack Exchange' => 'Similar questions on Stack Exchange', 'Single' => 'Single', 'Single-line Text' => 'Single-line Text', 'Singles' => 'Singles', @@ -975,7 +985,6 @@ 'Tag Groups' => 'Tag Groups', 'Tags' => 'Tags', 'Target Locale' => 'Target Locale', - 'Tell us about your problems.' => 'Tell us about your problems.', 'Temp files' => 'Temp files', 'Template caches' => 'Template caches', 'Template Error' => 'Template Error', @@ -1260,11 +1269,10 @@ 'Years' => 'Years', 'Yesterday' => 'Yesterday', 'yii' => 'yii', - 'You can save custom Redactor configs as .json files in craft/config/redactor/.' => 'You can save custom Redactor configs as .json files in craft/config/redactor/.', + 'You can save custom {name} configs as {ext} files in {path}.' => 'You can save custom {name} configs as {ext} files in {path}.', 'You cannot access the CP while the system is offline with that account.' => 'You cannot access the CP while the system is offline with that account.', 'You cannot access the CP with that account.' => 'You cannot access the CP with that account.', 'You cannot access the site while the system is offline with that account.' => 'You cannot access the site while the system is offline with that account.', - 'You don’t have any Redactor configs yet.' => 'You don’t have any Redactor configs yet.', 'You don’t have any widgets yet.' => 'You don’t have any widgets yet.', 'You don’t have the proper credentials to access this page.' => 'You don’t have the proper credentials to access this page.', 'You don’t have the required permissions for this operation.' => 'You don’t have the required permissions for this operation.', diff --git a/src/translations/es.php b/src/translations/es.php index 0525ce3ce31..77f8cedb725 100644 --- a/src/translations/es.php +++ b/src/translations/es.php @@ -102,6 +102,7 @@ 'Are you sure you want to uninstall {plugin}? You will lose all of its associated data.' => '¿Estás seguro que deseas desinstalar (el plugin)? Se perderán todos los datos asociados al plugin.', 'Area' => 'Área', 'Ascending' => 'Ascendente', + 'Ask on Stack Exchange' => 'Preguntar en Stack Exchange', 'Asset caches' => 'Cachés de recursos', 'Asset indexing data' => 'Inscripción registral de los datos', 'Asset Settings' => 'Configuración de los recursos', @@ -135,7 +136,10 @@ 'Bottom-Center' => 'Bottom-Center', 'Bottom-Left' => 'Bottom-Left', 'Bottom-Right' => 'Bottom-Right', + 'Briefly describe your issue or idea.' => 'Describe brevemente tu problema o idea.', + 'Briefly describe your question.' => 'Describa brevemente su pregunta.', 'Bucket' => 'Valde', + 'Bug reports and feature requests' => 'Informar de fallos y solicitar características', 'Business name' => 'Nombre de la empresa', 'Business tax ID' => 'Número de identificación fiscal de la empresa', 'Buy now' => 'Comprar ahora', @@ -204,7 +208,6 @@ 'Column Type' => 'Tipo de columna', 'Compiled templates' => 'Plantillas compiladas', 'Compressed' => 'Comprimido', - 'Config' => 'Config', 'Configuration' => 'Configuración', 'Congrats! You’re up-to-date.' => '¡Felicidades! Estás actualizado.', 'Connection information not found!' => '¡Información de conexión no encontrada!', @@ -263,7 +266,6 @@ 'Couldn’t save user.' => 'No se puede guardar el usuario.', 'Couldn’t save widget.' => 'No se puede guardar el widget.', 'Couldn’t send activation email. Check your email settings.' => 'No se ha podido enviar el correo electrónico de activación. Comprueba la configuración de tu correo electrónico.', - 'Couldn’t send your message. Please email it to {email} instead.' => 'No se puede enviar tu mensaje. Por favor envíalo por email a {email}.', 'Couldn’t suspend user.' => 'No se ha podido bloquear al usuario.', 'Couldn’t uninstall plugin.' => 'No se puede desinstalar el plugin.', 'Couldn’t unsuspended user.' => 'No se ha podido desbloquear al usuario.', @@ -285,6 +287,7 @@ 'Craft is unable to transfer your license to this domain at this time.' => 'En este momento Craft no puede transferir tu licencia a este dominio.', 'Craft requires the PDO extension to operate.' => 'Craft necesita la extensión PDO de PHP para funcionar.', 'Craft requires the PDO_MYSQL driver to operate.' => 'Craft necesita el driver PDO_MYSQL de PHP para funcionar.', + 'Craft Support' => 'Soporte de Craft', 'Craft was unable to install this update :(' => 'Craft no ha podido instalar esta actualización :(', 'Craft {edition} is required to perform this action.' => 'Craft {edition} esta obligado a realizar esta acción.', 'Craft’s Terms and Conditions have changed.' => 'Los términos y condiciones de Craft han cambiado.', @@ -485,9 +488,10 @@ 'General Settings' => 'Configuración general', 'General settings saved.' => 'Configuración general guardada.', 'Generating pending image transforms' => 'Generando las transformaciones de imagen pendientes', - 'Get Help' => 'Obtener ayuda', + 'Get help' => 'Recibir ayuda', 'GET Info' => 'GET Info', 'GET param “{name}” doesn’t exist.' => 'El parámetro GET “{name}” no existe.', + 'Give feedback' => 'Dejar comentarios', 'Give your tab a name.' => 'Asigne un nombre a su lengüeta', 'Global' => 'Global', 'Global Set Name' => 'Nombre del conjuto de globales', @@ -525,8 +529,10 @@ 'How you’ll refer to this global set in the templates.' => 'Como harás referencia a este conjunto de globales en las plantillas.', 'How you’ll refer to this section in the templates.' => 'Como harás referencia a esta sección en las plantillas.', 'How you’ll refer to this tag group in the templates.' => 'De qué forma te referirás a este grupo de etiquetas en las plantillas.', + 'How-to’s and other questions' => 'Instrucciones y otras preguntas', 'HTML' => 'HTML', 'HTML Email Template' => 'Plantilla HTML de email', + 'HTML Purifier Config' => 'Configuración HTML Purifier', 'http://example.com/path/to/folder/' => 'http://example.com/path/to/folder/', 'HttpRequestService::close() cannot be called after content has been output.' => 'No se puede llamar a HttpRequestService::close() después de que se haya devuelto el contenido.', 'I agree.' => 'Estoy de acuerdo.', @@ -757,6 +763,7 @@ 'Oops!' => '¡Vaya!', 'Option Label' => 'Etiqueta de opción', 'Options' => 'Opciones', + 'or send to Craft Support' => 'o enviar al Soporte de Craft', 'Origin' => 'Origen', 'Our site is temporarily unavailable. Please try again later.' => 'Nuestro sitio web no está disponible temporalmente. Por favor, vuelve a intentarlo más tarde.', 'Page Not Found' => 'Página no encontrada', @@ -794,6 +801,7 @@ 'Position Select' => 'Seleccionar Posición', 'Post a new {section} entry' => 'Publicar una nueva entrada en {section}', 'Post Date' => 'Fecha de publicación', + 'Post on GitHub' => 'Publicar en GitHub', 'POST param “{name}” doesn’t exist.' => 'El parámetro POST “{name}” no existe.', 'POST param “{name}” was invalid.' => 'POST param “{name}” no era válido.', 'Powered by Craft CMS' => 'Desarrollado por Craft CMS', @@ -821,6 +829,7 @@ 'Recent Entries' => 'Entradas recientes', 'Recent Versions' => 'Versiones recinetes', 'Recent {section} Entries' => 'Entradas recientes en {section}', + 'Redactor Config' => 'Configuración Redactor', 'Refresh' => 'Refrescar', 'Region' => 'Región', 'Register a new user' => 'Registrar un nuevo usuario', @@ -894,7 +903,6 @@ 'Select transform' => 'Seleccionar transformación', 'Selection Label' => 'Etiqueta de selección', 'Send' => 'Enviar', - 'Send a message to Craft CMS Support' => 'Enviar un mensaje para el soporte de Craft CMS', 'Send activation email' => 'Enviar correo electrónico de activación', 'Send an activation email now?' => '¿Quieres enviar un correo electrónico de activación ahora?', 'Send for help' => 'Enviar para ayuda', @@ -927,6 +935,8 @@ 'Show time' => 'Mostrar hora', 'Show/hide children' => 'Mostrar/ocultar hijo', 'Sign out' => 'Cerrar sesión', + 'Similar issues on GitHub' => 'Problemas similares en GitHub', + 'Similar questions on Stack Exchange' => 'Preguntas similares en Stack Exchange', 'Single' => 'Sencillo', 'Single-line Text' => 'Texto de una línea', 'Singles' => 'Únicos', @@ -976,7 +986,6 @@ 'Tag Groups' => 'Grupos de etiquetas', 'Tags' => 'Etiquetas', 'Target Locale' => 'Escenario objetivo', - 'Tell us about your problems.' => 'Cuéntanos cuál es tu problema.', 'Temp files' => 'Archivos temporales', 'Template caches' => 'Cachés de plantilla', 'Template Error' => 'Error en la plantilla', @@ -1260,11 +1269,10 @@ 'Years' => 'Años', 'Yesterday' => 'Ayer', 'yii' => 'yii', - 'You can save custom Redactor configs as .json files in craft/config/redactor/.' => 'Puedes grabar configuraciones personalizadas de redactor como archivos .json en craft/config/redactor/.', + 'You can save custom {name} configs as {ext} files in {path}.' => 'Puedes guardar configuraciones {name} personalizadas como archivos {ext} en {path}.', 'You cannot access the CP while the system is offline with that account.' => 'No puedes acceder al panel de control cuando el sistema está parado con esa cuenta.', 'You cannot access the CP with that account.' => 'No puedes acceder al panel de control con esa cuenta.', 'You cannot access the site while the system is offline with that account.' => 'No puedes acceder al sitio con esa cuenta mientras el sistema esté sin conexión.', - 'You don’t have any Redactor configs yet.' => 'Aún no tienes ninguna configuración de redactor.', 'You don’t have any widgets yet.' => 'Todavia no tienes ningún widget.', 'You don’t have the proper credentials to access this page.' => 'No tienes los credenciales necesarios para acceder a esta página.', 'You don’t have the required permissions for this operation.' => 'No tienes los permisos necesarios para esta operación.', diff --git a/src/translations/fr.php b/src/translations/fr.php index 0fbc7988990..a472b880445 100644 --- a/src/translations/fr.php +++ b/src/translations/fr.php @@ -101,6 +101,7 @@ 'Are you sure you want to uninstall {plugin}? You will lose all of its associated data.' => 'Êtes-vous sûr de vouloir désinstaller {plugin} ? Vous perdrez toutes les données qui lui sont liées.', 'Area' => 'Région', 'Ascending' => 'Croissant', + 'Ask on Stack Exchange' => 'Demander sur Stack Exchange', 'Asset caches' => 'Mémoires caches des Ressources', 'Asset indexing data' => 'Données d’indexation de ressources', 'Asset Settings' => 'Paramètres des ressources', @@ -134,7 +135,10 @@ 'Bottom-Center' => 'En bas, centré', 'Bottom-Left' => 'En bas, à gauche', 'Bottom-Right' => 'En bas, à droite', + 'Briefly describe your issue or idea.' => 'Décrivez brièvement votre problème ou votre idée.', + 'Briefly describe your question.' => 'Décrivez brièvement votre question.', 'Bucket' => 'Compartiment', + 'Bug reports and feature requests' => 'Rapports de bugs et demandes de fonctionnalités', 'Business name' => 'Raison sociale', 'Business tax ID' => 'Identification fiscale de l\'entreprise', 'Buy now' => 'Acheter maintenant', @@ -203,7 +207,6 @@ 'Column Type' => 'Type de colonne', 'Compiled templates' => 'Templates compilés', 'Compressed' => 'Compressé', - 'Config' => 'Configuration', 'Configuration' => 'Configuration', 'Congrats! You’re up-to-date.' => 'Félicitations ! Craft est à jour.', 'Connection information not found!' => 'Les informations de connexion sont introuvables !', @@ -261,8 +264,7 @@ 'Couldn’t save user settings.' => 'Impossible d’enregistrer les paramètres utilisateurs.', 'Couldn’t save user.' => 'Impossible d’enregistrer l’utilisateur.', 'Couldn’t save widget.' => 'Impossible d’enregistrer le widget.', - 'Couldn’t send activation email. Check your email settings.' => 'Impossible d\'envoyer l\'e-mail d\'activation, vérifiez vos paramètres e-mail.', - 'Couldn’t send your message. Please email it to {email} instead.' => 'Le message n’a pu être envoyé. Veuillez plutôt l’envoyer à {email}.', + 'Couldn’t send activation email. Check your email settings.' => 'Impossible d\'envoyer l\'email d\'activation, vérifiez vos paramètres email.', 'Couldn’t suspend user.' => 'Impossible de suspendre l\'utilisateur.', 'Couldn’t uninstall plugin.' => 'Le plugin n’a pu être désinstallé.', 'Couldn’t unsuspended user.' => 'Impossible de réactiver l\'utilisateur.', @@ -284,6 +286,7 @@ 'Craft is unable to transfer your license to this domain at this time.' => 'Craft ne peut actuellement transférer votre licence à ce domaine.', 'Craft requires the PDO extension to operate.' => 'Craft requiert l’extension PDO pour fonctionner.', 'Craft requires the PDO_MYSQL driver to operate.' => 'Craft requiert le driver PDO_MYSQL pour fonctionner.', + 'Craft Support' => 'Assistance Craft', 'Craft was unable to install this update :(' => 'Craft n’a pas pu installer cette mise à jour.', 'Craft {edition} is required to perform this action.' => 'Craft {edition} est requis pour effectuer cette action.', 'Craft’s Terms and Conditions have changed.' => 'Les conditions générales de Craft ont été modifiées.', @@ -484,9 +487,10 @@ 'General Settings' => 'Paramètres généraux', 'General settings saved.' => 'Paramètres généraux enregistrés.', 'Generating pending image transforms' => 'Génération de transformations d’image en attente', - 'Get Help' => 'Obtenir de l’aide', + 'Get help' => 'Obtenir de l\'aide', 'GET Info' => 'Infos GET', 'GET param “{name}” doesn’t exist.' => 'Le paramètre GET “{name}” n’existe pas.', + 'Give feedback' => 'Donner un avis', 'Give your tab a name.' => 'Nommez votre onglet.', 'Global' => 'Globale', 'Global Set Name' => 'Nom du jeu de globales', @@ -524,8 +528,10 @@ 'How you’ll refer to this global set in the templates.' => 'La façon dont vous allez faire référence à ce jeu de globales dans les templates.', 'How you’ll refer to this section in the templates.' => 'La façon dont vous allez faire référence à cette section dans les templates.', 'How you’ll refer to this tag group in the templates.' => 'La façon dont vous allez faire référence à ce groupe d’étiquettes dans les templates.', + 'How-to’s and other questions' => 'Tutoriels et autres questions', 'HTML' => 'HTML', 'HTML Email Template' => 'Template d’email HTML', + 'HTML Purifier Config' => 'Configuration HTML Purifier', 'http://example.com/path/to/folder/' => 'http://exemple.com/chemin/vers/dossier/', 'HttpRequestService::close() cannot be called after content has been output.' => 'La commande HttpRequestService::close() ne peut être appelée après l’affichage du contenu.', 'I agree.' => 'J’accepte.', @@ -752,10 +758,11 @@ 'one' => 'un', 'One update available!' => 'Une mise à jour est disponible !', 'One “Client” account' => 'Un compte «Client»', - 'One-Time Price' => 'Prix unique', + 'One-Time Price' => 'Payez une seule fois :', 'Oops!' => 'Oups !', 'Option Label' => 'Étiquette d’option', 'Options' => 'Options', + 'or send to Craft Support' => 'ou envoyer à l\'assistance Craft', 'Origin' => 'Origine', 'Our site is temporarily unavailable. Please try again later.' => 'Notre site est temporairement indisponible. Veuillez réessayer ultérieurement.', 'Page Not Found' => 'Page non trouvée', @@ -793,8 +800,9 @@ 'Position Select' => 'Positionneur de contenu', 'Post a new {section} entry' => 'Nouvelle entrée dans {section}', 'Post Date' => 'Date de publication', + 'Post on GitHub' => 'Publier sur GitHub', 'POST param “{name}” doesn’t exist.' => 'Le paramètre POST “{name}” n’existe pas.', - 'POST param “{name}” was invalid.' => 'Le paramètre POST “{name}}” était invalide.', + 'POST param “{name}” was invalid.' => 'Le paramètre POST “{name}” était invalide.', 'Powered by Craft CMS' => 'Propulsé par Craft CMS', 'PowerPoint' => 'PowerPoint', 'Preferred Locale' => 'Langue préférée', @@ -820,6 +828,7 @@ 'Recent Entries' => 'Entrées récentes', 'Recent Versions' => 'Versions récentes', 'Recent {section} Entries' => 'Entrées récentes pour {section}', + 'Redactor Config' => 'Configuration rédacteur', 'Refresh' => 'Rafraîchir', 'Region' => 'Région', 'Register a new user' => 'Inscrire un nouvel utilisateur', @@ -845,7 +854,7 @@ 'Replace the existing folder' => 'Remplacer le dossier existant', 'Replacing “{find}” with “{replace}”' => 'Remplacement de “{find}” par “{replace}”', 'Require a password reset on next login' => 'Exiger une réinitialisation du mot de passe à la prochaine connexion', - 'Requirement Report' => 'Rapport des exigences', + 'Requirement Report' => 'Rapport des pré-requis', 'Resaving all elements' => 'Ré-enregistrement de tous les éléments', 'Resaving all localizable elements' => 'Ré-enregistrement de tous les éléments localisables', 'Resaving {section} entries' => 'Ré-enregistrement des entrées de {section}', @@ -893,7 +902,6 @@ 'Select transform' => 'Sélectionner une transformation', 'Selection Label' => 'Étiquette de sélection', 'Send' => 'Envoyer', - 'Send a message to Craft CMS Support' => 'Envoyer un message au support Craft CMS', 'Send activation email' => 'Envoyer l’email d’activation', 'Send an activation email now?' => 'Envoyer un email d’activation maintenant ?', 'Send for help' => 'Envoyer pour obtenir de l’aide', @@ -926,6 +934,8 @@ 'Show time' => 'Afficher heure', 'Show/hide children' => 'Afficher/masquer les enfants', 'Sign out' => 'Déconnexion', + 'Similar issues on GitHub' => 'Problèmes similaires sur GitHub', + 'Similar questions on Stack Exchange' => 'Questions similaires sur Stack Exchange', 'Single' => 'Single', 'Single-line Text' => 'Texte d’une ligne', 'Singles' => 'Singles', @@ -975,7 +985,6 @@ 'Tag Groups' => 'Groupes d’étiquettes', 'Tags' => 'Étiquettes', 'Target Locale' => 'Langue cible', - 'Tell us about your problems.' => 'Quel est votre problème ?', 'Temp files' => 'Fichiers temporaires', 'Template caches' => 'Caches des templates', 'Template Error' => 'Erreur de template', @@ -1260,18 +1269,17 @@ 'Years' => 'Années', 'Yesterday' => 'Hier', 'yii' => 'yii', - 'You can save custom Redactor configs as .json files in craft/config/redactor/.' => 'Vous pouvez enregistrer les configurations personnalisées de Redactor dans des fichiers .json accessibles dans craft/config/redactor/', + 'You can save custom {name} configs as {ext} files in {path}.' => 'Vous pouvez sauvegarder vos configurations personnalisées {name} en tant que fichiers {ext} dans {path}.', 'You cannot access the CP while the system is offline with that account.' => 'Avec ce compte utilisateur, vous ne pouvez pas accéder au Panneau de Contrôle quand le système est hors ligne.', 'You cannot access the CP with that account.' => 'Vous ne pouvez pas accéder au Panneau de Contrôle avec ce compte utilisateur.', 'You cannot access the site while the system is offline with that account.' => 'Vous ne pouvez pas accéder au site lorsque le système est hors ligne avec ce compte.', - 'You don’t have any Redactor configs yet.' => 'Vous n\'avez pas encore de configuration pour Redactor.', 'You don’t have any widgets yet.' => 'Vous n’avez pas encore de widget.', 'You don’t have the proper credentials to access this page.' => 'Vous ne disposez pas des droits appropriés pour accéder à cette page.', 'You don’t have the required permissions for this operation.' => 'Vous ne possédez pas les droits d’accès requis pour effectuer cette opération.', 'You must set at least one of the dimensions.' => 'Vous devez définir au moins une des dimensions.', 'You must specify a host name in your email settings.' => 'Vous devez spécifier un nom d’hôte dans vos paramètres de messagerie.', 'You must specify a port in your email settings.' => 'Vous devez définir un port dans vos paramètres de messagerie.', - 'You need to be on at least Craft CMS {url} before you can manually update to Craft CMS {targetVersion}.' => 'Vous devez être sur Craft CMS {url} au minimum pour pouvoir effectuer manuellement la mise à jour vers Craft CMS {targetVersion}.', + 'You need to be on at least Craft CMS {url} before you can manually update to Craft CMS {targetVersion}.' => 'Vous devez être au minimum sur Craft CMS {url} pour pouvoir effectuer manuellement la mise à jour vers Craft CMS {targetVersion}.', 'You need to reset your password. Check your email for instructions.' => 'Vous devez réinitialiser votre mot de passe. Vérifiez votre messagerie pour les instructions.', 'Your account doesn’t have permission to access the Control Panel when the system is offline.' => 'Votre compte n’est pas autorisé à accéder au panneau de contrôle quand le système est hors ligne.', 'Your account doesn’t have permission to access the site when the system is offline.' => 'Votre compte n’est pas autorisé à accéder au site quand le système est hors ligne.', diff --git a/src/translations/fr_ca.php b/src/translations/fr_ca.php index 350720fe57e..3cf576b0f71 100644 --- a/src/translations/fr_ca.php +++ b/src/translations/fr_ca.php @@ -66,7 +66,7 @@ 'Allow line breaks' => 'Autoriser des sauts de ligne', 'Allow public registration?' => 'Autoriser l’enregistrement public ?', 'Amazon S3 support' => 'Support Amazon S3', - 'An error occurred when rendering a template.' => 'Une erreur s\'est produite lors du rendu d\'un modèle.', + 'An error occurred when rendering a template.' => 'Une erreur s\'est produite lors du rendu d\'un template.', 'An error occurred while processing your card.' => 'Une erreur s’est produite lors du traitement de votre carte.', 'An error occurred while processing your request.' => 'Une erreur s’est produite lors du traitement de votre requête.', 'An error occurred while saving this Matrix block type.' => 'Une erreur s’est produite lors de l’enregistrement de ce type de bloc de la matrice.', @@ -101,6 +101,7 @@ 'Are you sure you want to uninstall {plugin}? You will lose all of its associated data.' => 'Etes-vous sûr de bien vouloir désinstaller {plugin}? Vous allez perdre toutes les données qui y sont associées.', 'Area' => 'Zone', 'Ascending' => 'Ascendant', + 'Ask on Stack Exchange' => 'Demander sur Stack Exchange', 'Asset caches' => 'Caches des ressources', 'Asset indexing data' => 'Données d’indexation des ressources', 'Asset Settings' => 'Paramètres des ressources', @@ -134,7 +135,10 @@ 'Bottom-Center' => 'En bas, centré', 'Bottom-Left' => 'En bas, à gauche', 'Bottom-Right' => 'En bas, à droite', + 'Briefly describe your issue or idea.' => 'Décrivez brièvement votre problème ou votre idée.', + 'Briefly describe your question.' => 'Décrivez brièvement votre question.', 'Bucket' => 'Compartiment', + 'Bug reports and feature requests' => 'Rapports de bogues et demandes de fonctionnalités', 'Business name' => 'Raison sociale', 'Business tax ID' => 'Identifiant fiscal de l\'entreprise', 'Buy now' => 'Acheter maintenant', @@ -203,7 +207,6 @@ 'Column Type' => 'Type de colonne', 'Compiled templates' => 'Templates compilés', 'Compressed' => 'Compressé', - 'Config' => 'Configuration', 'Configuration' => 'Configuration', 'Congrats! You’re up-to-date.' => 'Félicitations! Craft est à jour.', 'Connection information not found!' => 'Les informations de connexion sont introuvables!', @@ -262,7 +265,6 @@ 'Couldn’t save user.' => 'Impossible d’enregistrer l’utilisateur.', 'Couldn’t save widget.' => 'Impossible d’enregistrer le widget.', 'Couldn’t send activation email. Check your email settings.' => 'Impossible d\'envoyer le courriel d\'activation. Vérifiez vos paramètres de messagerie.', - 'Couldn’t send your message. Please email it to {email} instead.' => 'Le message n’a pu être envoyé. Veuillez plutôt l’envoyer à {email}.', 'Couldn’t suspend user.' => 'Impossible de suspendre l\'utilisateur.', 'Couldn’t uninstall plugin.' => 'Le plugin n’a pu être désinstallé.', 'Couldn’t unsuspended user.' => 'Impossible de réactiver l\'utilisateur.', @@ -284,6 +286,7 @@ 'Craft is unable to transfer your license to this domain at this time.' => 'Craft ne peut actuellement transférer votre licence à ce domaine.', 'Craft requires the PDO extension to operate.' => 'Craft requiert l’extension PDO pour fonctionner.', 'Craft requires the PDO_MYSQL driver to operate.' => 'Craft requiert le driver PDO_MYSQL pour fonctionner.', + 'Craft Support' => 'Assistance Craft', 'Craft was unable to install this update :(' => 'Craft n’a pas pu installer cette mise à jour :(', 'Craft {edition} is required to perform this action.' => 'Craft {edition} est nécessaire pour effectuer cette action.', 'Craft’s Terms and Conditions have changed.' => 'Les conditions générales de Craft ont été modifiées.', @@ -484,9 +487,10 @@ 'General Settings' => 'Réglages généraux', 'General settings saved.' => 'Réglages généraux enregistrés.', 'Generating pending image transforms' => 'Génération de transformations d’images en cours.', - 'Get Help' => 'Obtenir de l’aide', + 'Get help' => 'Obtenir de l\'aide', 'GET Info' => 'Infos GET', 'GET param “{name}” doesn’t exist.' => 'Le paramètre GET “{name}” n’existe pas.', + 'Give feedback' => 'Donner son opinion', 'Give your tab a name.' => 'Nommez votre onglet.', 'Global' => 'Globale', 'Global Set Name' => 'Nom du jeu de globales', @@ -524,8 +528,10 @@ 'How you’ll refer to this global set in the templates.' => 'De quelle manière allez-vous faire référence à ce jeu de globales dans les templates.', 'How you’ll refer to this section in the templates.' => 'La référence de cette section au sein des templates.', 'How you’ll refer to this tag group in the templates.' => 'Comment vous désignerez ce groupe de balises dans les templates.', + 'How-to’s and other questions' => 'Guide pratique et autres questions', 'HTML' => 'HTML', 'HTML Email Template' => 'Template de courriel HTML', + 'HTML Purifier Config' => 'Configuration d\'HTML Purifier', 'http://example.com/path/to/folder/' => 'http://exemple.com/chemin d’accès/du/dossier/', 'HttpRequestService::close() cannot be called after content has been output.' => 'HttpRequestService::close() ne peut pas être appelé suite à la sortie du contenu.', 'I agree.' => 'J’accepte.', @@ -756,6 +762,7 @@ 'Oops!' => 'Oups!', 'Option Label' => 'Étiquette d’option', 'Options' => 'Options', + 'or send to Craft Support' => 'ou envoi à l\'assistance Craft', 'Origin' => 'Origine', 'Our site is temporarily unavailable. Please try again later.' => 'Notre site est temporairement indisponible. Veuillez réessayer plus tard.', 'Page Not Found' => 'Page non trouvée', @@ -793,6 +800,7 @@ 'Position Select' => 'Sélectionner la position', 'Post a new {section} entry' => 'Nouvelle publication dans {section}', 'Post Date' => 'Date de la publication', + 'Post on GitHub' => 'Publier sur GitHub', 'POST param “{name}” doesn’t exist.' => 'Les paramètres POST “{name}” n’existent pas.', 'POST param “{name}” was invalid.' => 'Le paramètre de PUBLICATION « {name} » n\'était pas valide.', 'Powered by Craft CMS' => 'Généré par Craft CMS', @@ -820,6 +828,7 @@ 'Recent Entries' => 'Entrées récentes', 'Recent Versions' => 'Versions récentes', 'Recent {section} Entries' => 'Entrées récentes pour {section}', + 'Redactor Config' => 'Configuration de Redactor', 'Refresh' => 'Rafraîchir', 'Region' => 'Région', 'Register a new user' => 'Enregistrer un nouvel utilisateur', @@ -893,7 +902,6 @@ 'Select transform' => 'Sélectionner la transformation', 'Selection Label' => 'Étiquette de sélection', 'Send' => 'Envoyer', - 'Send a message to Craft CMS Support' => 'Envoyer un message à l\'équipe de support de Craft CMS', 'Send activation email' => 'Envoyer un courriel d’activation', 'Send an activation email now?' => 'Envoyer un courriel d’activation maintenant?', 'Send for help' => 'Chercher de l’aide', @@ -926,6 +934,8 @@ 'Show time' => 'Montrer l’heure', 'Show/hide children' => 'Montrer/masquer les enfants', 'Sign out' => 'Déconnexion', + 'Similar issues on GitHub' => 'Problèmes similaires sur GitHub', + 'Similar questions on Stack Exchange' => 'Questions similaires sur Stack Exchange', 'Single' => 'Simple', 'Single-line Text' => 'Texte d’une ligne', 'Singles' => 'Singles', @@ -975,7 +985,6 @@ 'Tag Groups' => 'Groupes d’étiquettes', 'Tags' => 'Étiquettes', 'Target Locale' => 'Langue cible', - 'Tell us about your problems.' => 'Quel est votre problème?', 'Temp files' => 'Fichiers temporaires', 'Template caches' => 'Caches des templates', 'Template Error' => 'Erreur de template', @@ -1261,11 +1270,10 @@ 'Years' => 'Années', 'Yesterday' => 'Hier', 'yii' => 'yii', - 'You can save custom Redactor configs as .json files in craft/config/redactor/.' => 'Vous pouvez sauvegarder les configurations personnalisées de Redactor dans des fichiers .json dans craft/config/redactor/', + 'You can save custom {name} configs as {ext} files in {path}.' => 'Vous pouvez enregistrer des configurations {name} personnalisées en tant que fichiers {ext} dans {path}.', 'You cannot access the CP while the system is offline with that account.' => 'Avec ce compte, vous ne pouvez pas accéder au Panneau de Contrôle quand le système est hors ligne.', 'You cannot access the CP with that account.' => 'Vous ne pouvez pas accéder au Panneau de Contrôle avec ce compte.', 'You cannot access the site while the system is offline with that account.' => 'Vous ne pouvez pas accéder au site avec ce compte lorsque le système est hors ligne.', - 'You don’t have any Redactor configs yet.' => 'Vous n\'avez pas de encore de configs Redactor .', 'You don’t have any widgets yet.' => 'Vous n’avez pas encore de widgets.', 'You don’t have the proper credentials to access this page.' => 'Vous ne disposez pas des droits appropriés pour accéder à cette page.', 'You don’t have the required permissions for this operation.' => 'Vous n’avez pas les autorisations requises pour cette opération.', diff --git a/src/translations/he.php b/src/translations/he.php index 2fd14de449d..7ce462d494c 100644 --- a/src/translations/he.php +++ b/src/translations/he.php @@ -101,6 +101,7 @@ 'Are you sure you want to uninstall {plugin}? You will lose all of its associated data.' => 'בטוח שאת/ה רוצה להסיר את {plugin}? כל הנתונים הקשורים אליו יאבדו.', 'Area' => 'שטח', 'Ascending' => 'עולה', + 'Ask on Stack Exchange' => 'שאל ב- Stack Exchange', 'Asset caches' => 'מטמונות נכסים', 'Asset indexing data' => 'נתוני אינדוקס נכס', 'Asset Settings' => 'הגדרות נכסים', @@ -134,7 +135,10 @@ 'Bottom-Center' => 'למטה - מרכז', 'Bottom-Left' => 'למטה - שמאל', 'Bottom-Right' => 'למטה - ימין', + 'Briefly describe your issue or idea.' => 'תאר בקצרה את הסוגיה או הרעיון שלך.', + 'Briefly describe your question.' => 'תאר בקצרה את שאלתך.', 'Bucket' => 'דלי', + 'Bug reports and feature requests' => 'דוחות באגים ובקשות פיצ\'רים', 'Business name' => 'שם עסק', 'Business tax ID' => 'מספר זהות מעסיק לצרכי מיסים', 'Buy now' => 'קנו עכשיו', @@ -203,7 +207,6 @@ 'Column Type' => 'סוג עמודה', 'Compiled templates' => 'תבניות מקומפלות', 'Compressed' => 'דחוס', - 'Config' => 'הגדרות', 'Configuration' => 'הגדרות', 'Congrats! You’re up-to-date.' => 'ברכותינו! אתה משתמש בגרסה עדכנית.', 'Connection information not found!' => 'פרטי ההתחברות לא נמצאו!', @@ -262,7 +265,6 @@ 'Couldn’t save user.' => 'לא ניתן לשמור את המשתמש.', 'Couldn’t save widget.' => 'לא ניתן לשמור את הווידג\'ט.', 'Couldn’t send activation email. Check your email settings.' => 'לא ניתן לשלוח הודעת ההפעלה לדוא״ל. בדוק את הגדרות הדוא״ל שלך.', - 'Couldn’t send your message. Please email it to {email} instead.' => 'לא ניתן לשלוח את ההודעה שלך. אתה יכול לשלוח אותה באימייל לכתובת {email}.', 'Couldn’t suspend user.' => 'לא ניתן להשעות את המשתמש/ת.', 'Couldn’t uninstall plugin.' => 'לא ניתן להסיר את התוסף.', 'Couldn’t unsuspended user.' => 'לא ניתן לבטל את השעיית המשתמש/ת.', @@ -284,6 +286,7 @@ 'Craft is unable to transfer your license to this domain at this time.' => 'Craft אינו יכול להעביר את הרישיון שלך לדומיין זה כרגע.', 'Craft requires the PDO extension to operate.' => 'Craft דורשת הרחבת PDO כדי לפעול.', 'Craft requires the PDO_MYSQL driver to operate.' => 'Craft צריך מנהל התקן PDO_MYSQL כדי לפעול.', + 'Craft Support' => 'תמיכת Craft', 'Craft was unable to install this update :(' => 'Craft לא הצליחה להתקין את העדכון :(', 'Craft {edition} is required to perform this action.' => 'דרושה {edition} של Craft לביצוע פעולה זו.', 'Craft’s Terms and Conditions have changed.' => 'תנאי המדיניות של Craft שונו.', @@ -484,9 +487,10 @@ 'General Settings' => 'הגדרות כלליות', 'General settings saved.' => 'ההגדרות הכלליות נשמרו.', 'Generating pending image transforms' => 'יוצר שינויי תמונה תלויים ועומדים', - 'Get Help' => 'קבל עזרה', + 'Get help' => 'השג עזרה', 'GET Info' => 'מידע GET', 'GET param “{name}” doesn’t exist.' => 'הפרמטר GET “{name}” אינו קיים', + 'Give feedback' => 'תן משוב', 'Give your tab a name.' => 'תן שם לכרטיסייה שלך.', 'Global' => 'גלובלי', 'Global Set Name' => 'שם הסט הגלובלי', @@ -524,8 +528,10 @@ 'How you’ll refer to this global set in the templates.' => 'כיצד תפנה לסט הגלובלי בתוך התבניות.', 'How you’ll refer to this section in the templates.' => 'איך תתייחס לסקשן הזה בתבניות.', 'How you’ll refer to this tag group in the templates.' => 'איך תתייחס לקבוצת התגיות בתבניות.', + 'How-to’s and other questions' => 'שאלות מסוג "כיצד ל-" ושאלות אחרות', 'HTML' => 'HTML', 'HTML Email Template' => 'תבנית HTML אימייל', + 'HTML Purifier Config' => 'תצורת HTML Purifier', 'http://example.com/path/to/folder/' => 'http://example.com/path/to/folder/', 'HttpRequestService::close() cannot be called after content has been output.' => 'לא ניתן לקרוא למתודה HttpRequestService::close() אחרי שהתוכן של הדף הודפס.', 'I agree.' => 'אני מסכים.', @@ -756,6 +762,7 @@ 'Oops!' => 'אופס!', 'Option Label' => 'תווית אופציה', 'Options' => 'אפשרויות', + 'or send to Craft Support' => 'או שלח לתמיכת Craft ', 'Origin' => 'מקור', 'Our site is temporarily unavailable. Please try again later.' => 'האתר לא נגיש באופן זמני. אנא נסה שוב מאוחר יותר.', 'Page Not Found' => 'הדף לא נמצא', @@ -793,6 +800,7 @@ 'Position Select' => 'בחר מיקום', 'Post a new {section} entry' => 'הוסף רשומת {section} חדשה', 'Post Date' => 'תאריך פרסום', + 'Post on GitHub' => 'פרסם ב- GitHub', 'POST param “{name}” doesn’t exist.' => 'הפרמטר POST “{name}” אינו קיים.', 'POST param “{name}” was invalid.' => '”{POST param “{name לא היה חוקי.', 'Powered by Craft CMS' => 'מופעל ע"י Craft CMS', @@ -820,6 +828,7 @@ 'Recent Entries' => 'רשומות אחרונות', 'Recent Versions' => 'גרסאות קודמות', 'Recent {section} Entries' => 'ערכי {section} חדשים', + 'Redactor Config' => 'תצורת Redactor', 'Refresh' => 'רענן', 'Region' => 'אזור', 'Register a new user' => 'רשום משתמש חדש', @@ -893,7 +902,6 @@ 'Select transform' => 'בחר שינוי', 'Selection Label' => 'תווית בחירה', 'Send' => 'שלח', - 'Send a message to Craft CMS Support' => 'שלח/י הודעה לתמיכה של Craft CMS', 'Send activation email' => 'שלח דוא"ל הפעלה.', 'Send an activation email now?' => 'האם לשלוח דוא"ל הפעלה עכשיו?', 'Send for help' => 'שלח לעזרה', @@ -926,6 +934,8 @@ 'Show time' => 'הצג זמו', 'Show/hide children' => 'הצג\הסתר ילדים', 'Sign out' => 'התנתק', + 'Similar issues on GitHub' => 'סוגיות דומות ב- GitHub', + 'Similar questions on Stack Exchange' => 'שאלות דומות ב- Stack Exchange', 'Single' => 'עמוד בודד', 'Single-line Text' => 'טקסט עם שורה אחת', 'Singles' => 'דפים בודדים', @@ -975,7 +985,6 @@ 'Tag Groups' => 'קבוצות תגיות', 'Tags' => 'תגיות', 'Target Locale' => 'אזור יעד', - 'Tell us about your problems.' => 'ספר לנו על הבעיות שלך.', 'Temp files' => 'קבצים זמניים', 'Template caches' => 'מטמון תבניות', 'Template Error' => 'שגיאת תבנית', @@ -1260,11 +1269,10 @@ 'Years' => 'שנים', 'Yesterday' => 'אתמול', 'yii' => 'yii', - 'You can save custom Redactor configs as .json files in craft/config/redactor/.' => 'ניתן לשמור קונפיגורציות Redactor אישיות כקובצי .json ב-craft/config/redactor/.', + 'You can save custom {name} configs as {ext} files in {path}.' => 'באפשרותך לשמור הגדרות {name} מותאמות אישית כקבצי {ext} ב- {path}.', 'You cannot access the CP while the system is offline with that account.' => 'אינך יכול לגשת לפאנל הניהול כאשר המערכת מכובה עם חשבון זה.', 'You cannot access the CP with that account.' => 'אינך יכול להיכנס לפאנל הניהול עם החשבון הזה.', 'You cannot access the site while the system is offline with that account.' => 'באמצעות החשבון הזה, אין באפשרותך לגשת לאתר בעת שהמערכת מנותקת מהאינטרנט.', - 'You don’t have any Redactor configs yet.' => 'עדיין אין לכם אף הגדרות עריכה.', 'You don’t have any widgets yet.' => 'עדיין אין לך שום ווידג\'ט.', 'You don’t have the proper credentials to access this page.' => 'אין לך את ההרשאות המתאימות להיכנס לעמוד זה.', 'You don’t have the required permissions for this operation.' => 'אין ברשותך ההיתרים הדרושים לביצוע פעולה זו.', diff --git a/src/translations/hu.php b/src/translations/hu.php index 64fccb49a75..02053ad5704 100644 --- a/src/translations/hu.php +++ b/src/translations/hu.php @@ -99,6 +99,7 @@ 'Are you sure you want to uninstall {plugin}? You will lose all of its associated data.' => 'Biztosan törlöd a {plugin} plugint? Minden kapcsolódó adat el fog veszni.', 'Area' => 'Terület', 'Ascending' => 'Növekvő', + 'Ask on Stack Exchange' => 'Kérdezze a Stack Exchangen', 'Asset caches' => 'Média gyorsítótár', 'Asset indexing data' => 'Média index adatok', 'Asset Settings' => 'Média beállítások', @@ -132,7 +133,10 @@ 'Bottom-Center' => 'Lent közép', 'Bottom-Left' => 'Balra Lent', 'Bottom-Right' => 'Jobb közép', + 'Briefly describe your issue or idea.' => 'Röviden írja le problémáját vagy ötletét', + 'Briefly describe your question.' => 'Röviden írja le kérdését.', 'Bucket' => 'Vödör', + 'Bug reports and feature requests' => 'Hibajelentések és szolgáltatások kérése', 'Business name' => 'Üzlet neve', 'Business tax ID' => 'Üzleti adóazonosító', 'Buy now' => 'Vásárlás', @@ -201,7 +205,6 @@ 'Column Type' => 'Oszlop típus', 'Compiled templates' => 'Szerkesztett sablonok', 'Compressed' => 'Tömörített', - 'Config' => 'Config', 'Configuration' => 'Beállítások', 'Congrats! You’re up-to-date.' => 'Gratulálunk! Naprakész vagy.', 'Connection information not found!' => 'Kapcsolati adatok nem találhatók!', @@ -260,7 +263,6 @@ 'Couldn’t save user.' => 'Felhasználó mentése nem sikerült.', 'Couldn’t save widget.' => 'Nem lehetett a minialkalmazást elmenteni.', 'Couldn’t send activation email. Check your email settings.' => 'Nem lehetett kiküldeni az aktivációs e-mailt. Ellenőrizze az e-mailes beállításait.', - 'Couldn’t send your message. Please email it to {email} instead.' => 'Nem sikerült elküldeni üzenetét. Kérjük, írjon a {email} címre.', 'Couldn’t suspend user.' => 'A felhasználó felfüggesztése nem sikerült.', 'Couldn’t uninstall plugin.' => 'Bővítmény nem törölhető.', 'Couldn’t unsuspended user.' => 'A felhasználó felfüggesztésének megszüntetése lehetetlen.', @@ -282,6 +284,7 @@ 'Craft is unable to transfer your license to this domain at this time.' => 'A Craft nem képes átmozgatni a licenct erre a domainre most.', 'Craft requires the PDO extension to operate.' => 'A Craft-nak PDO kiterjesztésre van szüksége a működéshez.', 'Craft requires the PDO_MYSQL driver to operate.' => 'Craft requires the PDO_MYSQL driver to operate.', + 'Craft Support' => 'Craft Támogatás', 'Craft was unable to install this update :(' => 'A Craft nem tudta telepíteni a frissítést :(', 'Craft {edition} is required to perform this action.' => 'Craft {edition} minimális verziója szükéges ennek a műveletnek a végrehajtásához.', 'Craft’s Terms and Conditions have changed.' => 'A Craft Felhasználási feltételei módosultak.', @@ -482,9 +485,10 @@ 'General Settings' => 'Általános beállítások', 'General settings saved.' => 'Általános beállítások elmentve.', 'Generating pending image transforms' => 'Függőben lévő kép-transzformáció generálása', - 'Get Help' => 'Kérjen Segítséget', + 'Get help' => 'Kérjen segítséget', 'GET Info' => 'GET információ', 'GET param “{name}” doesn’t exist.' => 'GET paraméter “{name}” nem létezik.', + 'Give feedback' => 'Adjon visszajelzést', 'Give your tab a name.' => 'Nevezze el a fület', 'Global' => 'Globális', 'Global Set Name' => 'Általános Modell Név', @@ -522,8 +526,10 @@ 'How you’ll refer to this global set in the templates.' => 'Ahogy erre az általános modellre fog hivatkozni a sablonokban.', 'How you’ll refer to this section in the templates.' => 'Így fogsz hivatkozni erre a mezőre a sablonokban.', 'How you’ll refer to this tag group in the templates.' => 'Ahogy fül csoportra fog hivatkozni a sablonokban.', + 'How-to’s and other questions' => 'Hogyan csináld és egyéb kérdések', 'HTML' => 'HTML', 'HTML Email Template' => 'HTML Email Sablon', + 'HTML Purifier Config' => 'HTML Tisztító Beállítás', 'http://example.com/path/to/folder/' => 'http://példa.com/út/a/mappához/', 'HttpRequestService::close() cannot be called after content has been output.' => 'HttpRequestService::close() nem lehet hívni miután a tartalom kikerült.', 'I agree.' => 'Egyetértek', @@ -754,6 +760,7 @@ 'Oops!' => 'Hoppá!', 'Option Label' => 'Beállítás címke', 'Options' => 'Opciók', + 'or send to Craft Support' => 'vagy küldje a Craft Támogatásnak', 'Origin' => 'Eredet', 'Our site is temporarily unavailable. Please try again later.' => 'Oldalunk jelenleg nem elérhető. Kérjük próbáld meg később.', 'Page Not Found' => 'Az oldal nem található', @@ -791,6 +798,7 @@ 'Position Select' => 'Pozíció kiválasztása', 'Post a new {section} entry' => 'Új {section} bejegyzés küldése', 'Post Date' => 'Bejegyzés ideje', + 'Post on GitHub' => 'Bejegyzés a GitHubon', 'POST param “{name}” doesn’t exist.' => 'POST paraméter “{name}” nem létezik.', 'POST param “{name}” was invalid.' => 'POST param “{name}” érvénytelen.', 'Powered by Craft CMS' => 'A Cratf CMS működtetésével', @@ -818,6 +826,7 @@ 'Recent Entries' => 'Legutóbbi bejegyzések', 'Recent Versions' => 'Újabb verziók', 'Recent {section} Entries' => 'Utóbbi {section} bejegyzések', + 'Redactor Config' => 'Szerkesztő Beállítás', 'Refresh' => 'Újratölt', 'Region' => 'Régió', 'Register a new user' => 'Új felhasználó regisztrációja', @@ -891,7 +900,6 @@ 'Select transform' => 'Átalakítás kiválasztása', 'Selection Label' => 'Kiválasztási címke', 'Send' => 'Küld', - 'Send a message to Craft CMS Support' => 'Üzenet küldése a Craft CMS támogatási szolgálatának', 'Send activation email' => 'Aktiváló levél küldése', 'Send an activation email now?' => 'Aktivációs email küldése most?', 'Send for help' => 'Elküld segítség kérésre', @@ -924,6 +932,8 @@ 'Show time' => 'Mutatja az idöt', 'Show/hide children' => 'Gyermekek megjelenításe/elrejtése', 'Sign out' => 'Kijelentkezés', + 'Similar issues on GitHub' => 'Hasonló problémák a GitHubon', + 'Similar questions on Stack Exchange' => 'Hasonló kérdések a Stack Exchangen', 'Single' => 'Egyedi tartalom', 'Single-line Text' => 'Egysoros szöveg', 'Singles' => 'Egyedi bejegyzések', @@ -973,7 +983,6 @@ 'Tag Groups' => 'Címke csoportok', 'Tags' => 'Címke', 'Target Locale' => 'Cél-fordítás', - 'Tell us about your problems.' => 'Ossza meg velünk problémáit.', 'Temp files' => 'Temp fájlok', 'Template caches' => 'Sablon cache', 'Template Error' => 'Sablon hiba', @@ -1258,11 +1267,10 @@ 'Years' => 'Év', 'Yesterday' => 'Tegnap', 'yii' => 'yii', - 'You can save custom Redactor configs as .json files in craft/config/redactor/.' => 'Elmentheted az egyéni Redactor konfigurációkat .json fájlokként a következő útvonalon: craft/config/redactor/.', + 'You can save custom {name} configs as {ext} files in {path}.' => 'Menthet egyedi {name} beállításokat mint {ext} fájlok {path} helyen.', 'You cannot access the CP while the system is offline with that account.' => 'Ezzel a fiókkal nem érhető el az admin felület amíg a rendszer offline.', 'You cannot access the CP with that account.' => 'Az admin felület nem elérhető ezzel a fiókkal.', 'You cannot access the site while the system is offline with that account.' => 'Nem férhetsz hozzá az oldalhoz, amíg a rendszer offline van ezzel a fiókkal.', - 'You don’t have any Redactor configs yet.' => 'Még nem rendelkezel Redactor konfigurációkkal.', 'You don’t have any widgets yet.' => 'Még nincs widgeted.', 'You don’t have the proper credentials to access this page.' => 'Nincsen megfelelő jogosultságod az oldal eléréséhez.', 'You don’t have the required permissions for this operation.' => 'Nem rendelkezik a művelet végrehajtásához szükséges engedéllyel.', @@ -1314,4 +1322,4 @@ '“{plugin}” can’t be disabled because it isn’t installed yet.' => '“{plugin}” nem jeleníthető meg, mert még nincs telepítve.', '“{plugin}” can’t be enabled because it isn’t installed yet.' => '“{plugin}” nem engedélyezhető mivel még nincs telepítve.', '…Or use one of your field groups as a starting point:' => '...Vagy használja kiinduló pontként valamelyik mezőcsoportját:', -); +); \ No newline at end of file diff --git a/src/translations/it.php b/src/translations/it.php index f24e4e10f33..01af0e71b56 100644 --- a/src/translations/it.php +++ b/src/translations/it.php @@ -101,6 +101,7 @@ 'Are you sure you want to uninstall {plugin}? You will lose all of its associated data.' => 'Sei sicuro di voler disinstallare {plugin]? Perderai tutti i dati ad esso associati.', 'Area' => 'Area', 'Ascending' => 'Ascendente', + 'Ask on Stack Exchange' => 'Informati su Stack Exchange', 'Asset caches' => 'Cache risorse', 'Asset indexing data' => 'Dati indicizzazione risorse', 'Asset Settings' => 'Impostazioni risorse', @@ -134,7 +135,10 @@ 'Bottom-Center' => 'In basso al centro', 'Bottom-Left' => 'In basso a sinistra', 'Bottom-Right' => 'Dietro-Destra', + 'Briefly describe your issue or idea.' => 'Descrivi brevemente il tuo argomento o idea.', + 'Briefly describe your question.' => 'Descrivi brevemente la tua domanda.', 'Bucket' => 'Contenitore', + 'Bug reports and feature requests' => 'Segnalazioni di errori e richieste di funzioni', 'Business name' => 'Nome azienda', 'Business tax ID' => 'Partita IVA aziendale', 'Buy now' => 'Compra adesso.', @@ -203,7 +207,6 @@ 'Column Type' => 'Tipo di colonna', 'Compiled templates' => 'Template compilati', 'Compressed' => 'Compresso', - 'Config' => 'Config', 'Configuration' => 'Configurazione', 'Congrats! You’re up-to-date.' => 'Congratulazioni! Hai la versione più recente.', 'Connection information not found!' => 'Informazioni di collegamento non trovate!', @@ -262,7 +265,6 @@ 'Couldn’t save user.' => 'Non è stato possibile salvare l\'utente.', 'Couldn’t save widget.' => 'Non è stato possibile salvare il widget.', 'Couldn’t send activation email. Check your email settings.' => 'Non siamo riusciti a mandare l\'e-mail di attivazione. Controlla le impostazioni della tua e-mail.', - 'Couldn’t send your message. Please email it to {email} instead.' => 'Impossibile inviare il tuo messaggio. Si prega invece di inviare una mail a {email}.', 'Couldn’t suspend user.' => 'Impossibile sospendere l’utente.', 'Couldn’t uninstall plugin.' => 'Impossibile disinstallare il plugin.', 'Couldn’t unsuspended user.' => 'Impossibile riattivare l’utente.', @@ -284,6 +286,7 @@ 'Craft is unable to transfer your license to this domain at this time.' => 'Craft non riesce a trasferire la licenza a questo dominio al momento', 'Craft requires the PDO extension to operate.' => 'Per far funzionare Craft è necessaria l\'estensione PDO.', 'Craft requires the PDO_MYSQL driver to operate.' => 'Per far funzionare Craft è necessario il driver PDO_MYSQL.', + 'Craft Support' => 'Assistenza di Craft', 'Craft was unable to install this update :(' => 'Craft non ha potuto installare questo aggiornamento :(', 'Craft {edition} is required to perform this action.' => 'Craft {edition} è richiesto per effettuare questa azione.', 'Craft’s Terms and Conditions have changed.' => 'I Termini e Condizioni di Craft sono cambiati.', @@ -484,9 +487,10 @@ 'General Settings' => 'Impostazioni generali', 'General settings saved.' => 'Impostazioni generali salvate.', 'Generating pending image transforms' => 'Generazione delle trasformazioni dell\'immagine in coda', - 'Get Help' => 'Ottieni aiuto', + 'Get help' => 'Ricevi aiuto', 'GET Info' => 'OTTIENI Informazioni', 'GET param “{name}” doesn’t exist.' => 'Il param GET “{name}” non esiste.', + 'Give feedback' => 'Lascia un feedback', 'Give your tab a name.' => 'Dai un nome alla tua etichetta.', 'Global' => 'Globale', 'Global Set Name' => 'Nome impostazione globale', @@ -524,8 +528,10 @@ 'How you’ll refer to this global set in the templates.' => 'Come farai riferimento a questi set globali nei template.', 'How you’ll refer to this section in the templates.' => 'Come ti riferirai a questa sezione nei template.', 'How you’ll refer to this tag group in the templates.' => 'Come ti riferirai a questo gruppo di tag nello schema.', + 'How-to’s and other questions' => '"Come si fa a...?" e altre domande', 'HTML' => 'HTML', 'HTML Email Template' => 'Template email HTML', + 'HTML Purifier Config' => 'Configurazione di HTML Purifier', 'http://example.com/path/to/folder/' => 'http://esempio.com/percorso/della/cartella/ ', 'HttpRequestService::close() cannot be called after content has been output.' => 'HttpRequestService::close() non può essere richiamato dopo che il contenuto è stato emesso.', 'I agree.' => 'Accetto.', @@ -756,6 +762,7 @@ 'Oops!' => 'Ops!', 'Option Label' => 'Opzioni etichetta', 'Options' => 'Opzioni', + 'or send to Craft Support' => 'o invia all\'assistenza di Craft', 'Origin' => 'Origine', 'Our site is temporarily unavailable. Please try again later.' => 'Il nostro sito non è al momento disponibile. Riprova per favore più tardi.', 'Page Not Found' => 'Pagina Non Trovata', @@ -793,6 +800,7 @@ 'Position Select' => 'Selezione Posizione', 'Post a new {section} entry' => 'Nuovo articolo in "{section}"', 'Post Date' => 'Data di pubblicazione', + 'Post on GitHub' => 'Pubblica su GitHub', 'POST param “{name}” doesn’t exist.' => 'Il parametro POST “{name}” non esiste.', 'POST param “{name}” was invalid.' => 'POST param “{name}” non era valido.', 'Powered by Craft CMS' => 'Powered by Craft CMS', @@ -820,6 +828,7 @@ 'Recent Entries' => 'Articoli recenti', 'Recent Versions' => 'Versioni recenti', 'Recent {section} Entries' => 'Articoli recenti in "{section}"', + 'Redactor Config' => 'Configurazione di Redactor', 'Refresh' => 'RIcarica', 'Region' => 'Regione', 'Register a new user' => 'Registra nuovo utente', @@ -893,7 +902,6 @@ 'Select transform' => 'Selezionare trasforma', 'Selection Label' => 'Etichetta Selezione', 'Send' => 'Invia', - 'Send a message to Craft CMS Support' => 'Invia un messaggio al supporto Craft CMS', 'Send activation email' => 'Invia email di attivazione', 'Send an activation email now?' => 'Inviare ora la email di attivazione?', 'Send for help' => 'Richiedi aiuto', @@ -926,6 +934,8 @@ 'Show time' => 'Mostra ora', 'Show/hide children' => 'Mostra/nascondi figli', 'Sign out' => 'Disconnetti', + 'Similar issues on GitHub' => 'Argomenti simili su GitHub', + 'Similar questions on Stack Exchange' => 'Domande simili su Stack Exchange', 'Single' => 'Singola', 'Single-line Text' => 'Unica riga di testo', 'Singles' => 'Singoli', @@ -975,7 +985,6 @@ 'Tag Groups' => 'Gruppi di tag', 'Tags' => 'Tag', 'Target Locale' => 'Località di riferimento', - 'Tell us about your problems.' => 'Parlaci dei tuoi problemi.', 'Temp files' => 'File temporanei', 'Template caches' => 'Cache template', 'Template Error' => 'Errore template', @@ -1260,11 +1269,10 @@ 'Years' => 'Anni', 'Yesterday' => 'Ieri', 'yii' => 'yii', - 'You can save custom Redactor configs as .json files in craft/config/redactor/.' => 'Potete salvare le configurazioni personalizzate del Redactor come file .json su craft/config/redactor/.', + 'You can save custom {name} configs as {ext} files in {path}.' => 'Puoi salvare le configurazioni personalizzate di {name} come file {ext} in {path}.', 'You cannot access the CP while the system is offline with that account.' => 'Non puoi accedere al CP mentre il sistema è offline.', 'You cannot access the CP with that account.' => 'Non puoi accedere al pannello di controllo con questo account.', 'You cannot access the site while the system is offline with that account.' => 'Non puoi accedere al sito mentre il sistema è offline con quel determinato account.', - 'You don’t have any Redactor configs yet.' => 'Non hai ancora nessuna configurazione Redactor.', 'You don’t have any widgets yet.' => 'Non hai ancora nessun widget.', 'You don’t have the proper credentials to access this page.' => 'Non hai le credenziali corrette per accedere a questa pagina.', 'You don’t have the required permissions for this operation.' => 'Non hai le autorizzazioni richieste per questa operazione.', diff --git a/src/translations/ja.php b/src/translations/ja.php index f35859bc3ae..629402faa31 100644 --- a/src/translations/ja.php +++ b/src/translations/ja.php @@ -102,6 +102,7 @@ 'Are you sure you want to uninstall {plugin}? You will lose all of its associated data.' => '本当に{plugin}をアンインストールしますか?全ての関連データは無くなります。', 'Area' => 'エリア', 'Ascending' => '昇順', + 'Ask on Stack Exchange' => 'Stack Exchangeで質問する', 'Asset caches' => 'アセットキャッシュ', 'Asset indexing data' => 'アセットのインデックス化データ', 'Asset Settings' => 'ファイル管理の設定', @@ -135,7 +136,10 @@ 'Bottom-Center' => '下中', 'Bottom-Left' => '下左', 'Bottom-Right' => '下右', + 'Briefly describe your issue or idea.' => 'あなたの問題、あるいは考えを簡単に記述してください。', + 'Briefly describe your question.' => 'あなたの質問を簡単に記述してください。', 'Bucket' => 'バケット', + 'Bug reports and feature requests' => 'バグの報告と機能のリクエスト', 'Business name' => '商号', 'Business tax ID' => '事業税ID', 'Buy now' => '今すぐ購入', @@ -204,7 +208,6 @@ 'Column Type' => '列タイプ', 'Compiled templates' => 'コンパイル済のテンプレート', 'Compressed' => '圧縮済み', - 'Config' => '設定', 'Configuration' => '構成', 'Congrats! You’re up-to-date.' => '最新版に更新できました。', 'Connection information not found!' => '接続情報が見つけられません!', @@ -263,7 +266,6 @@ 'Couldn’t save user.' => 'ユーザが保存できませんでした。', 'Couldn’t save widget.' => 'ウィジェットが保存できませんでした。', 'Couldn’t send activation email. Check your email settings.' => 'アクティベーション用メールを送信できませんでした。ご自分のメール設定をご確認ください。', - 'Couldn’t send your message. Please email it to {email} instead.' => 'メッセージが送信できませんでした。その代わりに「{email}」宛にメールしてください。', 'Couldn’t suspend user.' => 'ユーザーを凍結できませんでした。', 'Couldn’t uninstall plugin.' => 'プラグインがアンインストールできませんでした', 'Couldn’t unsuspended user.' => 'ユーザーの凍結解除ができませんでした。', @@ -285,6 +287,7 @@ 'Craft is unable to transfer your license to this domain at this time.' => '只今Craftはライセンスをこのドメインに移動することができません。', 'Craft requires the PDO extension to operate.' => 'Craftを運行するにはPDOの拡張が必要です。', 'Craft requires the PDO_MYSQL driver to operate.' => 'Craftを運行するにはPDO_MYSQLのドライバーが必要です。', + 'Craft Support' => 'Craftサポート', 'Craft was unable to install this update :(' => 'クラフトはこの更新をインストール出来ませんでした。', 'Craft {edition} is required to perform this action.' => 'クラフト{edition} はこのアクションの実行に必要です。', 'Craft’s Terms and Conditions have changed.' => 'Craftの 契約条件 が変わりました。', @@ -486,9 +489,10 @@ 'General Settings' => '一般の設定', 'General settings saved.' => '一般の設定を保存しました。', 'Generating pending image transforms' => '保留中の画像の変換を生成中', - 'Get Help' => 'ヘルプ', + 'Get help' => 'ヘルプをゲットする', 'GET Info' => 'GET情報', 'GET param “{name}” doesn’t exist.' => '「{name}」のGETパラメータは存在していません。', + 'Give feedback' => 'フィードバックをする', 'Give your tab a name.' => 'タブの名前を入力してください。', 'Global' => 'グローバル', 'Global Set Name' => 'グローバルセットの名前', @@ -526,8 +530,10 @@ 'How you’ll refer to this global set in the templates.' => 'テンプレートに使うグローバルセットの名前。', 'How you’ll refer to this section in the templates.' => 'テンプレートに使うセクションの名前。', 'How you’ll refer to this tag group in the templates.' => 'テンプレート中のこのタググループを参照する方法。', + 'How-to’s and other questions' => 'ハウ ツーやその他の質問', 'HTML' => 'HTML', 'HTML Email Template' => 'HTMLメールのテンプレート', + 'HTML Purifier Config' => 'HTML Purifierの設定', 'http://example.com/path/to/folder/' => 'http://example.com/パス/to/フォルダー/ ', 'HttpRequestService::close() cannot be called after content has been output.' => 'HttpRequestService::()を閉じると、コンテンツが出力された後は呼び出しができなくなります。 ', 'I agree.' => '同意する', @@ -758,6 +764,7 @@ 'Oops!' => 'おっと!', 'Option Label' => 'オプションのラベル', 'Options' => 'オプション', + 'or send to Craft Support' => 'または Craftサポートに送信する', 'Origin' => '原因', 'Our site is temporarily unavailable. Please try again later.' => 'サイトが一時的に使用できない状態になっています。後ほど再試行して下さい。', 'Page Not Found' => 'ページは見つけられません', @@ -795,6 +802,7 @@ 'Position Select' => '位置を選択', 'Post a new {section} entry' => '新しい{section}のエントリを投稿する', 'Post Date' => '投稿日', + 'Post on GitHub' => 'GitHubに投稿する', 'POST param “{name}” doesn’t exist.' => '「{name}」のPOSTパラメータは存在していません。', 'POST param “{name}” was invalid.' => '引数 “{name}” のPOSTをしたところ、無効でした。', 'Powered by Craft CMS' => 'Powered by Craft CMS', @@ -822,6 +830,7 @@ 'Recent Entries' => '最近のエントリ', 'Recent Versions' => '最近のバージョン', 'Recent {section} Entries' => '最近の{section}エントリー', + 'Redactor Config' => 'Redactorの設定', 'Refresh' => 'リフレッシュ', 'Region' => '地域', 'Register a new user' => '新しいユーザを登録する', @@ -895,7 +904,6 @@ 'Select transform' => '選択 変換', 'Selection Label' => '選択ラベル', 'Send' => '送信', - 'Send a message to Craft CMS Support' => 'Craft CMSサポートへとメッセージを送信', 'Send activation email' => '認証メールの送信', 'Send an activation email now?' => '認証メールを今送りますか?', 'Send for help' => 'ヘルプを求める', @@ -928,6 +936,8 @@ 'Show time' => '時間を表示する', 'Show/hide children' => '子を表示/非表示します', 'Sign out' => 'ログアウト', + 'Similar issues on GitHub' => 'GitHubの類似した問題', + 'Similar questions on Stack Exchange' => 'Stack Exchangeの類似した問題', 'Single' => 'シングル', 'Single-line Text' => '一行テキスト', 'Singles' => 'シングル', @@ -977,7 +987,6 @@ 'Tag Groups' => 'タググループ', 'Tags' => 'タグ', 'Target Locale' => 'ターゲットローカル', - 'Tell us about your problems.' => 'お困りの問題についてお知らせください。', 'Temp files' => '一時的なファイル', 'Template caches' => 'テンプレートキャッシュ', 'Template Error' => 'テンプレートエラー', @@ -1263,11 +1272,10 @@ 'Years' => '年', 'Yesterday' => '昨日', 'yii' => 'Yii', - 'You can save custom Redactor configs as .json files in craft/config/redactor/.' => 'カスタムRedactorの設定を.jsonファイルにし、craft/config/redactor/に保存できます。', + 'You can save custom {name} configs as {ext} files in {path}.' => '{path}に{ext} ファイルとしてカスタム {name}設定を保存できます。', 'You cannot access the CP while the system is offline with that account.' => 'システムはオフライン中このアカウントで管理画面にアクセスすることはできません。', 'You cannot access the CP with that account.' => 'このアカウントでは管理画面にアクセスできません。', 'You cannot access the site while the system is offline with that account.' => 'システムがそのアカウントでオフラインの間は、サイトにアクセスすることはできません。', - 'You don’t have any Redactor configs yet.' => 'あなたはまだ 編集者設定 を持っていません。', 'You don’t have any widgets yet.' => 'ウィジェットはまだありません。', 'You don’t have the proper credentials to access this page.' => '権限がないため、このページにアクセスすることができません。', 'You don’t have the required permissions for this operation.' => 'あなたはこの操作に必要な権限を持っていません。', diff --git a/src/translations/ko.php b/src/translations/ko.php index 7def75c2bbc..965f64d6ca8 100644 --- a/src/translations/ko.php +++ b/src/translations/ko.php @@ -101,6 +101,7 @@ 'Are you sure you want to uninstall {plugin}? You will lose all of its associated data.' => '정말 {plugin}을 언인스톨하기 원하십니까? 연관된 모든 정보를 잃게됩니다.', 'Area' => '영', 'Ascending' => '오름차순', + 'Ask on Stack Exchange' => '스택(Stack) 교환 요청', 'Asset caches' => '자원 캐쉬', 'Asset indexing data' => '자산 인덱싱 데이터', 'Asset Settings' => '에셋 설정', @@ -134,7 +135,10 @@ 'Bottom-Center' => '아래쪽 중간', 'Bottom-Left' => '아래쪽 왼편', 'Bottom-Right' => '아래쪽 오른편', + 'Briefly describe your issue or idea.' => '당신의 문제나 생각을 간단히 설명해 주세요.', + 'Briefly describe your question.' => '당신의 질문을 간단히 설명해 주세요.', 'Bucket' => '버킷', + 'Bug reports and feature requests' => '버그 신고와 기능 요청', 'Business name' => '회사 이름', 'Business tax ID' => '영업세 ID', 'Buy now' => '지금 구입하세요', @@ -203,7 +207,6 @@ 'Column Type' => '열 유형', 'Compiled templates' => '컴파일된 템플릿', 'Compressed' => '압축', - 'Config' => '컨피그', 'Configuration' => '설정', 'Congrats! You’re up-to-date.' => '축하합니다! 업데이트 되었습니다.', 'Connection information not found!' => '연결 정보를 찾을 수 없습니다!', @@ -262,7 +265,6 @@ 'Couldn’t save user.' => '사용자를 저장할 수 없습니다.', 'Couldn’t save widget.' => '위젯을 저장할 수 없습니다.', 'Couldn’t send activation email. Check your email settings.' => '활성 이메일을 전송하지 못했습니다. 이메일 설정을 확인해 주세요.', - 'Couldn’t send your message. Please email it to {email} instead.' => '메시지를 보낼 수 없습니다. {email}로(으로) 대신 이메일하시기 바랍니다.', 'Couldn’t suspend user.' => '사용자를 중단시킬 수 없습니다.', 'Couldn’t uninstall plugin.' => '플러그인을 언인스톨할 수 없습니다.', 'Couldn’t unsuspended user.' => '사용자가 계속하도록 허용해줄 수 없습니다.', @@ -284,6 +286,7 @@ 'Craft is unable to transfer your license to this domain at this time.' => 'Craft는 지금 당신의 라이센스를 이 도메인으로 전송할 수 없습니다.', 'Craft requires the PDO extension to operate.' => 'Craft 운영을 위해 PDO 확장자가 필요합니다.', 'Craft requires the PDO_MYSQL driver to operate.' => 'Craft 운영을 위해 PDO_MYSQL 드라이버가 필요합니다.', + 'Craft Support' => 'Craft 고객지원', 'Craft was unable to install this update :(' => 'Craft는 이 업데이트를 인스톨할 수 없었습니다 :(', 'Craft {edition} is required to perform this action.' => 'Craft {edition}은 이 작업에 필요합니다.', 'Craft’s Terms and Conditions have changed.' => 'Craft 이용 약관이 변경되었습니다.', @@ -484,9 +487,10 @@ 'General Settings' => '일반 설정', 'General settings saved.' => '일반 설정이 저장되었습니다.', 'Generating pending image transforms' => '펜딩 이미지 변환 생성', - 'Get Help' => '도움 얻기', + 'Get help' => '도움 받기', 'GET Info' => 'GET Info', 'GET param “{name}” doesn’t exist.' => 'GET param “{name}”이(가) 존재하지 않습니다.', + 'Give feedback' => '피드백 주기', 'Give your tab a name.' => '탭에 이름을 주세요.', 'Global' => '글로벌', 'Global Set Name' => '글로벌 세트 이름', @@ -524,8 +528,10 @@ 'How you’ll refer to this global set in the templates.' => '템플릿 안에서 이 글로벌 세트를 어떻게 참조할 것인가.', 'How you’ll refer to this section in the templates.' => '템플릿 안에서 이 섹션을 어떻게 참조할 것인가.', 'How you’ll refer to this tag group in the templates.' => '템플릿 안에서 이 태그 그룹을 어떻게 참조할지.', + 'How-to’s and other questions' => '사용방법과 다른 질문들', 'HTML' => 'HTML', 'HTML Email Template' => 'HTML 이메일 템플릿', + 'HTML Purifier Config' => 'HTML 퓨리파이어 설정', 'http://example.com/path/to/folder/' => 'http://example.com/path/to/folder/', 'HttpRequestService::close() cannot be called after content has been output.' => '컨텐츠 출력 후에 HttpRequestService::close()를 호출할 수 없습니다.', 'I agree.' => '동의합니다.', @@ -756,6 +762,7 @@ 'Oops!' => '저런!', 'Option Label' => '옵션 라벨', 'Options' => '옵션', + 'or send to Craft Support' => '혹은 Craft 고객지원으로 보내기', 'Origin' => '처음', 'Our site is temporarily unavailable. Please try again later.' => '저희 사이트를 일시적으로 사용할 수 없습니다. 나중에 다시 시도하십시오.', 'Page Not Found' => '페이지를 찾을 수 없음', @@ -793,6 +800,7 @@ 'Position Select' => '위치 선택', 'Post a new {section} entry' => '새로운 {section} 항목을 게시하기', 'Post Date' => '날짜를 게시하기', + 'Post on GitHub' => 'GitHub에 게시', 'POST param “{name}” doesn’t exist.' => 'POST 파라미터 “{name}”(이)가 존재하지 않습니다.', 'POST param “{name}” was invalid.' => 'POST 파라미터 “{name}”이(가) 올바르지 않습니다.', 'Powered by Craft CMS' => 'Craft CMS 제공', @@ -820,6 +828,7 @@ 'Recent Entries' => '최근의 항목', 'Recent Versions' => '최근 버전', 'Recent {section} Entries' => '최근 {section} 항목', + 'Redactor Config' => '편집자(Redactor) 설정', 'Refresh' => '새로 고침', 'Region' => '지역', 'Register a new user' => '새로운 사용자로 등록하기', @@ -893,7 +902,6 @@ 'Select transform' => '변환 선택하기', 'Selection Label' => '선정 라벨', 'Send' => '보내기', - 'Send a message to Craft CMS Support' => 'Craft CMS 지원팀에 메시지 보내기', 'Send activation email' => '활성화 이메일 전송', 'Send an activation email now?' => '활성화 이메일을 지금 전송하시겠습니까?', 'Send for help' => '도움 욫ㅇ', @@ -926,6 +934,8 @@ 'Show time' => '시간 표시', 'Show/hide children' => '자식 표시하기/숨기기', 'Sign out' => '로그아웃', + 'Similar issues on GitHub' => 'GitHub에 유사한 문제들', + 'Similar questions on Stack Exchange' => '스택(Stack) 교환에 대한 유사한 질문들', 'Single' => '싱글', 'Single-line Text' => '싱글라인 텍스트', 'Singles' => '싱글', @@ -975,7 +985,6 @@ 'Tag Groups' => '태그 그룹', 'Tags' => '태그', 'Target Locale' => '해당 로케일', - 'Tell us about your problems.' => '문제가 무엇인지 말씀해 주세요.', 'Temp files' => '임시 파일', 'Template caches' => '템플릿 캐시', 'Template Error' => '템플릿 에러', @@ -1260,11 +1269,10 @@ 'Years' => '년', 'Yesterday' => '어제', 'yii' => 'yii', - 'You can save custom Redactor configs as .json files in craft/config/redactor/.' => 'Redactor의 개별 설정을 craft/config/redactor/ 내의 .json 파일에 저장할 수 있습니다.', + 'You can save custom {name} configs as {ext} files in {path}.' => '당신은 사용자 {name} 설정을 {path}에 {ext} 파일로 저장하실 수 있습니다.', 'You cannot access the CP while the system is offline with that account.' => '시스템이 오프라인일 경우, 해당 계정으로 CP에 접근할 수 없습니다.', 'You cannot access the CP with that account.' => '해당 계정으로 CP에 접근할 수 없습니다.', 'You cannot access the site while the system is offline with that account.' => '시스템이 오프라인 상태인 경우, 해당 계정으로 사이트에 액세스할 수 없습니다.', - 'You don’t have any Redactor configs yet.' => '아직 수정 설정이 없습니다.', 'You don’t have any widgets yet.' => '아직 위젯이 없습니다.', 'You don’t have the proper credentials to access this page.' => '이 페이지에 접근할 수 있는 적합한 자격인증이 없습니다.', 'You don’t have the required permissions for this operation.' => '이 작업에 필요한 퍼미션이 없습니다.', diff --git a/src/translations/nl.php b/src/translations/nl.php index 2d773a014d2..eb78546313c 100644 --- a/src/translations/nl.php +++ b/src/translations/nl.php @@ -101,6 +101,7 @@ 'Are you sure you want to uninstall {plugin}? You will lose all of its associated data.' => 'Weet u zeker dat u {plugin} wilt verwijderen? U zult alle bijbehorende gegevens kwijtraken.', 'Area' => 'Omgeving', 'Ascending' => 'Oplopend', + 'Ask on Stack Exchange' => 'Vraag op Stack Exchange', 'Asset caches' => 'Bestand caches', 'Asset indexing data' => 'Indexatiedata van bestanden', 'Asset Settings' => 'Bestand instellingen', @@ -134,7 +135,10 @@ 'Bottom-Center' => 'Middenonder', 'Bottom-Left' => 'Linksonder', 'Bottom-Right' => 'Rechtsonder', + 'Briefly describe your issue or idea.' => 'Beschrijf kort je probleem of idee.', + 'Briefly describe your question.' => 'Beschrijf kort je vraag.', 'Bucket' => 'Bucket', + 'Bug reports and feature requests' => 'Bug rapporteren en suggesties voor nieuwe functies', 'Business name' => 'Bedrijfsnaam', 'Business tax ID' => 'BTW-nummer van het bedrijf', 'Buy now' => 'Koop nu', @@ -203,7 +207,6 @@ 'Column Type' => 'Kolomtype', 'Compiled templates' => 'Verzamelde sjablonen', 'Compressed' => 'Gecomprimeerd', - 'Config' => 'Configuratie', 'Configuration' => 'Configuratie', 'Congrats! You’re up-to-date.' => 'Gefeliciteerd! U bent up-to-date.', 'Connection information not found!' => 'Verbindingsinformatie niet gevonden!', @@ -262,7 +265,6 @@ 'Couldn’t save user.' => 'Kon gebruiker niet opslaan.', 'Couldn’t save widget.' => 'Kon widget niet opslaan.', 'Couldn’t send activation email. Check your email settings.' => 'Kon activeringsmail niet verzenden. Verifieer uw e-mailinstellingen.', - 'Couldn’t send your message. Please email it to {email} instead.' => 'Kan uw bericht niet verzenden. Gelieve de e-mail sturen naar {email}.', 'Couldn’t suspend user.' => 'Kon de gebruiker niet opschorten.', 'Couldn’t uninstall plugin.' => 'Kon plugin niet deïnstalleren.', 'Couldn’t unsuspended user.' => 'Kon de gebruiker niet reactiveren.', @@ -284,6 +286,7 @@ 'Craft is unable to transfer your license to this domain at this time.' => 'Craft kan momenteel uw licentie niet naar dit domein verhuizen.', 'Craft requires the PDO extension to operate.' => 'Craft heeft de PDO-extensie nodig.', 'Craft requires the PDO_MYSQL driver to operate.' => 'Craft heeft de PDO_MYSQL driver nodig.', + 'Craft Support' => 'Craft Support', 'Craft was unable to install this update :(' => 'Craft was niet in staat om deze update te installeren :(', 'Craft {edition} is required to perform this action.' => 'Craft {edition} is vereist om deze actie uit te voeren.', 'Craft’s Terms and Conditions have changed.' => 'Crafts Algemene Voorwaarden zijn gewijzigd.', @@ -484,9 +487,10 @@ 'General Settings' => 'Algemene instellingen', 'General settings saved.' => 'Algemene instellingen bewaard.', 'Generating pending image transforms' => 'Genereren in afwachting van omzetting van afbeelding', - 'Get Help' => 'Hulp krijgen', + 'Get help' => 'Word geholpen', 'GET Info' => 'GET Informatie', 'GET param “{name}” doesn’t exist.' => 'GET parameter “{name}” bestaat niet.', + 'Give feedback' => 'Geef feedback', 'Give your tab a name.' => 'Geef je tab een naam.', 'Global' => 'Globaal', 'Global Set Name' => 'Globale set-naam', @@ -524,8 +528,10 @@ 'How you’ll refer to this global set in the templates.' => 'Naam van deze globale set in de sjablonen.', 'How you’ll refer to this section in the templates.' => 'Naam van deze sectie in de sjablonen.', 'How you’ll refer to this tag group in the templates.' => 'Zo refereer je in de templates aan deze tag-groep.', + 'How-to’s and other questions' => 'Instructies en andere vragen', 'HTML' => 'HTML', 'HTML Email Template' => 'HTML e-mailsjabloon', + 'HTML Purifier Config' => 'HTML Purifier Config', 'http://example.com/path/to/folder/' => 'http://example.com/pad/naar/map/', 'HttpRequestService::close() cannot be called after content has been output.' => 'HttpRequestService::close() kan niet worden aangeroepen nadat de inhoud is uitgevoerd.', 'I agree.' => 'Ik ga akkoord.', @@ -756,6 +762,7 @@ 'Oops!' => 'Oeps!', 'Option Label' => 'Optie-label', 'Options' => 'Opties', + 'or send to Craft Support' => 'of stuur naar Craft Support', 'Origin' => 'Oorsprong', 'Our site is temporarily unavailable. Please try again later.' => 'Onze website is tijdelijk onbeschikbaar. Probeer het later opnieuw.', 'Page Not Found' => 'Pagina niet gevonden', @@ -793,6 +800,7 @@ 'Position Select' => 'Positie selectie', 'Post a new {section} entry' => 'Plaats een nieuw {section} bericht', 'Post Date' => 'Berichtdatum', + 'Post on GitHub' => 'Post op GitHub', 'POST param “{name}” doesn’t exist.' => 'POST param “{name}” bestaat niet.', 'POST param “{name}” was invalid.' => 'POST param “{name}” was ongeldig.', 'Powered by Craft CMS' => 'Mede mogelijk gemaakt door Craft CMS', @@ -820,6 +828,7 @@ 'Recent Entries' => 'Recente inhoud', 'Recent Versions' => 'Recente versies ', 'Recent {section} Entries' => 'Recente items in {section}', + 'Redactor Config' => 'Redacteur Config', 'Refresh' => 'Vernieuw', 'Region' => 'Regio', 'Register a new user' => 'Nieuwe gebruiker registreren', @@ -895,7 +904,6 @@ 'Select transform' => 'Selecteer transformeren', 'Selection Label' => 'Selectie label', 'Send' => 'Versturen', - 'Send a message to Craft CMS Support' => 'Stuur een bericht naar Craft CMS Support', 'Send activation email' => 'Activeringse-mail versturen', 'Send an activation email now?' => 'Nu een activerings-e-mail versturen?', 'Send for help' => 'Verstuur voor hulp', @@ -928,6 +936,8 @@ 'Show time' => 'Laat tijd zien', 'Show/hide children' => 'Kinderen tonen/verbergen', 'Sign out' => 'Afmelden', + 'Similar issues on GitHub' => 'Soortgelijke problemen op GitHub', + 'Similar questions on Stack Exchange' => 'Soortgelijke vragen op Stack Exchange', 'Single' => 'Single', 'Single-line Text' => 'Enkele-lijn tekst', 'Singles' => 'Singles', @@ -977,7 +987,6 @@ 'Tag Groups' => 'Tag-groepen', 'Tags' => 'Tags', 'Target Locale' => 'Doel taal', - 'Tell us about your problems.' => 'Vertel ons over je problemen.', 'Temp files' => 'Tijdelijke bestanden', 'Template caches' => 'Template caches', 'Template Error' => 'Template Error', @@ -1262,11 +1271,10 @@ 'Years' => 'Jaren', 'Yesterday' => 'Gisteren', 'yii' => 'yii', - 'You can save custom Redactor configs as .json files in craft/config/redactor/.' => 'U kunt aangepaste Redactor-configuraties opslaan als .json bestanden in craft/config/redactor/.', + 'You can save custom {name} configs as {ext} files in {path}.' => 'Je kunt persoonlijke {name} configs als {ext} bestanden opslaan in {path}', 'You cannot access the CP while the system is offline with that account.' => 'U kunt met deze account geen toegang tot de CP krijgen terwijl het systeem offline is.', 'You cannot access the CP with that account.' => 'U krijgt met deze account geen toegang tot de CP.', 'You cannot access the site while the system is offline with that account.' => 'U heeft met die account geen toegang tot de site terwijl het systeem offline is.', - 'You don’t have any Redactor configs yet.' => 'U heeft nog geen Redacteur configs.', 'You don’t have any widgets yet.' => 'U heeft nog geen widgets.', 'You don’t have the proper credentials to access this page.' => 'U beschikt niet over de juiste verificatiegegevens om deze pagina te bezoeken.', 'You don’t have the required permissions for this operation.' => 'Je hebt niet de benodigde permissies om dit te doen.', diff --git a/src/translations/no.php b/src/translations/no.php index 40322d02fbe..401083d8b40 100644 --- a/src/translations/no.php +++ b/src/translations/no.php @@ -101,6 +101,7 @@ 'Are you sure you want to uninstall {plugin}? You will lose all of its associated data.' => 'Er du sikker på at du ønsker å avinstallere {plugin}? All tilhørende informasjon vil også bli slettet.', 'Area' => 'Område', 'Ascending' => 'Stigende', + 'Ask on Stack Exchange' => 'Spør på Stack Exchange', 'Asset caches' => 'Fil-mellomlagere', 'Asset indexing data' => 'Indekseringsdata for filer', 'Asset Settings' => 'Innstillinger for Filer', @@ -134,7 +135,10 @@ 'Bottom-Center' => 'Bunn - senter', 'Bottom-Left' => 'Bunn - venstre', 'Bottom-Right' => 'Bunn - høyre', + 'Briefly describe your issue or idea.' => 'Beskriv kort problemet eller ideen din', + 'Briefly describe your question.' => 'Beskriv kort spørsmålet ditt.', 'Bucket' => 'Bøtte', + 'Bug reports and feature requests' => 'Feilrapporter eller funksjonsforespørsel', 'Business name' => 'Forretningsnavn', 'Business tax ID' => 'Forretningsskatte-ID', 'Buy now' => 'Kjøp nå', @@ -203,7 +207,6 @@ 'Column Type' => 'Kolonnetype', 'Compiled templates' => 'Kompilerte maler', 'Compressed' => 'Komprimert', - 'Config' => 'Innstilling', 'Configuration' => 'Innstillinger', 'Congrats! You’re up-to-date.' => 'Gratulerer, alt er oppdatert!', 'Connection information not found!' => 'Informasjon om tilkobling ikke funnet!', @@ -262,7 +265,6 @@ 'Couldn’t save user.' => 'Kunne ikke lagre brukeren.', 'Couldn’t save widget.' => 'Kunne ikke lagre modul.', 'Couldn’t send activation email. Check your email settings.' => 'Kunne ikke sende e-post for aktivering. Sjekk e-postinnstillingene dine.', - 'Couldn’t send your message. Please email it to {email} instead.' => 'Kunne ikke sende meldingen din. Vennligst send den til {email} i stedet.', 'Couldn’t suspend user.' => 'Kunne ikke suspendere bruker.', 'Couldn’t uninstall plugin.' => 'Kunne ikke avinstallere programtillegget.', 'Couldn’t unsuspended user.' => 'Kunne ikke gjenopprette bruker.', @@ -284,6 +286,7 @@ 'Craft is unable to transfer your license to this domain at this time.' => 'Craft er ikke i stand til å overføre lisensen din til dette domenet i øyeblikket.', 'Craft requires the PDO extension to operate.' => 'Craft krever PDO utvidelsen for å fungere.', 'Craft requires the PDO_MYSQL driver to operate.' => 'Craft krever PDO_MYSQL driveren for å fungere.', + 'Craft Support' => 'Craft Support', 'Craft was unable to install this update :(' => 'Craft var ikke i stand til å installere denne oppdateringen :(', 'Craft {edition} is required to perform this action.' => 'Craft {edition} er påkrevd for å gjennomføre denne handlingen.', 'Craft’s Terms and Conditions have changed.' => 'Crafts vilkår og betingelser er endret.', @@ -484,9 +487,10 @@ 'General Settings' => 'Generelle innstillinger', 'General settings saved.' => 'Generelle innstillinger lagret.', 'Generating pending image transforms' => 'Genererer ventende bildeomforminger', - 'Get Help' => 'Få hjelp', + 'Get help' => 'Få hjelp', 'GET Info' => 'GET info', 'GET param “{name}” doesn’t exist.' => 'GET param “{name}” eksisterer ikke.', + 'Give feedback' => 'Gi tilbakemelding', 'Give your tab a name.' => 'Navngi fanen din', 'Global' => 'Globalt innhold', 'Global Set Name' => 'Navn på global gruppe', @@ -524,8 +528,10 @@ 'How you’ll refer to this global set in the templates.' => 'Hvordan du ønsker å referere til denne globale gruppen i malene.', 'How you’ll refer to this section in the templates.' => 'Hvordan du ønsker å referere til denne seksjonen i malene.', 'How you’ll refer to this tag group in the templates.' => 'Hvordan du vil referere til denne stikkordsgruppen i malene.', + 'How-to’s and other questions' => 'Tips og andre spørsmål', 'HTML' => 'HTML', 'HTML Email Template' => 'HTML e-post mal', + 'HTML Purifier Config' => 'HTML Purifier Config', 'http://example.com/path/to/folder/' => 'http://eksempel.no/filbane/til/mappe/', 'HttpRequestService::close() cannot be called after content has been output.' => 'HttpRequestService::close() kan ikke bes om etter at innhold har blitt utmatet.', 'I agree.' => 'Jeg godtar.', @@ -756,6 +762,7 @@ 'Oops!' => 'Ops!', 'Option Label' => 'Navn', 'Options' => 'Valg', + 'or send to Craft Support' => 'eller sende til Craft Support', 'Origin' => 'Opprinnelse', 'Our site is temporarily unavailable. Please try again later.' => 'Siden vår er midlertidig utilgjengelig. Vennligst prøv igjen senere. ', 'Page Not Found' => 'Siden ble ikke funnet', @@ -793,6 +800,7 @@ 'Position Select' => 'Posisjonsvelger', 'Post a new {section} entry' => 'Opprett en ny {section} artikkel', 'Post Date' => 'Publiseres', + 'Post on GitHub' => 'Post på GitHub', 'POST param “{name}” doesn’t exist.' => 'POST parameter “{name}” eksisterer ikke.', 'POST param “{name}” was invalid.' => 'POST-parameteren “{name}” var ugyldig.', 'Powered by Craft CMS' => 'Drevet av Craft CMS', @@ -820,6 +828,7 @@ 'Recent Entries' => 'Nylig publisert', 'Recent Versions' => 'Seneste versjoner', 'Recent {section} Entries' => 'Siste artikler i {section}', + 'Redactor Config' => 'Redactor Config', 'Refresh' => 'Oppdater', 'Region' => 'Område', 'Register a new user' => 'Registrer en ny bruker', @@ -893,7 +902,6 @@ 'Select transform' => 'Velg omforming', 'Selection Label' => 'Utvalgsetikett', 'Send' => 'Send', - 'Send a message to Craft CMS Support' => 'Send en melding til Craft CMS kundestøtte', 'Send activation email' => 'Send aktiveringsepost', 'Send an activation email now?' => 'Send en aktiveringsmail nå?', 'Send for help' => 'Send for hjelp', @@ -926,6 +934,8 @@ 'Show time' => 'Vis tid ', 'Show/hide children' => 'Vis/skjul underelementer', 'Sign out' => 'Logg ut', + 'Similar issues on GitHub' => 'Lignende problemer hos GitHub', + 'Similar questions on Stack Exchange' => 'Lignende spørsmål hos Stack Exchange', 'Single' => 'Unike sider', 'Single-line Text' => 'Én-linjes tekst', 'Singles' => 'Unike sider', @@ -975,7 +985,6 @@ 'Tag Groups' => 'Stikkordsgrupper', 'Tags' => 'Stikkord', 'Target Locale' => 'Målspråk', - 'Tell us about your problems.' => 'Beskriv problemene for oss (på engelsk).', 'Temp files' => 'Midlertidige filer', 'Template caches' => 'Mellomlager for maler', 'Template Error' => 'Feil i mal', @@ -1260,11 +1269,10 @@ 'Years' => 'År', 'Yesterday' => 'I går', 'yii' => 'yii', - 'You can save custom Redactor configs as .json files in craft/config/redactor/.' => 'Du kan lagre egentilpassede Redactor konfigurasjoner som .json files i craft/config/redactor/.', + 'You can save custom {name} configs as {ext} files in {path}.' => 'Du kan lagre tilpassede {name} konfigurasjoner som {ext} filer i {path}.', 'You cannot access the CP while the system is offline with that account.' => 'Du har ikke tilgang til kontrollpanelet når systemet er offline for den kontoen.', 'You cannot access the CP with that account.' => 'Du har ikke tilgang til kontrollpanelet med den kontoen.', 'You cannot access the site while the system is offline with that account.' => 'Du har ikke tilgang til siden mens systemet er offline med den kontoen.', - 'You don’t have any Redactor configs yet.' => 'Du har ikke noen Redactor-konfig ennå.', 'You don’t have any widgets yet.' => 'Du har ingen moduler enda.', 'You don’t have the proper credentials to access this page.' => 'Du har ikke de nødvendige tilgangene som kreves for å se denne siden.', 'You don’t have the required permissions for this operation.' => 'Du har ikke de nødvendige tilgangene som kreves for denne operasjonen.', diff --git a/src/translations/pl.php b/src/translations/pl.php index 6a434ea7449..97f441caf05 100644 --- a/src/translations/pl.php +++ b/src/translations/pl.php @@ -101,6 +101,7 @@ 'Are you sure you want to uninstall {plugin}? You will lose all of its associated data.' => 'Czy na pewno chcesz odinstalować {plugin}? Stracisz wszystkie powiązane z nią dane.', 'Area' => 'Obszar', 'Ascending' => 'Rosnąco', + 'Ask on Stack Exchange' => 'Zapytaj na Stack Exchange', 'Asset caches' => 'Bufor zasobów', 'Asset indexing data' => 'Dane indeksowania zasobów', 'Asset Settings' => 'Ustawienia zasobów', @@ -134,7 +135,10 @@ 'Bottom-Center' => 'Dół po środku', 'Bottom-Left' => 'Dół po lewej', 'Bottom-Right' => 'Dół po prawej', + 'Briefly describe your issue or idea.' => 'Krótko opisz swój problem lub pomysł.', + 'Briefly describe your question.' => 'Krótko opisz swoje pytanie.', 'Bucket' => 'Bucket', + 'Bug reports and feature requests' => 'Zgłoszenia błędów i prośby o nowe funkcje', 'Business name' => 'Nazwa firmy', 'Business tax ID' => 'Identyfikator podatkowy', 'Buy now' => 'Kup teraz', @@ -203,7 +207,6 @@ 'Column Type' => 'Rodzaj kolumny', 'Compiled templates' => 'Szablony skompilowane', 'Compressed' => 'Skompresowany', - 'Config' => 'Konfiguracja', 'Configuration' => 'Konfiguracja', 'Congrats! You’re up-to-date.' => 'Gratulacje! Wszystko aktualne.', 'Connection information not found!' => 'Nie znaleziono informacji o połączeniu!', @@ -262,7 +265,6 @@ 'Couldn’t save user.' => 'Nie można zapisać użytkownika.', 'Couldn’t save widget.' => 'Nie można zapisać widżetu.', 'Couldn’t send activation email. Check your email settings.' => 'Nie można wysłać aktywacyjnej wiadomości e-mail. Sprawdź ustawienia swojej poczty e-mail.', - 'Couldn’t send your message. Please email it to {email} instead.' => 'Nie udało wysłać się wiadomośći. Zamiast tego proszę wysłać ją pod adres {email}.', 'Couldn’t suspend user.' => 'Nie można zawiesić użytkownika.', 'Couldn’t uninstall plugin.' => 'Nie można odinstalować wtyczki.', 'Couldn’t unsuspended user.' => 'Nie można odwiesić użytkownika.', @@ -284,6 +286,7 @@ 'Craft is unable to transfer your license to this domain at this time.' => 'Craft w tej chwili nie jest w stanie przetransferować licencji na tą domenę.', 'Craft requires the PDO extension to operate.' => 'Craft wymaga rozszerzenia PDO do działania.', 'Craft requires the PDO_MYSQL driver to operate.' => 'Craft wymaga sterownika PDO_MYSQL do działania.', + 'Craft Support' => 'Wsparcie Craft', 'Craft was unable to install this update :(' => 'Craft nie był w stanie zainstalować tej aktualizacji :(', 'Craft {edition} is required to perform this action.' => 'Craft {edition} jest wymagany, aby wykonać tą operację.', 'Craft’s Terms and Conditions have changed.' => 'Warunki licencjiCraft CMS uległy zmianie.', @@ -484,9 +487,10 @@ 'General Settings' => 'Ustawienia ogólne', 'General settings saved.' => 'Ustawienia ogólne zapisane.', 'Generating pending image transforms' => 'Generowanie oczekujących przekształceń obrazków.', - 'Get Help' => 'Uzyskaj pomoc', + 'Get help' => 'Uzyskaj pomoc', 'GET Info' => 'GET Info', 'GET param “{name}” doesn’t exist.' => 'Parametr GET “{name}” nie istnieje.', + 'Give feedback' => 'Przekaż opinię', 'Give your tab a name.' => 'Nadaj swojej karcie nazwę.', 'Global' => 'Globalne', 'Global Set Name' => 'Nazwa zbioru globalnego', @@ -524,8 +528,10 @@ 'How you’ll refer to this global set in the templates.' => 'Jak będziesz odnosić się do tego globalnego zbioru w szablonach.', 'How you’ll refer to this section in the templates.' => 'Jak będziesz odnosić się do tej sekcji w szablonach.', 'How you’ll refer to this tag group in the templates.' => 'Jak będziesz się odnosić do tej grupy tagów w szablonach.', + 'How-to’s and other questions' => 'Instrukcje i pytania', 'HTML' => 'HTML', 'HTML Email Template' => 'Szablon HTML e-mail', + 'HTML Purifier Config' => 'Konfiguracja HTML Purifier', 'http://example.com/path/to/folder/' => 'http://example.com/ścieżka/do/katalogu/', 'HttpRequestService::close() cannot be called after content has been output.' => 'HttpRequestService::close() nie może zostać wywołane, kiedy zawartość została wyprowadzona', 'I agree.' => 'Zgadzam się.', @@ -756,6 +762,7 @@ 'Oops!' => 'Ups!', 'Option Label' => 'Podpis opcji', 'Options' => 'Opcje', + 'or send to Craft Support' => 'lub wysłać do działu wsparcia Craft', 'Origin' => 'Pochodzenie', 'Our site is temporarily unavailable. Please try again later.' => 'Nasza witryna jest tymczasowo niedostępna. Spróbuj ponownie później.', 'Page Not Found' => 'Nie znaleziono strony', @@ -793,6 +800,7 @@ 'Position Select' => 'Wybór pozycji', 'Post a new {section} entry' => 'Dodaj nowy wpis w sekcji {section}', 'Post Date' => 'Data wpisu', + 'Post on GitHub' => 'Opublikuj na GitHub', 'POST param “{name}” doesn’t exist.' => 'POST param “{name}” nie istnieje.', 'POST param “{name}” was invalid.' => 'Parametr POST „{name}" był nieprawidłowy.', 'Powered by Craft CMS' => 'Napędzane przez Craft CMS', @@ -820,6 +828,7 @@ 'Recent Entries' => 'Ostatnie wpisy', 'Recent Versions' => 'Ostatnie wersje', 'Recent {section} Entries' => 'Ostatnie wpisy sekcji {section}', + 'Redactor Config' => 'Konfiguracja Redactor', 'Refresh' => 'Odśwież', 'Region' => 'Region', 'Register a new user' => 'Rejestracja nowego użytkownika', @@ -893,7 +902,6 @@ 'Select transform' => 'Wybierz przekształcenie', 'Selection Label' => 'Podpis wyboru', 'Send' => 'Wyślij', - 'Send a message to Craft CMS Support' => 'Wyślij wiadomość do pomocy technicznej Craft CMS', 'Send activation email' => 'Wyślij e-mail aktywacyjny', 'Send an activation email now?' => 'Wysłać teraz e-mail aktywacyjny?', 'Send for help' => 'Wyślij na pomoc', @@ -926,6 +934,8 @@ 'Show time' => 'Pokaż czas', 'Show/hide children' => 'Pokaż/ukryj potomne', 'Sign out' => 'Wyloguj', + 'Similar issues on GitHub' => 'Podobne problemy na GitHub', + 'Similar questions on Stack Exchange' => 'Podobne pytania na Stack Exchange', 'Single' => 'Pojedynczy', 'Single-line Text' => 'Tekst jednowierszowy', 'Singles' => 'Pojedyncze', @@ -975,7 +985,6 @@ 'Tag Groups' => 'Grupy tagów', 'Tags' => 'Tagi', 'Target Locale' => 'Język docelowy', - 'Tell us about your problems.' => 'Opisz nam swoje problemy.', 'Temp files' => 'Pliki tymczasowe', 'Template caches' => 'Bufor szablonu', 'Template Error' => 'Błąd szablonu', @@ -1260,11 +1269,10 @@ 'Years' => 'Lat(a)', 'Yesterday' => 'Wczoraj', 'yii' => 'Yii', - 'You can save custom Redactor configs as .json files in craft/config/redactor/.' => 'Możesz zapisać własne konfiguracje Redactor jako pliki .json w craft/config/redactor/.', + 'You can save custom {name} configs as {ext} files in {path}.' => 'Możesz zapisać własne konfiguracje {name} jako pliki {ext} w {path}.', 'You cannot access the CP while the system is offline with that account.' => 'To konto nie może uzyskać dostępu do CP, kiedy system jest wyłączony.', 'You cannot access the CP with that account.' => 'To konto nie posiada dostępu do CP.', 'You cannot access the site while the system is offline with that account.' => 'To konto nie może uzyskać dostępu do witryny, kiedy system jest wyłączony.', - 'You don’t have any Redactor configs yet.' => 'Nie masz jeszcze żadnych plików konfigracji Redactor yet.', 'You don’t have any widgets yet.' => 'Nie ma jeszcze żadnych widżetów.', 'You don’t have the proper credentials to access this page.' => 'Nie masz odpowiednich uprawnień dostępu do tej strony.', 'You don’t have the required permissions for this operation.' => 'Nie masz wystarczających uprawnień dla tej operacji.', @@ -1316,4 +1324,4 @@ '“{plugin}” can’t be disabled because it isn’t installed yet.' => '"{plugin}" nie może być wyłączona, ponieważ nie jest jeszcze zainstalowana.', '“{plugin}” can’t be enabled because it isn’t installed yet.' => '"{plugin}" nie może być włączona, ponieważ nie jest jeszcze zainstalowana.', '…Or use one of your field groups as a starting point:' => '...lub użyj jednej z grup pól jako punkt wyjścia', -); +); \ No newline at end of file diff --git a/src/translations/pt.php b/src/translations/pt.php index 1f84d7de294..507892bb9ad 100644 --- a/src/translations/pt.php +++ b/src/translations/pt.php @@ -101,6 +101,7 @@ 'Are you sure you want to uninstall {plugin}? You will lose all of its associated data.' => 'Tem certeza de que deseja desinstalar {plugin}? Você vai perder todos os seus dados associados.', 'Area' => 'Área', 'Ascending' => 'Ascendente', + 'Ask on Stack Exchange' => 'Pergunte no Stack Exchange', 'Asset caches' => 'Caches de arquivos', 'Asset indexing data' => 'Indexação de dados de arquivo', 'Asset Settings' => 'Configurações de arquivos', @@ -134,7 +135,10 @@ 'Bottom-Center' => 'Inferior-Centro', 'Bottom-Left' => 'Inferior-Esquerdo', 'Bottom-Right' => 'Inferior-Direito', + 'Briefly describe your issue or idea.' => 'Descreva resumidamente seu problema ou ideia.', + 'Briefly describe your question.' => 'Descreva resumidamente sua pergunta.', 'Bucket' => 'Bucket', + 'Bug reports and feature requests' => 'Relatórios de bugs e pedidos de recursos', 'Business name' => 'Nome da empresa', 'Business tax ID' => 'CNPJ da empresa', 'Buy now' => 'Comprar agora', @@ -203,7 +207,6 @@ 'Column Type' => 'Tipo de coluna', 'Compiled templates' => 'Templates compilados', 'Compressed' => 'Comprimido', - 'Config' => 'Configuração', 'Configuration' => 'Configuração', 'Congrats! You’re up-to-date.' => 'Parabéns! Você está atualizado.', 'Connection information not found!' => 'Informações de conexão não encontrada!', @@ -262,7 +265,6 @@ 'Couldn’t save user.' => 'Não foi possível salvar o usuário.', 'Couldn’t save widget.' => 'Não foi possível salvar o widget.', 'Couldn’t send activation email. Check your email settings.' => 'Não foi possível enviar o e-mail de ativação. Verifique suas configurações de e-mail.', - 'Couldn’t send your message. Please email it to {email} instead.' => 'Não foi possível enviar sua mensagem. Por favor, a envie por e-mail para {email}.', 'Couldn’t suspend user.' => 'Não foi possível suspender o usuário.', 'Couldn’t uninstall plugin.' => 'Não foi possível desinstalar o plugin.', 'Couldn’t unsuspended user.' => 'Não foi possível desfazer a suspensão do usuário.', @@ -284,6 +286,7 @@ 'Craft is unable to transfer your license to this domain at this time.' => 'Neste momento, Craft não pode transferir sua licença para esse domínio.', 'Craft requires the PDO extension to operate.' => 'Craft requer a extensão PDO para funcionar.', 'Craft requires the PDO_MYSQL driver to operate.' => 'Craft requer o driver PDO_MYSQL para operar.', + 'Craft Support' => 'Suporte Craft', 'Craft was unable to install this update :(' => 'Craft não foi capaz de instalar a atualização :(', 'Craft {edition} is required to perform this action.' => 'Craft {edition} é necessário para executar essa ação.', 'Craft’s Terms and Conditions have changed.' => 'Os Termos e Condições do Craft mudaram.', @@ -484,9 +487,10 @@ 'General Settings' => 'Configurações Gerais', 'General settings saved.' => 'As configurações gerais foram salvas.', 'Generating pending image transforms' => 'Gerando transformações de imagem pendentes', - 'Get Help' => 'Obter ajuda', + 'Get help' => 'Obtenha ajuda', 'GET Info' => 'GET Info', 'GET param “{name}” doesn’t exist.' => 'Parâmetro GET “{name}” não existe.', + 'Give feedback' => 'Forneça feedback', 'Give your tab a name.' => 'Dê um nome a sua aba.', 'Global' => 'Global', 'Global Set Name' => 'Nome do Conjunto Global', @@ -524,8 +528,10 @@ 'How you’ll refer to this global set in the templates.' => 'Como você vai se referir a este conjunto global nos templates.', 'How you’ll refer to this section in the templates.' => 'Como você vai se referir a essa seção nos templates.', 'How you’ll refer to this tag group in the templates.' => 'Como você vai se referir a esse grupo de tags em seus templates.', + 'How-to’s and other questions' => 'Instruções e outras perguntas', 'HTML' => 'HTML', 'HTML Email Template' => 'Template de e-mail HTML', + 'HTML Purifier Config' => 'Ajustes do HTML Purifier', 'http://example.com/path/to/folder/' => 'http://exemplo.com/caminho/para/pasta/', 'HttpRequestService::close() cannot be called after content has been output.' => 'HttpRequestService::close() não pode ser chamado após a saída do conteúdo.', 'I agree.' => 'Eu concordo.', @@ -756,6 +762,7 @@ 'Oops!' => 'Ops!', 'Option Label' => 'Opção de etiqueta', 'Options' => 'Opções', + 'or send to Craft Support' => 'ou envie para o Suporte Craft', 'Origin' => 'Origem', 'Our site is temporarily unavailable. Please try again later.' => 'O site está temporariamente indisponível. Por favor, tente novamente mais tarde.', 'Page Not Found' => 'Página não encontrada', @@ -793,6 +800,7 @@ 'Position Select' => 'Select de posição', 'Post a new {section} entry' => 'Postar uma nova entrada em {section}', 'Post Date' => 'Data de postagem', + 'Post on GitHub' => 'Poste no GitHub', 'POST param “{name}” doesn’t exist.' => 'Parâmetro POST “{name}” não existe.', 'POST param “{name}” was invalid.' => 'O parâmetro “{name}” da PUBLICAÇÃO era inválido.', 'Powered by Craft CMS' => 'Fornecido por Craft CMS', @@ -820,6 +828,7 @@ 'Recent Entries' => 'Entradas recentes', 'Recent Versions' => 'Versões recentes', 'Recent {section} Entries' => 'Entradas recentes {section}', + 'Redactor Config' => 'Ajustes do Redactor', 'Refresh' => 'Atualizar', 'Region' => 'Região', 'Register a new user' => 'Registrar um novo usuário', @@ -893,7 +902,6 @@ 'Select transform' => 'Selecione a transformação', 'Selection Label' => 'Etiqueta de seleção', 'Send' => 'Enviar', - 'Send a message to Craft CMS Support' => 'Enviar uma mensagem para o suporte de Craft CMS', 'Send activation email' => 'Enviar e-mail de ativação', 'Send an activation email now?' => 'Enviar um e-mail de ativação agora?', 'Send for help' => 'Enviar para ajuda', @@ -926,6 +934,8 @@ 'Show time' => 'Mostar hora', 'Show/hide children' => 'Mostrar/Esconder filhos', 'Sign out' => 'Sair', + 'Similar issues on GitHub' => 'Problemas semelhantes no GitHub', + 'Similar questions on Stack Exchange' => 'Perguntas semelhantes no Stack Exchange', 'Single' => 'Único', 'Single-line Text' => 'Única linha de texto', 'Singles' => 'Páginas simples', @@ -975,7 +985,6 @@ 'Tag Groups' => 'Grupos de tag', 'Tags' => 'Tags', 'Target Locale' => 'Localidade Alvo', - 'Tell us about your problems.' => 'Conte-nos sobre os seus problemas.', 'Temp files' => 'Arquivos temporários', 'Template caches' => 'Caches de template', 'Template Error' => 'Erro de template', @@ -1261,11 +1270,10 @@ 'Years' => 'Anos', 'Yesterday' => 'Ontem', 'yii' => 'Yii', - 'You can save custom Redactor configs as .json files in craft/config/redactor/.' => 'Você pode salvar configurações personalizadas do Redactor como arquivos .json em craft/config/redactor/.', + 'You can save custom {name} configs as {ext} files in {path}.' => 'Você pode salvar ajustes personalizados do {name} como arquivos {ext} em {path}.', 'You cannot access the CP while the system is offline with that account.' => 'Você não pode acessar o CP enquanto o sistema estiver offline com essa conta.', 'You cannot access the CP with that account.' => 'Você não pode acessar o CP com essa conta.', 'You cannot access the site while the system is offline with that account.' => 'Você não pode acessar o site, com sua conta, enquanto o sistema está offline.', - 'You don’t have any Redactor configs yet.' => 'Você não tem nenhuma Redactor configs ainda.', 'You don’t have any widgets yet.' => 'Você não tem nenhum widget ainda.', 'You don’t have the proper credentials to access this page.' => 'Você não tem as credenciais adequadas para acessar esta página.', 'You don’t have the required permissions for this operation.' => 'Você não tem as permissões necessárias para essa operação.', diff --git a/src/translations/ru.php b/src/translations/ru.php index b2eba72888c..f2c9c7aa268 100644 --- a/src/translations/ru.php +++ b/src/translations/ru.php @@ -101,6 +101,7 @@ 'Are you sure you want to uninstall {plugin}? You will lose all of its associated data.' => 'Вы уверены, что хотите удалить {plugin}? Вы потеряете все связанные с ним данные.', 'Area' => 'Область', 'Ascending' => 'По возрастанию', + 'Ask on Stack Exchange' => 'Спросить на Stack Exchange', 'Asset caches' => 'Кеши ресурсов', 'Asset indexing data' => 'Данные индексации ресурса', 'Asset Settings' => 'Настройки ресурса', @@ -134,7 +135,10 @@ 'Bottom-Center' => 'Внизу посередине', 'Bottom-Left' => 'Внизу слева', 'Bottom-Right' => 'Bottom-Right', + 'Briefly describe your issue or idea.' => 'Кратко опишите вашу проблему или идею.', + 'Briefly describe your question.' => 'Кратко опишите ваш вопрос.', 'Bucket' => 'Bucket', + 'Bug reports and feature requests' => 'Отчет об ошибках и запросы на функции', 'Business name' => 'Название компании', 'Business tax ID' => 'ID для уплаты налога на прибыль предприятий', 'Buy now' => 'Купить сейчас', @@ -203,7 +207,6 @@ 'Column Type' => 'Тип колонки', 'Compiled templates' => 'Скомпилированные шаблоны', 'Compressed' => 'Сжатый', - 'Config' => 'Конфигурация', 'Configuration' => 'Конфигурация', 'Congrats! You’re up-to-date.' => 'Поздравляем! У вас самая актуальная версия системы.', 'Connection information not found!' => 'Информация о подключении не найдена!', @@ -262,7 +265,6 @@ 'Couldn’t save user.' => 'Не удалось сохранить пользователя.', 'Couldn’t save widget.' => 'Не удалось сохранить виджет.', 'Couldn’t send activation email. Check your email settings.' => 'Не удалось отправить активационное письмо. Проверьте настройки электронной почты.', - 'Couldn’t send your message. Please email it to {email} instead.' => 'Не удалось отправить сообщение. Пожалуйста, отправьте его на {email} вместо этого.', 'Couldn’t suspend user.' => 'Не удалось приостановить действие данного пользователя.', 'Couldn’t uninstall plugin.' => 'Не удалось удалить плагин.', 'Couldn’t unsuspended user.' => 'Не удалось восстановить пользователя.', @@ -284,6 +286,7 @@ 'Craft is unable to transfer your license to this domain at this time.' => 'В настоящее время Craft не может перевести вашу лицензию на этот домен.', 'Craft requires the PDO extension to operate.' => 'Для работы Craft требуется установленное расширение PDO.', 'Craft requires the PDO_MYSQL driver to operate.' => 'Для работы Craft требуется драйвер PDO_MYSQL.', + 'Craft Support' => 'Служба поддержки Craft', 'Craft was unable to install this update :(' => 'Craft удалось установить это обновление :(', 'Craft {edition} is required to perform this action.' => 'Для выполнения этого действия требуется Craft {edition}', 'Craft’s Terms and Conditions have changed.' => 'Условия и положения Craft изменились.', @@ -484,9 +487,10 @@ 'General Settings' => 'Общие настройки', 'General settings saved.' => 'Общие настройки сохранены.', 'Generating pending image transforms' => 'Генерация преобразований ожидающих изображений', - 'Get Help' => 'Получить помощь', + 'Get help' => 'Получить помощь', 'GET Info' => 'GET Info', 'GET param “{name}” doesn’t exist.' => 'GET параметр “{name}” не существует.', + 'Give feedback' => 'Оставить отзыв', 'Give your tab a name.' => 'Дайте вкладке имя.', 'Global' => 'Глобальная переменная', 'Global Set Name' => 'Название глобального набора данных', @@ -524,8 +528,10 @@ 'How you’ll refer to this global set in the templates.' => 'Как вы будете обращаться к этому глобальному набору данных в шаблонах.', 'How you’ll refer to this section in the templates.' => 'Как вы будете обращаться к этому разделу в шаблонах.', 'How you’ll refer to this tag group in the templates.' => 'Как вы будете обращаться к этой группе тегов в шаблонах.', + 'How-to’s and other questions' => 'Инструкции и другие вопросы', 'HTML' => 'HTML', 'HTML Email Template' => 'HTML шаблон письма', + 'HTML Purifier Config' => 'Настройка HTML Purifier', 'http://example.com/path/to/folder/' => 'http://example.com/путь/до/папки/', 'HttpRequestService::close() cannot be called after content has been output.' => 'HttpRequestService::close() не может быть вызван после того как контент уже был возвращен.', 'I agree.' => 'Я согласен.', @@ -756,6 +762,7 @@ 'Oops!' => 'Ой!', 'Option Label' => 'Метка варианта', 'Options' => 'Параметры', + 'or send to Craft Support' => 'или отправить в Службу поддержки Craft', 'Origin' => 'Происхождение', 'Our site is temporarily unavailable. Please try again later.' => 'Наш сайт временно недоступен. Пожалуйста, попробуйте зайти позже.', 'Page Not Found' => 'Страница не найдена', @@ -793,6 +800,7 @@ 'Position Select' => 'Выбор позиции', 'Post a new {section} entry' => 'Создать новую запись в разделе {section}', 'Post Date' => 'Дата публикации', + 'Post on GitHub' => 'Опубликовать на GitHub', 'POST param “{name}” doesn’t exist.' => 'POST параметр “{name}” не существует.', 'POST param “{name}” was invalid.' => 'Параметр POST “{name}” был некорректным.', 'Powered by Craft CMS' => 'Создано на платформе Craft CMS', @@ -820,6 +828,7 @@ 'Recent Entries' => 'Последние записи', 'Recent Versions' => 'Последние версии', 'Recent {section} Entries' => 'Свежие записи раздела {section}', + 'Redactor Config' => 'Настройка Redactor', 'Refresh' => 'Обновить', 'Region' => 'Регион', 'Register a new user' => 'Зарегистрировать нового пользователя', @@ -893,7 +902,6 @@ 'Select transform' => 'Выбрать преобразование', 'Selection Label' => 'Метка выбора', 'Send' => 'Отправить', - 'Send a message to Craft CMS Support' => 'Отправить сообщение в службу поддержки Craft CMS', 'Send activation email' => 'Отправить письмо для активации', 'Send an activation email now?' => 'Отправить письмо активации сейчас?', 'Send for help' => 'Попросить о помощи', @@ -927,6 +935,8 @@ 'Show time' => 'Показать время', 'Show/hide children' => 'Показать/скрыть дочерние элементы ', 'Sign out' => 'Выйти', + 'Similar issues on GitHub' => 'Похожие проблемы на GitHub', + 'Similar questions on Stack Exchange' => 'Похожие вопросы на Stack Exchange', 'Single' => 'Страница', 'Single-line Text' => 'Однострочный текст', 'Singles' => 'Синглы', @@ -976,7 +986,6 @@ 'Tag Groups' => 'Группы тегов', 'Tags' => 'Теги', 'Target Locale' => 'Целевая локализация', - 'Tell us about your problems.' => 'Расскажите нам о своих проблемах.', 'Temp files' => 'Временные файлы', 'Template caches' => 'Кэши шаблона', 'Template Error' => 'Ошибка шаблона', @@ -1261,11 +1270,10 @@ 'Years' => 'лет', 'Yesterday' => 'вчера', 'yii' => 'yii', - 'You can save custom Redactor configs as .json files in craft/config/redactor/.' => 'Вы можете сохранять пользовательские Redactor конфиги как JSON файлы в craft/config/redactor/.', + 'You can save custom {name} configs as {ext} files in {path}.' => 'Вы можете сохранить пользовательские настройки {name} как файлы {ext} в {path}.', 'You cannot access the CP while the system is offline with that account.' => 'Вам не разрешен доступ в панель управления, когда система работает в автономном режиме.', 'You cannot access the CP with that account.' => 'Вы не можете получить доступ к панели управления с этой учетной записью.', 'You cannot access the site while the system is offline with that account.' => 'Вы не можете зайти на сайт, пока система находится вне сети для этой учетной записи.', - 'You don’t have any Redactor configs yet.' => 'У вас пока нет никаких настроек редактора.', 'You don’t have any widgets yet.' => 'У вас пока что нет виджетов.', 'You don’t have the proper credentials to access this page.' => 'У вашей учетной записи нет прав для доступа к этой странице', 'You don’t have the required permissions for this operation.' => 'У вас необходимых прав для выполнения этой операции.', diff --git a/src/translations/sk.php b/src/translations/sk.php index c92f57a9d9f..ed719b86427 100644 --- a/src/translations/sk.php +++ b/src/translations/sk.php @@ -101,6 +101,7 @@ 'Are you sure you want to uninstall {plugin}? You will lose all of its associated data.' => 'Určite odinštalovať {plugin}? Stratia sa všetky s ním súvisiace údaje.', 'Area' => 'Oblasť', 'Ascending' => 'Vzostupne', + 'Ask on Stack Exchange' => 'Spýtajte sa na stránkach Stack Exchange', 'Asset caches' => 'Asset cache', 'Asset indexing data' => 'Údaje Asset indexov', 'Asset Settings' => 'Asset nastavenia', @@ -134,7 +135,10 @@ 'Bottom-Center' => 'Dole v strede', 'Bottom-Left' => 'Vľavo dole', 'Bottom-Right' => 'Vpravo dole', + 'Briefly describe your issue or idea.' => 'Stručne opíšte svoj problém alebo nápad.', + 'Briefly describe your question.' => 'Stručne opíšte svoju otázku.', 'Bucket' => 'Bucket', + 'Bug reports and feature requests' => 'Správy o chybách a požiadavky na funkcie', 'Business name' => 'Obchodné meno', 'Business tax ID' => 'DIČ', 'Buy now' => 'Kúpiť teraz', @@ -203,7 +207,6 @@ 'Column Type' => 'Typ Stĺpca', 'Compiled templates' => 'Kompilované šablóny', 'Compressed' => 'Komprimované', - 'Config' => 'Konfigurácia', 'Configuration' => 'Konfigurácia', 'Congrats! You’re up-to-date.' => 'Gratulujem! Všetko je aktuálne.', 'Connection information not found!' => 'Informácie o pripojení neboli nájdené!', @@ -262,7 +265,6 @@ 'Couldn’t save user.' => 'Nemožno uložiť užívateľa.', 'Couldn’t save widget.' => 'Nemožno uložiť widget.', 'Couldn’t send activation email. Check your email settings.' => 'Aktivačný e-mail sa nepodarilo odoslať. Skontrolujte si nastavenia e-mailov.', - 'Couldn’t send your message. Please email it to {email} instead.' => 'Nepodarilo sa odoslať správu. Prosím, pošlite ju namiesto toho na {email}.', 'Couldn’t suspend user.' => 'Používateľa nemôžete pozastaviť.', 'Couldn’t uninstall plugin.' => 'Nemožno odinštalovať plugin.', 'Couldn’t unsuspended user.' => 'Pozastaveného používateľa nemožno vrátiť.', @@ -284,6 +286,7 @@ 'Craft is unable to transfer your license to this domain at this time.' => 'Craft v tejto chvíli nemôže licenciu previesť na túto doménu.', 'Craft requires the PDO extension to operate.' => 'Craft vyžaduje v prevádzke rozšírenie PDO.', 'Craft requires the PDO_MYSQL driver to operate.' => 'Craft potrebuje spustený PDO_MYSQL driver.', + 'Craft Support' => 'Podpora Craft', 'Craft was unable to install this update :(' => 'Craft túto aktualizáciu nemohol nainštalovať :(', 'Craft {edition} is required to perform this action.' => 'Na vykonanie tejto akcie je potrebný Craft {edition}.', 'Craft’s Terms and Conditions have changed.' => 'Craft zmenil svoje zmluvné podmienky.', @@ -484,9 +487,10 @@ 'General Settings' => 'Všeobecné Nastavenia', 'General settings saved.' => 'Všeobecné nastavenia uložené.', 'Generating pending image transforms' => 'Generovanie čakajúcich transformácií obrazu', - 'Get Help' => 'Získať Pomoc', + 'Get help' => 'Získať pomoc', 'GET Info' => 'GET Info', 'GET param “{name}” doesn’t exist.' => 'GET parameter „{name}“ neexistuje.', + 'Give feedback' => 'Dať spätnú väzbu', 'Give your tab a name.' => 'Daj svojej karte názov.', 'Global' => 'Globál', 'Global Set Name' => 'Názov Sady Globálov', @@ -524,8 +528,10 @@ 'How you’ll refer to this global set in the templates.' => 'Ako sa bude na túto sadu globálov odkazovať v šablónach.', 'How you’ll refer to this section in the templates.' => 'Ako sa bude na túto sekciu odkazovať v šablónach.', 'How you’ll refer to this tag group in the templates.' => 'Ako sa bude na túto skupinu tagov odkazovať v šablónach.', + 'How-to’s and other questions' => 'Otázky začínajúce slovom "Ako" a iné otázky', 'HTML' => 'HTML', 'HTML Email Template' => 'HTML Šablóna Emailu', + 'HTML Purifier Config' => 'HTML Konfigurácia čističa', 'http://example.com/path/to/folder/' => 'http://priklad.sk/cesta/do/adresara/', 'HttpRequestService::close() cannot be called after content has been output.' => 'HttpRequestService::close() sa nedá volať keď je už obsah na výstupe.', 'I agree.' => 'Súhlasím.', @@ -756,6 +762,7 @@ 'Oops!' => 'No nazdar!', 'Option Label' => 'Označenie Možnosti', 'Options' => 'Možnosti', + 'or send to Craft Support' => 'alebo pošlite do podpory Craft ', 'Origin' => 'Pôvod', 'Our site is temporarily unavailable. Please try again later.' => 'Naša stránka je dočasne nedostupná. Prosím, skúste znova neskôr.', 'Page Not Found' => 'Stránka Nebola Nájdená', @@ -793,6 +800,7 @@ 'Position Select' => 'Výber Pozície', 'Post a new {section} entry' => 'Pridať nový {section} záznam', 'Post Date' => 'Dátum Príspevku', + 'Post on GitHub' => 'Zverejniť na stránke GitHub', 'POST param “{name}” doesn’t exist.' => 'POST parameter „{name}“ neexistuje.', 'POST param “{name}” was invalid.' => 'Parameter POST s názvom „{name}“ bol neplatný.', 'Powered by Craft CMS' => 'Používa redakčný systém Craft CMS', @@ -820,6 +828,7 @@ 'Recent Entries' => 'Nedávne Záznamy', 'Recent Versions' => 'Posledné Verzie', 'Recent {section} Entries' => 'Nedávne {section} Záznamy', + 'Redactor Config' => 'Konfigurácia redaktora', 'Refresh' => 'Obnoviť', 'Region' => 'Región', 'Register a new user' => 'Registrovať nového užívateľa', @@ -893,7 +902,6 @@ 'Select transform' => 'Vybrať transformáciu', 'Selection Label' => 'Označenie výberu', 'Send' => 'Odoslať', - 'Send a message to Craft CMS Support' => 'Poslať správu podpore Craft CMS', 'Send activation email' => 'Poslať aktivačný email', 'Send an activation email now?' => 'Poslať aktivačný email teraz?', 'Send for help' => 'Poslať pre pomoc', @@ -926,6 +934,8 @@ 'Show time' => 'Zobraziť čas', 'Show/hide children' => 'Zobraziť/skryť dcérske elementy', 'Sign out' => 'Odhlásiť sa', + 'Similar issues on GitHub' => 'Podobné problémy na stránke GitHub', + 'Similar questions on Stack Exchange' => 'Podobné otázky na stránkach Stack Exchange', 'Single' => 'Samostatná stránka', 'Single-line Text' => 'Jednoriadkový Text', 'Singles' => 'Samostatné stránky', @@ -975,7 +985,6 @@ 'Tag Groups' => 'Skupiny Tagov', 'Tags' => 'Tagy', 'Target Locale' => 'Cieľová Lokalizácia', - 'Tell us about your problems.' => 'Povedzte nám o svojich problémoch.', 'Temp files' => 'Dočasné súbory', 'Template caches' => 'Cache šablón', 'Template Error' => 'Chyba Šablóny', @@ -1260,11 +1269,10 @@ 'Years' => 'Roky', 'Yesterday' => 'Včera', 'yii' => 'yii', - 'You can save custom Redactor configs as .json files in craft/config/redactor/.' => 'Je možné uložiť vlastné konfiguračné súbory pre Redactor ako sú .json súbory v craft/config/redaktor/.', + 'You can save custom {name} configs as {ext} files in {path}.' => 'Uložte si nastavené {name} konfigurácie ako {ext} súbory v {path}.', 'You cannot access the CP while the system is offline with that account.' => 'S týmto účtom nemožno získať prístup k ovládaciemu panelu, keď je systém v režime offline.', 'You cannot access the CP with that account.' => 'S tým účtom nemožno získať prístup k ovládaciemu panelu.', 'You cannot access the site while the system is offline with that account.' => 'S daným účtom nemáte na stránku prístup, pokiaľ systém nemá sieťové pripojenie.', - 'You don’t have any Redactor configs yet.' => 'Zatiaľ nemáte žiadne nastavenia redaktorov.', 'You don’t have any widgets yet.' => 'Zatiaľ nemáš žiadne widgety.', 'You don’t have the proper credentials to access this page.' => 'Pre prístup k tejto stránke nemáš náležité poverenia.', 'You don’t have the required permissions for this operation.' => 'Pre túto operáciu nemáš potrebné oprávnenia.', diff --git a/src/translations/sv.php b/src/translations/sv.php index 7576b3d3b80..214012b1649 100644 --- a/src/translations/sv.php +++ b/src/translations/sv.php @@ -101,6 +101,7 @@ 'Are you sure you want to uninstall {plugin}? You will lose all of its associated data.' => 'Är du säker på att du vill avinstallera {plugin}? Du kommer att förlora alla associerade data.', 'Area' => 'Område', 'Ascending' => 'Stigande', + 'Ask on Stack Exchange' => 'Fråga på Stack Exchange', 'Asset caches' => 'Tillgång i cachar', 'Asset indexing data' => 'Resursers indexdata', 'Asset Settings' => 'Inställningar för tillgångar', @@ -134,7 +135,10 @@ 'Bottom-Center' => 'Botten-Centrerad', 'Bottom-Left' => 'Längst ner till vänster', 'Bottom-Right' => 'Längst ner till höger', + 'Briefly describe your issue or idea.' => 'Beskriv kortfattat ditt problem eller idé.', + 'Briefly describe your question.' => 'Beskriv kortfattat din fråga.', 'Bucket' => 'Bucket', + 'Bug reports and feature requests' => 'Felrapporter och funktionsförfrågningar', 'Business name' => 'Företagets namn', 'Business tax ID' => 'Företagsskattenummer', 'Buy now' => 'Köp nu', @@ -203,7 +207,6 @@ 'Column Type' => 'Kolumntyp', 'Compiled templates' => 'Sammanställda mallar', 'Compressed' => 'Komprimerad', - 'Config' => 'Konfig', 'Configuration' => 'Konfigurering', 'Congrats! You’re up-to-date.' => 'Grattis! Du är uppdaterad.', 'Connection information not found!' => 'Ingen information om anslutning hittades!', @@ -262,7 +265,6 @@ 'Couldn’t save user.' => 'Kunde inte spara användaren.', 'Couldn’t save widget.' => 'Det gick inte att spara widgeten.', 'Couldn’t send activation email. Check your email settings.' => 'Kunde inte skicka aktiveringsmail. Kontrollera dina e-postinställningar.', - 'Couldn’t send your message. Please email it to {email} instead.' => 'Ditt meddelande kunde inte skickas. Skicka det till {email} i stället.', 'Couldn’t suspend user.' => 'Det gick inte att suspendera användaren.', 'Couldn’t uninstall plugin.' => 'Kunde inte avinstallera plugin:en.', 'Couldn’t unsuspended user.' => 'Det gick inte att återaktivera användaren.', @@ -284,6 +286,7 @@ 'Craft is unable to transfer your license to this domain at this time.' => 'Craft kunde inte föra över din licens till denna domän just nu.', 'Craft requires the PDO extension to operate.' => 'För att Craft ska fungera krävs PHP-tillägget PDO.', 'Craft requires the PDO_MYSQL driver to operate.' => 'Craft kräver att PDO_MYSQL-drivern körs.', + 'Craft Support' => 'Craftsupport', 'Craft was unable to install this update :(' => 'Craft kunde inte installera den här uppdateringen :(', 'Craft {edition} is required to perform this action.' => 'Craft {edition} krävs för denna åtgärd.', 'Craft’s Terms and Conditions have changed.' => 'Crafts Villkor har ändrats.', @@ -484,9 +487,10 @@ 'General Settings' => 'Allmänna inställningar', 'General settings saved.' => 'Allmänna inställningar sparade.', 'Generating pending image transforms' => 'Genererar pågående bildtransformationer', - 'Get Help' => 'Få Hjälp', + 'Get help' => 'Få hjälp', 'GET Info' => 'GET info', 'GET param “{name}” doesn’t exist.' => 'HÄMTA param “{name}” finns inte.', + 'Give feedback' => 'Ge feedback', 'Give your tab a name.' => 'Namnge din flik.', 'Global' => 'Global', 'Global Set Name' => 'Namn på global uppsättning', @@ -524,8 +528,10 @@ 'How you’ll refer to this global set in the templates.' => 'Hur du hänvisar till denna uppsättning globala inställningar i mallarna.', 'How you’ll refer to this section in the templates.' => 'Hur du hänvisar till denna sektion i mallarna.', 'How you’ll refer to this tag group in the templates.' => 'Hur denna taggrupp hänvisas i mallarna.', + 'How-to’s and other questions' => 'Instruktioner och andra frågor', 'HTML' => 'HTML', 'HTML Email Template' => 'HTML e-postmall', + 'HTML Purifier Config' => 'HTML Purifier-inställningar', 'http://example.com/path/to/folder/' => 'http://example.com/sökväg/till/mapp/', 'HttpRequestService::close() cannot be called after content has been output.' => 'HttpRequestService::close() kan inte anropas efter att innehållet har matats ut.', 'I agree.' => 'Jag accepterar.', @@ -756,6 +762,7 @@ 'Oops!' => 'Hoppsan!', 'Option Label' => 'Etikett för alternativ', 'Options' => 'Alternativ', + 'or send to Craft Support' => 'eller skicka till Craft-support', 'Origin' => 'Härkomst', 'Our site is temporarily unavailable. Please try again later.' => 'Vår sajt är tillfälligt otillgänglig. Försök igen senare.', 'Page Not Found' => 'Sidan kunde inte hittas', @@ -793,6 +800,7 @@ 'Position Select' => 'Val av position', 'Post a new {section} entry' => 'Gör ett nytt inlägg i {section}', 'Post Date' => 'Datum för inlägg', + 'Post on GitHub' => 'Publicera på GitHub', 'POST param “{name}” doesn’t exist.' => 'Det finns ingen POST med namnet “{name}”.', 'POST param “{name}” was invalid.' => 'POST-parametern “{name}” var ogiltig.', 'Powered by Craft CMS' => 'Drivs av Craft CMS', @@ -820,6 +828,7 @@ 'Recent Entries' => 'Senaste inläggen', 'Recent Versions' => 'Senaste versionerna', 'Recent {section} Entries' => 'Senaste {section} inmatningar', + 'Redactor Config' => 'Redactor-inställningar', 'Refresh' => 'Uppdatera', 'Region' => 'Område', 'Register a new user' => 'Registrera en ny användare', @@ -893,7 +902,6 @@ 'Select transform' => 'Välj förändra', 'Selection Label' => 'Selection Label', 'Send' => 'Sänd', - 'Send a message to Craft CMS Support' => 'Skicka ett meddelande till Craft CMS Support', 'Send activation email' => 'Skicka aktiverings-e-post', 'Send an activation email now?' => 'Skicka ett aktiverings-e-postmeddelande nu?', 'Send for help' => 'Skicka efter hjälp', @@ -926,6 +934,8 @@ 'Show time' => 'Visa tid', 'Show/hide children' => 'Visa/dölj children', 'Sign out' => 'Logga ut', + 'Similar issues on GitHub' => 'Liknande problem på GitHub', + 'Similar questions on Stack Exchange' => 'Liknande frågor på GitHub', 'Single' => 'Singel', 'Single-line Text' => 'Enradig text', 'Singles' => 'Singlar', @@ -975,7 +985,6 @@ 'Tag Groups' => 'Taggrupper', 'Tags' => 'Taggar', 'Target Locale' => 'Målets språkversion', - 'Tell us about your problems.' => 'Berätta om de problem du stött på.', 'Temp files' => 'Temp filer', 'Template caches' => 'Mallars cache', 'Template Error' => 'Mallfel', @@ -1260,11 +1269,10 @@ 'Years' => 'År', 'Yesterday' => 'Igår', 'yii' => 'yii', - 'You can save custom Redactor configs as .json files in craft/config/redactor/.' => 'Du kan spara anpassade "Redactor-inställningar" som .json-filer i craft/config/redactor/.', + 'You can save custom {name} configs as {ext} files in {path}.' => 'Du kan spara anpassade {name}-inställningar som {ext}-filer i {path}.', 'You cannot access the CP while the system is offline with that account.' => 'Med detta konto kan du ej komma åt kontrollpanelen när systemet är offline.', 'You cannot access the CP with that account.' => 'Du kan inte komma in i CP med det kontot.', 'You cannot access the site while the system is offline with that account.' => 'Du kan inte komma åt sidan när systemet är offline med det kontot.', - 'You don’t have any Redactor configs yet.' => 'Ni har inga Redactor-konfigurationer ännu.', 'You don’t have any widgets yet.' => 'Du har inga widgets ännu.', 'You don’t have the proper credentials to access this page.' => 'Den inloggningsinformation som du har angett ger dig inte åtkomst till denna sida.', 'You don’t have the required permissions for this operation.' => 'Du har inte behörighet att utföra denna åtgärd.', diff --git a/src/translations/tr.php b/src/translations/tr.php index 81e4e09c4a0..77ea00802b4 100644 --- a/src/translations/tr.php +++ b/src/translations/tr.php @@ -101,6 +101,7 @@ 'Are you sure you want to uninstall {plugin}? You will lose all of its associated data.' => '{plugin} ve bağlı tüm veriyi silmek istediğinize emin misiniz?', 'Area' => 'Alan', 'Ascending' => 'Artan', + 'Ask on Stack Exchange' => 'Yığın Değiştirme\'de sor', 'Asset caches' => 'Dosya ön bellekleri', 'Asset indexing data' => 'Dosya dizinleme verisi', 'Asset Settings' => 'Dosya Ayarları', @@ -134,7 +135,10 @@ 'Bottom-Center' => 'Alt-Orta', 'Bottom-Left' => 'Alt-Sol', 'Bottom-Right' => 'Alt-Sağ', + 'Briefly describe your issue or idea.' => 'Kısaca durumunu veya fikrini açıkla', + 'Briefly describe your question.' => 'Kısaca sorunu açıkla', 'Bucket' => 'Hazne', + 'Bug reports and feature requests' => 'Arıza raporları ve özellik istekleri', 'Business name' => 'İş adı', 'Business tax ID' => 'İş vergi kimlik numarası', 'Buy now' => 'Şimdi satın al', @@ -203,7 +207,6 @@ 'Column Type' => 'Kolon Tipi', 'Compiled templates' => 'Derlenmiş şablonlar', 'Compressed' => 'Sıkıştırılmış', - 'Config' => 'Ayarlar', 'Configuration' => 'Konfigürasyon', 'Congrats! You’re up-to-date.' => 'Tebrikler! Güncelsiniz.', 'Connection information not found!' => 'Bağlantı bilgisi bulunamadı!', @@ -262,7 +265,6 @@ 'Couldn’t save user.' => 'Kullanıcı kaydedilemedi.', 'Couldn’t save widget.' => 'Bileşen kaydedilemedi.', 'Couldn’t send activation email. Check your email settings.' => 'Aktivaston emaili gönderilemiyor. Email ayarlarınızı kontrol edin.', - 'Couldn’t send your message. Please email it to {email} instead.' => 'Mesajınız gönderilemedi. Lütfen {email} adresine eposta olarak gönderiniz.', 'Couldn’t suspend user.' => 'Kullanıcı askıya alınamadı.', 'Couldn’t uninstall plugin.' => 'Eklenti kaldırılamadı.', 'Couldn’t unsuspended user.' => 'Kullanıcının askıya alınma durumu kaldırılamadı.', @@ -284,6 +286,7 @@ 'Craft is unable to transfer your license to this domain at this time.' => 'Craft lisansınızı bu alana taşıyamadı.', 'Craft requires the PDO extension to operate.' => 'Craft\'ın çalışması için PDO eklentisi gerekli.', 'Craft requires the PDO_MYSQL driver to operate.' => 'Craft çalışabilmek için PDO_MYSQL sürücüsüne ihtiyaç duymaktadır.', + 'Craft Support' => 'Craft Desteği', 'Craft was unable to install this update :(' => 'Craft güncellemeyi yükleyemedi :(', 'Craft {edition} is required to perform this action.' => 'Bu hareketi gerçekleştirebilmek için Craft {edition} gereklidir.', 'Craft’s Terms and Conditions have changed.' => 'Esnaf\'ın Şartlar ve Koşulları değişti.', @@ -484,9 +487,10 @@ 'General Settings' => 'Genel Ayarlar', 'General settings saved.' => 'Genel ayarlar kaydedildi.', 'Generating pending image transforms' => 'Beklemede olan resim dönüştürmeler yaratılıyor.', - 'Get Help' => 'Yardım Al', + 'Get help' => 'Yardım al', 'GET Info' => 'Bilgiyi GETİR', 'GET param “{name}” doesn’t exist.' => 'GET param “{name}” yok.', + 'Give feedback' => 'Geri bildirim ver', 'Give your tab a name.' => 'Sekmenize bir isim verin.', 'Global' => 'Genel Etiket', 'Global Set Name' => 'Genel Etiket Küme Adı', @@ -524,8 +528,10 @@ 'How you’ll refer to this global set in the templates.' => 'Bu genel etikete şablonlarda nasıl ulaşılacağı.', 'How you’ll refer to this section in the templates.' => 'Bu bölüme şablonlarda nasıl ulaşılacağı.', 'How you’ll refer to this tag group in the templates.' => 'Bu etiket grubuna şablonlarda nasıl ulaşılacağı.', + 'How-to’s and other questions' => 'Nasıl\'ımsı ve diğer sorular', 'HTML' => 'HTML', 'HTML Email Template' => 'HTML Eposta Şablonu', + 'HTML Purifier Config' => 'HTML Arıtıcı Yapılandırma', 'http://example.com/path/to/folder/' => 'http://ornek.com/klasore/giden/yol', 'HttpRequestService::close() cannot be called after content has been output.' => 'İçerik çıkarıldıktan sonra HttpRequestService::close() çağırılamaz.', 'I agree.' => 'Kabul ediyorum.', @@ -756,6 +762,7 @@ 'Oops!' => 'Ay!', 'Option Label' => 'Seçenek Etiketi', 'Options' => 'Seçenekler', + 'or send to Craft Support' => 'veya Craft Desteğe gönder', 'Origin' => 'Köken', 'Our site is temporarily unavailable. Please try again later.' => 'Sitemiz geçici olarak kullanılamıyor. Lütfen daha sonra tekrar deneyin.', 'Page Not Found' => 'Sayfa Bulunamadı', @@ -793,6 +800,7 @@ 'Position Select' => 'Pozisyon Seçici', 'Post a new {section} entry' => 'Yeni bir {section} kaydı yayınla.', 'Post Date' => 'Yayın Tarihi', + 'Post on GitHub' => 'Github\'dan postala', 'POST param “{name}” doesn’t exist.' => '“{name}” parametreli POST bulunamadı.', 'POST param “{name}” was invalid.' => 'POST değişkeni “{name}” geçersizdi.', 'Powered by Craft CMS' => 'Craft CMS tarafından desteklenmektedir', @@ -820,6 +828,7 @@ 'Recent Entries' => 'Son Kayıtlar', 'Recent Versions' => 'En Son Sürümler', 'Recent {section} Entries' => 'Son {section} Kayıtları', + 'Redactor Config' => 'Redükleyici Yapılandırma', 'Refresh' => 'Yenile', 'Region' => 'Bölge', 'Register a new user' => 'Yeni bir kullanıcı kaydı oluştur', @@ -893,7 +902,6 @@ 'Select transform' => 'Dönüştürücü Seç', 'Selection Label' => 'Seçim Etiketi', 'Send' => 'Gönder', - 'Send a message to Craft CMS Support' => 'Craft CMS Desteğe bir mesaj gönder', 'Send activation email' => 'Aktivasyon epostası gönder', 'Send an activation email now?' => 'Etkinleştirme epostasını şimdi gönder?', 'Send for help' => 'Yardım çağırt', @@ -926,6 +934,8 @@ 'Show time' => 'Zamanı göster', 'Show/hide children' => 'Alt maddeleri göster/sakla', 'Sign out' => 'Çıkış', + 'Similar issues on GitHub' => 'Github\'daki benzer durumlar', + 'Similar questions on Stack Exchange' => 'Yığın Değiştirme\' de benzer sorular', 'Single' => 'Tekil', 'Single-line Text' => 'Tek-satır Metin', 'Singles' => 'Tekiller', @@ -975,7 +985,6 @@ 'Tag Groups' => 'Etiket Grupları', 'Tags' => 'Etiketler', 'Target Locale' => 'Hedef Lokal', - 'Tell us about your problems.' => 'Bize problemlerinizi anlatın.', 'Temp files' => 'Geçici dosyalar', 'Template caches' => 'Şablon önbellekleri', 'Template Error' => 'Şablon Hatası', @@ -986,7 +995,7 @@ Gerkli ayarlar şu şekilde: -{% for key, setting in settings %}{{ key }}: {{ setting }}⏎ +{% for key, setting in settings %}{{ key }}: {{ setting }}⏎ {% endfor %}', 'test_email_heading' => 'Eposta ayarlarınızı test ederken:', @@ -1260,11 +1269,10 @@ 'Years' => 'Yıl', 'Yesterday' => 'Dün', 'yii' => 'yii', - 'You can save custom Redactor configs as .json files in craft/config/redactor/.' => 'Özel Redactor ayarlarını .json dosyası olarak craft/config/redactor/ klasörüne kaydedebilirsiniz.', + 'You can save custom {name} configs as {ext} files in {path}.' => '{path} içinde {ext} dosyaları şeklinde özel {name} yapılandırmalarınızı kaydedebilirsiniz', 'You cannot access the CP while the system is offline with that account.' => 'Bu hesap ile DP\'ne sistem kapalıyken giriş yapamazsınız.', 'You cannot access the CP with that account.' => 'Bu hesapla DP\'e giriş yapamazsınız.', 'You cannot access the site while the system is offline with that account.' => 'Sistem o hesapla çevrim dışıyken siteye erişemezsiniz.', - 'You don’t have any Redactor configs yet.' => 'Henüz Redaktör yapılandırmalarınız yok.', 'You don’t have any widgets yet.' => 'Daha hiçbir bileşen yok.', 'You don’t have the proper credentials to access this page.' => 'Bu sayfaya giriş yapmak için uygun kimlik bilgilerine sahip değilsiniz.', 'You don’t have the required permissions for this operation.' => 'Bu operasyon için gerekli izinlere sahip değilsiniz.', @@ -1316,4 +1324,4 @@ '“{plugin}” can’t be disabled because it isn’t installed yet.' => '“{plugin}” etkisizleştirilemiyor çünkü daha yüklenmemiş.', '“{plugin}” can’t be enabled because it isn’t installed yet.' => '“{plugin}” etkinleştirilemiyor çünkü yüklü değil.', '…Or use one of your field groups as a starting point:' => '...Veya başlamak için kendi alan gruplarınızdan birini kullanın:', -); +); \ No newline at end of file diff --git a/src/translations/zh.php b/src/translations/zh.php index 7387d58b5c1..572997aaa8d 100644 --- a/src/translations/zh.php +++ b/src/translations/zh.php @@ -100,6 +100,7 @@ 'Are you sure you want to uninstall {plugin}? You will lose all of its associated data.' => '确定要删除卸载 {plugin} 吗?您将丢失所有与之相关联的数据。', 'Area' => '区域', 'Ascending' => '升序', + 'Ask on Stack Exchange' => '在 Stack Exchange 上提问', 'Asset caches' => '资产缓存', 'Asset indexing data' => '资产索引数据', 'Asset Settings' => '资产设置', @@ -133,7 +134,10 @@ 'Bottom-Center' => '底部中心', 'Bottom-Left' => '左下角', 'Bottom-Right' => '右下角', + 'Briefly describe your issue or idea.' => '请简要描述您的问题或想法。', + 'Briefly describe your question.' => '请简要描述您的问题。', 'Bucket' => '存储桶', + 'Bug reports and feature requests' => '错误报告和功能请求', 'Business name' => '公司名称', 'Business tax ID' => '营业税号', 'Buy now' => '现在购买', @@ -202,7 +206,6 @@ 'Column Type' => '列类型', 'Compiled templates' => '已编译的模板', 'Compressed' => '已压缩', - 'Config' => '配置', 'Configuration' => '配置', 'Congrats! You’re up-to-date.' => '恭喜您!您使用的是最新版本。', 'Connection information not found!' => '未找到连接信息!', @@ -261,7 +264,6 @@ 'Couldn’t save user.' => '无法保存用户。', 'Couldn’t save widget.' => '无法保存小部件。', 'Couldn’t send activation email. Check your email settings.' => '无法发送一封激活电子邮件。检查您的电子邮件设置。', - 'Couldn’t send your message. Please email it to {email} instead.' => '无法发送您的消息。请用电子邮件将消息发送至 {email} 作为替代。', 'Couldn’t suspend user.' => '无法暂挂用户。', 'Couldn’t uninstall plugin.' => '无法卸载插件。', 'Couldn’t unsuspended user.' => '无法取消暂挂用户。', @@ -283,6 +285,7 @@ 'Craft is unable to transfer your license to this domain at this time.' => 'Craft 目前无法把您的许可证转移至该域名。', 'Craft requires the PDO extension to operate.' => 'Craft 要求运行 PDO 扩展名。', 'Craft requires the PDO_MYSQL driver to operate.' => 'Craft 要求运行 PDO_MYSQL 驱动器。', + 'Craft Support' => 'Craft 支持', 'Craft was unable to install this update :(' => 'Craft 无法安装该更新 :(', 'Craft {edition} is required to perform this action.' => '需要使用 Craft {edition} 来执行此操作。', 'Craft’s Terms and Conditions have changed.' => 'Craft 的条款和条件已更改。', @@ -483,9 +486,10 @@ 'General Settings' => '基本设置', 'General settings saved.' => '基本设置已保存。', 'Generating pending image transforms' => '正在生成处理中的图像转换', - 'Get Help' => '获取帮助', + 'Get help' => '获取帮助', 'GET Info' => 'GET 信息', 'GET param “{name}” doesn’t exist.' => 'GET 参数“{name}”不存在。', + 'Give feedback' => '提供反馈', 'Give your tab a name.' => '给标记命名。', 'Global' => '全局', 'Global Set Name' => '全局集的名称', @@ -523,8 +527,10 @@ 'How you’ll refer to this global set in the templates.' => '您将如何在模版中参考此全局套件。', 'How you’ll refer to this section in the templates.' => '您将如何在模版中参考此板块。', 'How you’ll refer to this tag group in the templates.' => '您如何引用模板中的该标记组。', + 'How-to’s and other questions' => '指南及其他问题', 'HTML' => 'HTML', 'HTML Email Template' => 'HTML 电子邮件模版', + 'HTML Purifier Config' => 'HTML 净化器配置', 'http://example.com/path/to/folder/' => 'http://example.com/path/to/folder/', 'HttpRequestService::close() cannot be called after content has been output.' => 'HttpRequestService::close() 在无法内容输出后调用。', 'I agree.' => '我同意。', @@ -755,6 +761,7 @@ 'Oops!' => '啊呀!', 'Option Label' => '选项标签', 'Options' => '选项', + 'or send to Craft Support' => '或发送给 Craft 支持', 'Origin' => '起始点', 'Our site is temporarily unavailable. Please try again later.' => '我们的网站暂时不可用。请稍后重试。', 'Page Not Found' => '页面未找到', @@ -792,6 +799,7 @@ 'Position Select' => '位置选择', 'Post a new {section} entry' => '发表新 {section} 条目', 'Post Date' => '发表日期', + 'Post on GitHub' => '发布在 GitHub 上', 'POST param “{name}” doesn’t exist.' => 'POST 参数 “{name}” 不存在。', 'POST param “{name}” was invalid.' => 'POST 参数 “{name}” 无效。', 'Powered by Craft CMS' => '由 Craft CMS 提供技术支持', @@ -819,6 +827,7 @@ 'Recent Entries' => '最近条目', 'Recent Versions' => '最新版本', 'Recent {section} Entries' => '最新 {section} 条目', + 'Redactor Config' => '编辑器配置', 'Refresh' => '刷新', 'Region' => '区域', 'Register a new user' => '注册新用户', @@ -892,7 +901,6 @@ 'Select transform' => '选择转换', 'Selection Label' => '选集标签', 'Send' => '发送', - 'Send a message to Craft CMS Support' => '给Craft CMS客服发消息', 'Send activation email' => '发送激活电子邮件', 'Send an activation email now?' => '要现在发送激活电子邮件吗?', 'Send for help' => '寻求帮助', @@ -925,6 +933,8 @@ 'Show time' => '显示时间', 'Show/hide children' => '显示/隐藏子条目', 'Sign out' => '注销', + 'Similar issues on GitHub' => 'GitHub 上的类似问题', + 'Similar questions on Stack Exchange' => 'Stack Exchange 上的类似问题', 'Single' => '单个', 'Single-line Text' => '单行文本', 'Singles' => '单独', @@ -974,7 +984,6 @@ 'Tag Groups' => '标记组', 'Tags' => '标签', 'Target Locale' => '目标语言区域', - 'Tell us about your problems.' => '请向我们描述您的问题。', 'Temp files' => '临时文件', 'Template caches' => '模板缓存', 'Template Error' => '模板错误', @@ -1259,11 +1268,10 @@ 'Years' => '年', 'Yesterday' => '昨天', 'yii' => 'yii', - 'You can save custom Redactor configs as .json files in craft/config/redactor/.' => '您可以把 Redactor 的自定义配置作为 .json 文件保存在 craft/config/redactor/ 中。', + 'You can save custom {name} configs as {ext} files in {path}.' => '您可以在 {path} 中把自定义 {name} 配置保存为 {ext} 文件。', 'You cannot access the CP while the system is offline with that account.' => '系统离线时,您不能使用该账户访问 CP。', 'You cannot access the CP with that account.' => '您不能使用该账户访问 CP。', 'You cannot access the site while the system is offline with that account.' => '当系统与该账户未连接时你无法访问该网站。', - 'You don’t have any Redactor configs yet.' => '您还没有任何编辑者配置。', 'You don’t have any widgets yet.' => '您目前没有任何小部件。', 'You don’t have the proper credentials to access this page.' => '您没有合适的凭证用于访问该页。', 'You don’t have the required permissions for this operation.' => '您无权执行此操作。', From 81876aa52d23453c7d5fac28790501a1e980b57e Mon Sep 17 00:00:00 2001 From: Brad Bell Date: Mon, 19 Jun 2017 11:58:24 -0700 Subject: [PATCH 13/34] Users will get a friendly error message if they try to change their email address to one that already exists instead of it silently failing. --- CHANGELOG.md | 1 + src/controllers/UsersController.php | 20 ++++++++++++-------- src/services/UsersService.php | 10 +++++++++- src/templates/_special/emailtaken.html | 8 ++++++++ 4 files changed, 30 insertions(+), 9 deletions(-) create mode 100644 src/templates/_special/emailtaken.html diff --git a/CHANGELOG.md b/CHANGELOG.md index b302e564f99..c21419f835a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ Craft CMS Changelog ### Changed - Updated HTML Purifier to 4.9.3. +- Users will get a friendly error message if they try to change their email address to one that already exists instead of it silently failing. ### Fixed - Fixed a bug where a validation error would occur when saving two routes with the same URL Pattern in different locales. diff --git a/src/controllers/UsersController.php b/src/controllers/UsersController.php index 63556577be3..69a49d54dff 100644 --- a/src/controllers/UsersController.php +++ b/src/controllers/UsersController.php @@ -420,17 +420,21 @@ public function actionVerifyEmail() $userToProcess = $info['userToProcess']; $userIsPending = $userToProcess->status == UserStatus::Pending; - craft()->users->verifyEmailForUser($userToProcess); - - if ($userIsPending) + if (craft()->users->verifyEmailForUser($userToProcess)) { - // They were just activated, so treat this as an activation request - $this->_onAfterActivateUser($userToProcess); + + if ($userIsPending) + { + // They were just activated, so treat this as an activation request + $this->_onAfterActivateUser($userToProcess); + } + + // Redirect to the site/CP root + $url = UrlHelper::getUrl(''); + $this->redirect($url); } - // Redirect to the site/CP root - $url = UrlHelper::getUrl(''); - $this->redirect($url); + $this->renderTemplate('_special/emailtaken', array('email' => $userToProcess->unverifiedEmail)); } } diff --git a/src/services/UsersService.php b/src/services/UsersService.php index 1611fbac5b1..3ffa6c3f613 100644 --- a/src/services/UsersService.php +++ b/src/services/UsersService.php @@ -774,6 +774,7 @@ public function activateUser(UserModel $user) * * @param UserModel $user * + * @return bool * @throws Exception */ public function verifyEmailForUser(UserModel $user) @@ -799,7 +800,12 @@ public function verifyEmailForUser(UserModel $user) } $userRecord->unverifiedEmail = null; - $userRecord->save(); + + if (!$userRecord->save()) + { + $user->addErrors($userRecord->getErrors()); + return false; + } // If the user status is pending, let's activate them. if ($userRecord->pending == true) @@ -807,6 +813,8 @@ public function verifyEmailForUser(UserModel $user) $this->activateUser($user); } } + + return true; } /** diff --git a/src/templates/_special/emailtaken.html b/src/templates/_special/emailtaken.html new file mode 100644 index 00000000000..92dbe1a5d3c --- /dev/null +++ b/src/templates/_special/emailtaken.html @@ -0,0 +1,8 @@ +{% extends "_layouts/message" %} +{% set title = "Verify Email"|t %} + +{% block message %} + +

      {{ "The email address {email} is already in use."|t({ email: email }) }}

      + +{% endblock %} From 33fb4f7c5997fbbf0412c8bde7440cc8c594c89e Mon Sep 17 00:00:00 2001 From: andris-sevcenko Date: Tue, 20 Jun 2017 09:16:10 +0300 Subject: [PATCH 14/34] Fixed a bug where Rackspace Asset Sources would corrupt files with trailing whitespaces when downloading them. --- CHANGELOG.md | 1 + src/assetsourcetypes/RackspaceAssetSourceType.php | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c21419f835a..e43983e3ea2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ Craft CMS Changelog ### Fixed - Fixed a bug where a validation error would occur when saving two routes with the same URL Pattern in different locales. - Fixed a JavaScript error that occurred after sending in a support request from the Craft Support widget. +- Fixed a bug where Rackspace Asset Sources would corrupt files with trailing whitespaces when downloading them. ## 2.6.2983 - 2017-06-09 diff --git a/src/assetsourcetypes/RackspaceAssetSourceType.php b/src/assetsourcetypes/RackspaceAssetSourceType.php index dc25481b5f8..812a45a8f6b 100644 --- a/src/assetsourcetypes/RackspaceAssetSourceType.php +++ b/src/assetsourcetypes/RackspaceAssetSourceType.php @@ -798,7 +798,8 @@ private static function _extractHeader($response, $header) */ private static function _extractRequestResponse($response) { - return rtrim(mb_substr($response, mb_strpos($response, "\r\n\r\n") + 4)); + $length = static::_extractHeader($response, 'Content-Length'); + return mb_substr($response, mb_strpos($response, "\r\n\r\n") + 4, $length); } /** From 872cdb8953192addd1bbfd07b7d15f0d28838605 Mon Sep 17 00:00:00 2001 From: andris-sevcenko Date: Tue, 20 Jun 2017 09:23:05 +0300 Subject: [PATCH 15/34] `assets.onReplaceFile` is now fired whenever a file is replaced, not only if it happens using the `Replace file` Asset action. --- CHANGELOG.md | 1 + src/services/AssetsService.php | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e43983e3ea2..e9456d57fe6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ Craft CMS Changelog ### Changed - Updated HTML Purifier to 4.9.3. - Users will get a friendly error message if they try to change their email address to one that already exists instead of it silently failing. +- `assets.onReplaceFile` is now fired whenever a file is replaced, not only if it happens using the `Replace file` Asset action. ### Fixed - Fixed a bug where a validation error would occur when saving two routes with the same URL Pattern in different locales. diff --git a/src/services/AssetsService.php b/src/services/AssetsService.php index 3d8b9dfe814..0224c5f299d 100644 --- a/src/services/AssetsService.php +++ b/src/services/AssetsService.php @@ -1411,7 +1411,12 @@ private function _mergeUploadedFiles($conflictResolution, $theNewFileId, $fileNa $source->replaceFile($targetFile, $theNewFile); $fileId = $targetFile->id; - } + + // Fire an 'onReplaceFile' event + craft()->assets->onReplaceFile(new Event($this, array( + 'asset' => $targetFile + ))); + } // Falling through to delete the file case AssetConflictResolution::Cancel: { From 0b57c16aeaaaee33b2362fcfcd2b10f7536d0083 Mon Sep 17 00:00:00 2001 From: Brad Bell Date: Tue, 20 Jun 2017 16:45:20 -0700 Subject: [PATCH 16/34] Make unverifiedEmail validation against the email column a thing. --- CHANGELOG.md | 2 +- src/records/UserRecord.php | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e9456d57fe6..190f2553d89 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,7 @@ Craft CMS Changelog ### Changed - Updated HTML Purifier to 4.9.3. -- Users will get a friendly error message if they try to change their email address to one that already exists instead of it silently failing. +- Users will get a friendly validation error message if they try to change their email address to one that already exists instead of it silently failing. - `assets.onReplaceFile` is now fired whenever a file is replaced, not only if it happens using the `Replace file` Asset action. ### Fixed diff --git a/src/records/UserRecord.php b/src/records/UserRecord.php index 54b59d06b44..f92052e01e9 100644 --- a/src/records/UserRecord.php +++ b/src/records/UserRecord.php @@ -91,6 +91,33 @@ public function setActive() $this->archived = false; } + /** + * @inheritDoc BaseRecord::rules() + * + * @return array + */ + public function rules() + { + $rules = parent::rules(); + $rules[] = array('unverifiedEmail', 'validateUnverifiedEmail'); + + return $rules; + } + + /** + * @param $attribute + */ + public function validateUnverifiedEmail($attribute) + { + $value = $this->$attribute; + $user = craft()->users->getUserByEmail($value); + + if ($user) + { + $this->addError('email', Craft::t('That email address is already in use. Please choose another.')); + } + } + // Protected Methods // ========================================================================= From 2185cd807c828625a9411a53bcb230be1ca7c07c Mon Sep 17 00:00:00 2001 From: Brad Bell Date: Wed, 21 Jun 2017 11:38:06 -0700 Subject: [PATCH 17/34] Updated Redactor II to 2.7. --- CHANGELOG.md | 1 + src/resources/lib/redactor/plugins/source.js | 1 + src/resources/lib/redactor/plugins/video.js | 15 +- src/resources/lib/redactor/redactor.js | 150 ++++++++++--------- src/resources/lib/redactor/redactor.min.js | 7 +- 5 files changed, 93 insertions(+), 81 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 190f2553d89..12fbab2546d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ Craft CMS Changelog ### Changed - Updated HTML Purifier to 4.9.3. +- Updated Redactor II to 2.7. - Users will get a friendly validation error message if they try to change their email address to one that already exists instead of it silently failing. - `assets.onReplaceFile` is now fired whenever a file is replaced, not only if it happens using the `Replace file` Asset action. diff --git a/src/resources/lib/redactor/plugins/source.js b/src/resources/lib/redactor/plugins/source.js index 460be43cb0e..5cd0318f21c 100644 --- a/src/resources/lib/redactor/plugins/source.js +++ b/src/resources/lib/redactor/plugins/source.js @@ -115,6 +115,7 @@ code = this.paragraphize.load(code); code = this.source.setCaretOnHide(code); + code = code.replace('&', '&'); this.code.start(code); this.button.enableAll(); diff --git a/src/resources/lib/redactor/plugins/video.js b/src/resources/lib/redactor/plugins/video.js index 444b9eb4635..39805d9b948 100644 --- a/src/resources/lib/redactor/plugins/video.js +++ b/src/resources/lib/redactor/plugins/video.js @@ -56,10 +56,17 @@ insert: function() { var data = $('#redactor-insert-video-area').val(); + var matches = data.match(/]*>/gi; + + data = data.replace(tags, function ($0, $1) + { + return (allowed.indexOf($1.toLowerCase()) === -1) ? '' : $0; + }); this.opts.videoContainerClass = (typeof this.opts.videoContainerClass === 'undefined') ? 'video-container' : this.opts.videoContainerClass; @@ -75,6 +82,10 @@ { data = data.replace(this.video.reUrlVimeo, iframeStart + '//player.vimeo.com/video/$2' + iframeEnd); } + else + { + data = '
      ' + data + '
      '; + } } this.modal.close(); diff --git a/src/resources/lib/redactor/redactor.js b/src/resources/lib/redactor/redactor.js index 22187545cf4..54eace19f65 100644 --- a/src/resources/lib/redactor/redactor.js +++ b/src/resources/lib/redactor/redactor.js @@ -1,7 +1,7 @@ /* Redactor II - Version 2.6 - Updated: May 17, 2017 + Version 2.7 + Updated: June 17, 2017 http://imperavi.com/redactor/ @@ -101,7 +101,7 @@ // Options $.Redactor = Redactor; - $.Redactor.VERSION = '2.6'; + $.Redactor.VERSION = '2.7'; $.Redactor.modules = ['air', 'autosave', 'block', 'buffer', 'build', 'button', 'caret', 'clean', 'code', 'core', 'detect', 'dropdown', 'events', 'file', 'focus', 'image', 'indent', 'inline', 'insert', 'keydown', 'keyup', 'lang', 'line', 'link', 'linkify', 'list', 'marker', 'modal', 'observe', 'offset', 'paragraphize', 'paste', 'placeholder', @@ -2352,16 +2352,19 @@ return this.caret.after(node.lastChild); } - sel = window.getSelection(); - sel.removeAllRanges(); + var sel = window.getSelection(); + if (sel.getRangeAt || sel.rangeCount) + { + try { + var range = sel.getRangeAt(0); + range.selectNodeContents(node); + range.collapse(false); - try { - range = document.createRange(); - range.selectNodeContents(node); - range.collapse(false); - sel.addRange(range); - } - catch(e) {} + sel.removeAllRanges(); + sel.addRange(range); + } + catch(e) {} + } }, after: function(node) { @@ -2693,7 +2696,7 @@ html = html.replace(/&/g, '&'); // remove empty paragpraphs - html = html.replace(/

      <\/p>/gi, ""); + //html = html.replace(/

      <\/p>/gi, ""); // remove new lines html = html.replace(/\n{2,}/g, "\n"); @@ -3879,7 +3882,7 @@ var command = this.dropdown.buildCommand(btnObject); - if (typeof btnObject.args !== ' undefined') + if (typeof btnObject.args !== 'undefined') { this.button.toggle(e, btnName, command.type, command.callback, btnObject.args); } @@ -4750,8 +4753,6 @@ } this.image.startResize(); - - }, startResize: function() { @@ -4773,8 +4774,6 @@ if (height < 50 || width < 100) return; - var height = Math.round(this.image.resizeHandle.el.width() / this.image.resizeHandle.ratio); - this.image.resizeHandle.el.attr({width: width, height: height}); this.image.resizeHandle.el.width(width); this.image.resizeHandle.el.height(height); @@ -5117,7 +5116,7 @@ var imageDeleteStop = this.core.callback('imageDelete', e, $image[0]); if (imageDeleteStop === false) { - e.preventDefault(); + if (e) e.preventDefault(); return false; } @@ -5399,7 +5398,7 @@ } else { - var $first = this.inline.insertBreakpoint($parent[0], currentTag); + var $first = this.inline.insertBreakpoint(inline, currentTag); this.caret.after($first); } } @@ -6177,12 +6176,11 @@ } this.utils.disableSelectAll(); - this.linkify.format(); if (data.pre) this.clean.cleanPre(); - // end focus this.caret.end(endNode); + this.linkify.format(); }, text: function(text) { @@ -7557,6 +7555,8 @@ this.caret.after($el); } + return $el; + }, update: function($el, link) { @@ -7841,7 +7841,6 @@ return; } - this.core.editor().find(":not(iframe,img,a,pre,code,.redactor-unlink)").addBack().contents().filter($.proxy(this.linkify.isFiltered, this)).each($.proxy(this.linkify.handler, this)); // collect @@ -10242,7 +10241,7 @@ if (this.opts.toolbarFixedTarget !== document) { var $el = $(this.opts.toolbarFixedTarget); - this.toolbarOffsetTop = ($el.length === 0) ? 0 : this.core.box().offset().top - $el.offset().top; + this.toolbar.toolbarOffsetTop = ($el.length === 0) ? 0 : this.core.box().offset().top - $el.offset().top; } // bootstrap modal fix @@ -10444,7 +10443,8 @@ for (var i = 0; i < len; i++) { - this.upload.traverseFile(this.upload.$input[0].files[i], e); + var index = (len - 1) - i; + this.upload.traverseFile(this.upload.$input[0].files[index], e); } }, this)); @@ -10500,8 +10500,11 @@ } this.progress.show(); - this.core.callback('uploadStart', e, formData); - this.upload.send(formData, e); + var stop = this.core.callback('uploadStart', e, formData); + if (stop !== false) + { + this.upload.send(formData, e); + } }, setConfig: function(file) { @@ -10596,9 +10599,11 @@ }, this); // before send - this.core.callback('uploadBeforeSend', xhr); - - xhr.send(formData); + var stop = this.core.callback('uploadBeforeSend', xhr); + if (stop !== false) + { + xhr.send(formData); + } }, onDrag: function(e) { @@ -10692,64 +10697,63 @@ return xhr; }, - sendToS3: function(file, url, formData) - { - var xhr = this.uploads3.createCORSRequest('PUT', url); - if (!xhr) - { - return; - } - xhr.onload = $.proxy(function() - { - var json; - - this.progress.hide(); + sendToS3: function(file, url, e) + { + var xhr = this.uploads3.createCORSRequest('PUT', url); + if (!xhr) + { + return; + } - if (xhr.status !== 200) - { - // error - json = { error: true }; - this.upload.callback(json, this.upload.direct, xhr); + xhr.onload = $.proxy(function() + { + var json; + this.progress.hide(); - return; - } + if (xhr.status !== 200) + { + // error + json = { error: true }; + this.upload.callback(json, this.upload.direct, xhr); - var s3file = url.split('?'); + return; + } - if (!s3file[0]) - { - // url parsing is fail - return false; - } + var s3file = url.split('?'); + if (!s3file[0]) + { + // url parsing is fail + return false; + } - if (!this.upload.direct) - { - this.upload.$droparea.removeClass('drag-drop'); - } + if (!this.upload.direct) + { + this.upload.$droparea.removeClass('drag-drop'); + } - json = { url: s3file[0], id: s3file[0], s3: true }; - if (this.upload.type === 'file') - { - var arr = s3file[0].split('/'); - json.name = arr[arr.length-1]; - } + json = { url: s3file[0], id: s3file[0], s3: true }; + if (this.upload.type === 'file') + { + var arr = s3file[0].split('/'); + json.name = arr[arr.length-1]; + } - this.upload.callback(json, this.upload.direct, e); + this.upload.callback(json, this.upload.direct, e); - }, this); + }, this); - xhr.onerror = function() {}; - xhr.upload.onprogress = function(e) {}; + xhr.onerror = function() {}; + xhr.upload.onprogress = function(e) {}; - xhr.setRequestHeader('Content-Type', file.type); - xhr.setRequestHeader('x-amz-acl', 'public-read'); + xhr.setRequestHeader('Content-Type', file.type); + xhr.setRequestHeader('x-amz-acl', 'public-read'); - xhr.send(formData); + xhr.send(file); - } + } }; }, diff --git a/src/resources/lib/redactor/redactor.min.js b/src/resources/lib/redactor/redactor.min.js index 4f81a47e735..35941cda984 100644 --- a/src/resources/lib/redactor/redactor.min.js +++ b/src/resources/lib/redactor/redactor.min.js @@ -1,6 +1 @@ -!function(t){"use strict";function i(t,e){return new i.prototype.init(t,e)}Function.prototype.bind||(Function.prototype.bind=function(t){var e=this;return function(){return e.apply(t)}});var r=0;t.fn.redactor=function(e){var r=[],o=Array.prototype.slice.call(arguments,1);return"string"==typeof e?this.each(function(){var i,s=t.data(this,"redactor");if("-1"!==e.search(/\./)?(i=e.split("."),"undefined"!=typeof s[i[0]]&&(i=s[i[0]][i[1]])):i=s[e],"undefined"!=typeof s&&t.isFunction(i)){var n=i.apply(s,o);void 0!==n&&n!==s&&r.push(n)}else t.error('No such method "'+e+'" for Redactor')}):this.each(function(){t.data(this,"redactor",{}),t.data(this,"redactor",i(this,e))}),0===r.length?this:1===r.length?r[0]:r},t.Redactor=i,t.Redactor.VERSION="2.6",t.Redactor.modules=["air","autosave","block","buffer","build","button","caret","clean","code","core","detect","dropdown","events","file","focus","image","indent","inline","insert","keydown","keyup","lang","line","link","linkify","list","marker","modal","observe","offset","paragraphize","paste","placeholder","progress","selection","shortcuts","storage","toolbar","upload","uploads3","utils","browser"],t.Redactor.settings={},t.Redactor.opts={animation:!1,lang:"en",direction:"ltr",spellcheck:!0,overrideStyles:!0,scrollTarget:document,focus:!1,focusEnd:!1,clickToEdit:!1,structure:!1,tabindex:!1,minHeight:!1,maxHeight:!1,maxWidth:!1,plugins:!1,callbacks:{},placeholder:!1,linkify:!0,enterKey:!0,pastePlainText:!1,pasteImages:!0,pasteLinks:!0,pasteBlockTags:["pre","h1","h2","h3","h4","h5","h6","table","tbody","thead","tfoot","th","tr","td","ul","ol","li","blockquote","p","figure","figcaption"],pasteInlineTags:["br","strong","ins","code","del","span","samp","kbd","sup","sub","mark","var","cite","small","b","u","em","i"],preClass:!1,preSpaces:4,tabAsSpaces:!1,tabKey:!0,autosave:!1,autosaveName:!1,autosaveFields:!1,imageUpload:null,imageUploadParam:"file",imageUploadFields:!1,imageUploadForms:!1,imageTag:"figure",imageEditable:!0,imageCaption:!0,imagePosition:!1,imageResizable:!1,imageFloatMargin:"10px",dragImageUpload:!0,multipleImageUpload:!0,clipboardImageUpload:!0,fileUpload:null,fileUploadParam:"file",fileUploadFields:!1,fileUploadForms:!1,dragFileUpload:!0,s3:!1,linkNewTab:!1,linkTooltip:!0,linkNofollow:!1,linkSize:30,pasteLinkTarget:!1,videoContainerClass:"video-container",toolbar:!0,toolbarFixed:!0,toolbarFixedTarget:document,toolbarFixedTopOffset:0,toolbarExternal:!1,toolbarOverflow:!1,air:!1,airWidth:!1,formatting:["p","blockquote","pre","h1","h2","h3","h4","h5","h6"],formattingAdd:!1,buttons:["format","bold","italic","deleted","lists","image","file","link","horizontalrule"],buttonsTextLabeled:!1,buttonsHide:[],buttonsHideOnMobile:[],script:!0,removeNewlines:!1,removeComments:!0,replaceTags:{b:"strong",i:"em",strike:"del"},keepStyleAttr:[],shortcuts:{"ctrl+shift+m, meta+shift+m":{func:"inline.removeFormat"},"ctrl+b, meta+b":{func:"inline.format",params:["bold"]},"ctrl+i, meta+i":{func:"inline.format",params:["italic"]},"ctrl+h, meta+h":{func:"inline.format",params:["superscript"]},"ctrl+l, meta+l":{func:"inline.format",params:["subscript"]},"ctrl+k, meta+k":{func:"link.show"},"ctrl+shift+7":{func:"list.toggle",params:["orderedlist"]},"ctrl+shift+8":{func:"list.toggle",params:["unorderedlist"]}},shortcutsAdd:!1,activeButtons:["deleted","italic","bold"],activeButtonsStates:{b:"bold",strong:"bold",i:"italic",em:"italic",del:"deleted",strike:"deleted"},langs:{en:{format:"Format",image:"Image",file:"File",link:"Link",bold:"Bold",italic:"Italic",deleted:"Strikethrough",underline:"Underline","bold-abbr":"B","italic-abbr":"I","deleted-abbr":"S","underline-abbr":"U",lists:"Lists","link-insert":"Insert link","link-edit":"Edit link","link-in-new-tab":"Open link in new tab",unlink:"Unlink",cancel:"Cancel",close:"Close",insert:"Insert",save:"Save","delete":"Delete",text:"Text",edit:"Edit",title:"Title",paragraph:"Normal text",quote:"Quote",code:"Code",heading1:"Heading 1",heading2:"Heading 2",heading3:"Heading 3",heading4:"Heading 4",heading5:"Heading 5",heading6:"Heading 6",filename:"Name",optional:"optional",unorderedlist:"Unordered List",orderedlist:"Ordered List",outdent:"Outdent",indent:"Indent",horizontalrule:"Line","upload-label":"Drop file here or ",caption:"Caption",bulletslist:"Bullets",numberslist:"Numbers","image-position":"Position",none:"None",left:"Left",right:"Right",center:"Center","accessibility-help-label":"Rich text editor"}},type:"textarea",inline:!1,buffer:[],rebuffer:[],inlineTags:["a","span","strong","strike","b","u","em","i","code","del","ins","samp","kbd","sup","sub","mark","var","cite","small"],blockTags:["pre","ul","ol","li","p","h1","h2","h3","h4","h5","h6","dl","dt","dd","div","td","blockquote","output","figcaption","figure","address","section","header","footer","aside","article","iframe"],paragraphize:!0,paragraphizeBlocks:["table","div","pre","form","ul","ol","h1","h2","h3","h4","h5","h6","dl","blockquote","figcaption","address","section","header","footer","aside","article","object","style","script","iframe","select","input","textarea","button","option","map","area","math","hr","fieldset","legend","hgroup","nav","figure","details","menu","summary","p"],emptyHtml:"

      ",invisibleSpace:"​",emptyHtmlRendered:t("").html("​").html(),imageTypes:["image/png","image/jpeg","image/gif"],userAgent:navigator.userAgent.toLowerCase(),observe:{dropdowns:[]},regexps:{linkyoutube:/https?:\/\/(?:[0-9A-Z-]+\.)?(?:youtu\.be\/|youtube\.com\S*[^\w\-\s])([\w\-]{11})(?=[^\w\-]|$)(?![?=&+%\w.\-]*(?:['"][^<>]*>|<\/a>))[?=&+%\w.-]*/gi,linkvimeo:/https?:\/\/(www\.)?vimeo.com\/(\d+)($|\/)/,linkimage:/((https?|www)[^\s]+\.)(jpe?g|png|gif)(\?[^\s-]+)?/gi,url:/(https?:\/\/(?:www\.|(?!www))[^\s\.]+\.[^\s]{2,}|www\.[^\s]+\.[^\s]{2,})/gi}},i.fn=t.Redactor.prototype={keyCode:{BACKSPACE:8,DELETE:46,UP:38,DOWN:40,ENTER:13,SPACE:32,ESC:27,TAB:9,CTRL:17,META:91,SHIFT:16,ALT:18,RIGHT:39,LEFT:37,LEFT_WIN:91},init:function(e,i){return this.$element=t(e),this.uuid=r++,this.loadOptions(i),this.loadModules(),this.opts.clickToEdit&&!this.$element.hasClass("redactor-click-to-edit")?this.loadToEdit(i):(this.$element.hasClass("redactor-click-to-edit")&&this.$element.removeClass("redactor-click-to-edit"),this.reIsBlock=new RegExp("^("+this.opts.blockTags.join("|").toUpperCase()+")$","i"),this.reIsInline=new RegExp("^("+this.opts.inlineTags.join("|").toUpperCase()+")$","i"),this.opts.dragImageUpload=null===this.opts.imageUpload?!1:this.opts.dragImageUpload,this.opts.dragFileUpload=null===this.opts.fileUpload?!1:this.opts.dragFileUpload,this.formatting={},this.lang.load(),t.extend(this.opts.shortcuts,this.opts.shortcutsAdd),this.$editor=this.$element,this.detectType(),this.core.callback("start"),this.core.callback("startToEdit"),this.start=!0,void this.build.start())},detectType:function(){this.build.isInline()||this.opts.inline?this.opts.type="inline":this.build.isTag("DIV")?this.opts.type="div":this.build.isTag("PRE")&&(this.opts.type="pre")},loadToEdit:function(e){this.$element.on("click.redactor-click-to-edit",t.proxy(function(){this.initToEdit(e)},this)),this.$element.addClass("redactor-click-to-edit")},initToEdit:function(e){t.extend(e.callbacks,{startToEdit:function(){this.insert.node(this.marker.get(),!1)},initToEdit:function(){this.selection.restore(),this.clickToCancelStorage=this.code.get(),t(this.opts.clickToCancel).off(".redactor-click-to-edit"),t(this.opts.clickToCancel).show().on("click.redactor-click-to-edit",t.proxy(function(i){i.preventDefault(),this.core.destroy(),this.events.syncFire=!1,this.$element.html(this.clickToCancelStorage),this.core.callback("cancel",this.clickToCancelStorage),this.events.syncFire=!0,this.clickToCancelStorage="",t(this.opts.clickToCancel).hide(),t(this.opts.clickToSave).hide(),this.$element.on("click.redactor-click-to-edit",t.proxy(function(){this.initToEdit(e)},this)),this.$element.addClass("redactor-click-to-edit")},this)),t(this.opts.clickToSave).off(".redactor-click-to-edit"),t(this.opts.clickToSave).show().on("click.redactor-click-to-edit",t.proxy(function(i){i.preventDefault(),this.core.destroy(),this.core.callback("save",this.code.get()),t(this.opts.clickToCancel).hide(),t(this.opts.clickToSave).hide(),this.$element.on("click.redactor-click-to-edit",t.proxy(function(){this.initToEdit(e)},this)),this.$element.addClass("redactor-click-to-edit")},this))}}),this.$element.redactor(e),this.$element.off(".redactor-click-to-edit")},loadOptions:function(e){var i={};"undefined"!=typeof t.Redactor.settings.namespace?this.$element.hasClass(t.Redactor.settings.namespace)&&(i=t.Redactor.settings):i=t.Redactor.settings,this.opts=t.extend({},t.Redactor.opts,this.$element.data(),e),this.opts=t.extend(!0,this.opts,i)},getModuleMethods:function(t){return Object.getOwnPropertyNames(t).filter(function(e){return"function"==typeof t[e]})},loadModules:function(){for(var e=t.Redactor.modules.length,i=0;e>i;i++)this.bindModuleMethods(t.Redactor.modules[i])},bindModuleMethods:function(t){if("undefined"!=typeof this[t]){this[t]=this[t]();for(var e=this.getModuleMethods(this[t]),i=e.length,r=0;i>r;r++)this[t][e[r]]=this[t][e[r]].bind(this)}},air:function(){return{enabled:!1,collapsed:function(){this.opts.air&&this.selection.get().collapseToStart()},collapsedEnd:function(){this.opts.air&&this.selection.get().collapseToEnd()},build:function(){this.detect.isMobile()||(this.button.hideButtons(),this.button.hideButtonsOnMobile(),0!==this.opts.buttons.length&&(this.$air=this.air.createContainer(),this.opts.airWidth!==!1&&this.$air.css("width",this.opts.airWidth),this.air.append(),this.button.$toolbar=this.$air,this.button.setFormatting(),this.button.load(this.$air),this.core.editor().on("mouseup.redactor",this,t.proxy(function(t){""!==this.selection.text()&&this.air.show(t)},this))))},append:function(){this.$air.appendTo("body")},createContainer:function(){return t("
        ").addClass("redactor-air").attr({id:"redactor-air-"+this.uuid,role:"toolbar"}).hide()},show:function(e){this.selection.saveInstant(),t(".redactor-air").hide();var i=0,r=this.$air.innerWidth();t(window).width()l;l++){var c=n[l].tagName.toLowerCase();if(-1!==t.inArray(c,this.block.tags)&&"figure"!==c){var d=this.utils.replaceToTag(n[l],e);if("object"==typeof i){o=r;for(var h in i)d=this.block.setAttr(d,h,i[h],o)}else d=this.block.setAttr(d,i,r,o);s.push(d),this.block.removeInlineTags(d)}}if(this.selection.restore(),"pre"===e&&0!==s.length){var u=s[0];t.each(s,function(e,i){0!==e&&(t(u).append("\n"+t.trim(i.html())),t(i).remove())}),s=[],s.push(u)}return s},removeInlineTags:function(e){e=e[0]||e;var i=this.opts.inlineTags,r=["PRE","H1","H2","H3","H4","H5","H6"];if(-1!==t.inArray(e.tagName,r)){if("PRE"!==e.tagName){var o=i.indexOf("a");i.splice(o,1)}t(e).find(i.join(",")).not(".redactor-selection-marker").contents().unwrap()}},setAttr:function(t,e,i,r){if("undefined"==typeof e)return t;var o="undefined"==typeof r?"replace":r;return t="class"===e?this.block[o+"Class"](i,t):"remove"===o?this.block[o+"Attr"](e,t):"removeAll"===o?this.block[o+"Attr"](e,t):this.block[o+"Attr"](e,i,t)},getBlocks:function(t){return"undefined"==typeof t?this.selection.blocks():t},replaceClass:function(e,i){return t(this.block.getBlocks(i)).removeAttr("class").addClass(e)[0]},toggleClass:function(e,i){return t(this.block.getBlocks(i)).toggleClass(e)[0]},addClass:function(e,i){return t(this.block.getBlocks(i)).addClass(e)[0]},removeClass:function(e,i){return t(this.block.getBlocks(i)).removeClass(e)[0]},removeAllClass:function(e){return t(this.block.getBlocks(e)).removeAttr("class")[0]},replaceAttr:function(e,i,r){return r=this.block.removeAttr(e,r),t(r).attr(e,i)[0]},toggleAttr:function(e,i,r){r=this.block.getBlocks(r);var o=this,s=[];return t.each(r,function(r,n){var a=t(n);a.attr(e)?s.push(o.block.removeAttr(e,n)):s.push(o.block.addAttr(e,i,n))}),s},addAttr:function(e,i,r){return t(this.block.getBlocks(r)).attr(e,i)[0]},removeAttr:function(e,i){return t(this.block.getBlocks(i)).removeAttr(e)[0]},removeAllAttr:function(e){e=this.block.getBlocks(e);var i=[];return t.each(e,function(e,r){"undefined"==typeof r.attributes&&i.push(r);for(var o=t(r),s=r.attributes.length,n=0;s>n;n++)o.removeAttr(r.attributes[n].name);i.push(o[0])}),i}}},buffer:function(){return{set:function(t){"undefined"==typeof t&&this.buffer.clear(),"undefined"==typeof t||"undo"===t?this.buffer.setUndo():this.buffer.setRedo()},setUndo:function(){var t=this.selection.saveInstant(),e=this.opts.buffer[this.opts.buffer.length-1],i=this.core.editor().html(),r="undefined"==typeof e||e[0]!==i;r&&this.opts.buffer.push([i,t])},setRedo:function(){var t=this.selection.saveInstant();this.opts.rebuffer.push([this.core.editor().html(),t])},add:function(){this.opts.buffer.push([this.core.editor().html(),0])},undo:function(){if(0!==this.opts.buffer.length){var t=this.opts.buffer.pop();this.buffer.set("redo"),this.core.editor().html(t[0]),this.selection.restoreInstant(t[1]),this.observe.load()}},redo:function(){if(0!==this.opts.rebuffer.length){var t=this.opts.rebuffer.pop();this.buffer.set("undo"),this.core.editor().html(t[0]),this.selection.restoreInstant(t[1]),this.observe.load()}},clear:function(){this.opts.rebuffer=[]}}},build:function(){return{start:function(){if("inline"===this.opts.type)this.opts.type="inline";else if("div"===this.opts.type){var e=t.trim(this.$editor.html());""===e&&this.$editor.html(this.opts.emptyHtml)}else"textarea"===this.opts.type&&this.build.startTextarea();this.build.setIn(),this.build.setId(),this.build.enableEditor(),this.build.setOptions(),this.build.callEditor()},createContainerBox:function(){this.$box=t('
        ')},setIn:function(){this.core.editor().addClass("redactor-in")},setId:function(){var t="textarea"===this.opts.type?"redactor-uuid-"+this.uuid:this.$element.attr("id");this.core.editor().attr("id","undefined"==typeof t?"redactor-uuid-"+this.uuid:t)},getName:function(){var t=this.$element.attr("name");return"undefined"==typeof t?"content-"+this.uuid:t},loadFromTextarea:function(){this.$editor=t("
        "),this.$textarea=this.$element,this.$element.attr("name",this.build.getName()),this.$box.insertAfter(this.$element).append(this.$editor).append(this.$element),this.$editor.addClass("redactor-layer"),this.opts.overrideStyles&&this.$editor.addClass("redactor-styles"),this.$element.hide(),this.$box.prepend(''+this.lang.get("accessibility-help-label")+""),this.$editor.attr({"aria-labelledby":"redactor-voice-"+this.uuid,role:"presentation"})},startTextarea:function(){this.build.createContainerBox(),this.build.loadFromTextarea(),this.code.start(this.core.textarea().val()),this.core.textarea().val(this.clean.onSync(this.$editor.html()))},isTag:function(t){return this.$element[0].tagName===t},isInline:function(){return!this.build.isTag("TEXTAREA")&&!this.build.isTag("DIV")&&!this.build.isTag("PRE")},enableEditor:function(){this.core.editor().attr({contenteditable:!0})},setOptions:function(){"inline"===this.opts.type&&(this.opts.enterKey=!1),"inline"!==this.opts.type&&"pre"!==this.opts.type||(this.opts.toolbarMobile=!1,this.opts.toolbar=!1,this.opts.air=!1,this.opts.linkify=!1),this.core.editor().attr("spellcheck",this.opts.spellcheck),this.opts.structure&&this.core.editor().addClass("redactor-structure"),"textarea"===this.opts.type&&(this.core.box().attr("dir",this.opts.direction),this.core.editor().attr("dir",this.opts.direction),this.opts.tabindex&&this.core.editor().attr("tabindex",this.opts.tabindex),this.opts.minHeight?this.core.editor().css("min-height",this.opts.minHeight):this.core.editor().css("min-height","40px"),this.opts.maxHeight&&this.core.editor().css("max-height",this.opts.maxHeight),this.opts.maxWidth&&this.core.editor().css({"max-width":this.opts.maxWidth,margin:"auto"}))},callEditor:function(){this.build.disableBrowsersEditing(),this.events.init(),this.build.setHelpers(),(this.opts.toolbar||this.opts.air)&&(this.toolbarsButtons=this.button.init()),this.opts.air?this.air.build():this.opts.toolbar&&this.toolbar.build(),this.detect.isMobile()&&this.opts.toolbarMobile&&this.opts.air&&(this.opts.toolbar=!0,this.toolbar.build()),(this.opts.air||this.opts.toolbar)&&(this.core.editor().on("mouseup.redactor-observe."+this.uuid+" keyup.redactor-observe."+this.uuid+" focus.redactor-observe."+this.uuid+" touchstart.redactor-observe."+this.uuid,t.proxy(this.observe.toolbar,this)),this.core.element().on("blur.callback.redactor",t.proxy(function(){this.button.setInactiveAll()},this))),this.modal.templates(),this.build.plugins(),this.autosave.init(),this.code.html=this.code.cleaned(this.core.editor().html()),this.core.callback("init"),this.core.callback("initToEdit"),this.storage.observe(),this.start=!1},setHelpers:function(){this.opts.linkify&&this.linkify.format(),this.placeholder.init(),this.opts.focus?setTimeout(this.focus.start,100):this.opts.focusEnd&&setTimeout(this.focus.end,100)},disableBrowsersEditing:function(){try{document.execCommand("enableObjectResizing",!1,!1),document.execCommand("enableInlineTableEditing",!1,!1),document.execCommand("AutoUrlDetect",!1,!1)}catch(t){}},plugins:function(){this.opts.plugins&&t.each(this.opts.plugins,t.proxy(function(e,r){var o="undefined"!=typeof RedactorPlugins&&"undefined"!=typeof RedactorPlugins[r]?RedactorPlugins:i.fn;if(t.isFunction(o[r])){this[r]=o[r]();for(var s=this.getModuleMethods(this[r]),n=s.length,a=0;n>a;a++)this[r][s[a]]=this[r][s[a]].bind(this);if("undefined"!=typeof this[r].langs){var l={};"undefined"!=typeof this[r].langs[this.opts.lang]?l=this[r].langs[this.opts.lang]:"undefined"==typeof this[r].langs[this.opts.lang]&&"undefined"!=typeof this[r].langs.en&&(l=this[r].langs.en);var c=this;t.each(l,function(t,e){"undefined"==typeof c.opts.curLang[t]&&(c.opts.curLang[t]=e)})}t.isFunction(this[r].init)&&this[r].init()}},this))}}},button:function(){return{toolbar:function(){return"undefined"!=typeof this.button.$toolbar&&this.button.$toolbar?this.button.$toolbar:this.$toolbar},init:function(){return{format:{title:this.lang.get("format"),icon:!0,dropdown:{p:{title:this.lang.get("paragraph"),func:"block.format"},blockquote:{title:this.lang.get("quote"),func:"block.format"},pre:{title:this.lang.get("code"),func:"block.format"},h1:{title:this.lang.get("heading1"),func:"block.format"},h2:{title:this.lang.get("heading2"),func:"block.format"},h3:{title:this.lang.get("heading3"),func:"block.format"},h4:{title:this.lang.get("heading4"),func:"block.format"},h5:{title:this.lang.get("heading5"),func:"block.format"},h6:{title:this.lang.get("heading6"),func:"block.format"}}},bold:{title:this.lang.get("bold-abbr"),icon:!0,label:this.lang.get("bold"),func:"inline.format"},italic:{title:this.lang.get("italic-abbr"),icon:!0,label:this.lang.get("italic"),func:"inline.format"},deleted:{title:this.lang.get("deleted-abbr"),icon:!0,label:this.lang.get("deleted"),func:"inline.format"},underline:{title:this.lang.get("underline-abbr"),icon:!0,label:this.lang.get("underline"),func:"inline.format"},lists:{title:this.lang.get("lists"),icon:!0,dropdown:{unorderedlist:{title:"• "+this.lang.get("unorderedlist"),func:"list.toggle"},orderedlist:{title:"1. "+this.lang.get("orderedlist"),func:"list.toggle"},outdent:{title:"< "+this.lang.get("outdent"),func:"indent.decrease",observe:{element:"li",out:{attr:{"class":"redactor-dropdown-link-inactive","aria-disabled":!0}}}},indent:{title:"> "+this.lang.get("indent"),func:"indent.increase",observe:{element:"li",out:{attr:{"class":"redactor-dropdown-link-inactive","aria-disabled":!0}}}}}},ul:{title:"• "+this.lang.get("bulletslist"),icon:!0,func:"list.toggle"},ol:{title:"1. "+this.lang.get("numberslist"),icon:!0,func:"list.toggle"},outdent:{title:this.lang.get("outdent"),icon:!0,func:"indent.decrease"},indent:{title:this.lang.get("indent"),icon:!0,func:"indent.increase"},image:{title:this.lang.get("image"),icon:!0,func:"image.show"},file:{title:this.lang.get("file"),icon:!0,func:"file.show"},link:{title:this.lang.get("link"),icon:!0,dropdown:{link:{title:this.lang.get("link-insert"),func:"link.show",observe:{element:"a","in":{title:this.lang.get("link-edit")},out:{title:this.lang.get("link-insert")}}},unlink:{title:this.lang.get("unlink"),func:"link.unlink",observe:{element:"a",out:{attr:{"class":"redactor-dropdown-link-inactive","aria-disabled":!0}}}}}},horizontalrule:{title:this.lang.get("horizontalrule"),icon:!0,func:"line.insert"}}},setFormatting:function(){t.each(this.toolbarsButtons.format.dropdown,t.proxy(function(e,i){-1===t.inArray(e,this.opts.formatting)&&delete this.toolbarsButtons.format.dropdown[e]},this))},hideButtons:function(){0!==this.opts.buttonsHide.length&&this.button.hideButtonsSlicer(this.opts.buttonsHide)},hideButtonsOnMobile:function(){this.detect.isMobile()&&0!==this.opts.buttonsHideOnMobile.length&&this.button.hideButtonsSlicer(this.opts.buttonsHideOnMobile)},hideButtonsSlicer:function(e){t.each(e,t.proxy(function(t,e){var i=this.opts.buttons.indexOf(e);-1!==i&&this.opts.buttons.splice(i,1)},this))},load:function(e){this.button.buttons=[],t.each(this.opts.buttons,t.proxy(function(i,r){!this.toolbarsButtons[r]||"file"===r&&!this.file.is()||"image"===r&&!this.image.is()||e.append(t("
      • ").append(this.button.build(r,this.toolbarsButtons[r])))},this))},buildButtonTooltip:function(e,i){if(!this.opts.air&&!this.detect.isMobile()){var r=t("");r.addClass("re-button-tooltip"),r.html(i),e.append(r),e.on("mouseover",function(){t(this).hasClass("redactor-button-disabled")||(r.show(),r.css("margin-left",-(r.innerWidth()/2)))}).on("mouseout",function(){r.hide()})}},build:function(e,i){if(this.opts.toolbar!==!1){var r="undefined"!=typeof i.label?i.label:i.title,o=t('');if(o.addClass("re-button re-"+e),o.attr({role:"button","aria-label":r,tabindex:"-1"}),"undefined"==typeof i.icon||this.opts.buttonsTextLabeled)o.html(i.title);else{var s=t("");s.addClass("re-icon-"+e),o.append(s),o.addClass("re-button-icon"),this.button.buildButtonTooltip(o,r)}if((i.func||i.command||i.dropdown)&&this.button.setEvent(o,e,i),i.dropdown){o.addClass("redactor-toolbar-link-dropdown").attr("aria-haspopup",!0);var n=t('