From 9b9db23461b18d9b5b971f389a800d0fd41b1a34 Mon Sep 17 00:00:00 2001 From: Per Ploug Date: Fri, 13 Jan 2017 13:20:38 +0100 Subject: [PATCH 01/13] Replaces the last static strings with language keys --- .../overlays/insert/insert.controller.js | 17 ++++---- .../views/common/overlays/insert/insert.html | 2 +- .../overlays/querybuilder/querybuilder.html | 2 +- .../templatesections/templatesections.html | 40 +++++++------------ .../src/views/templates/edit.controller.js | 15 +++---- .../src/views/templates/edit.html | 2 +- .../Models/ContentEditing/TemplateDisplay.cs | 3 ++ 7 files changed, 37 insertions(+), 44 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/common/overlays/insert/insert.controller.js b/src/Umbraco.Web.UI.Client/src/views/common/overlays/insert/insert.controller.js index 59a00a5797..b99dd289b1 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/overlays/insert/insert.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/common/overlays/insert/insert.controller.js @@ -1,16 +1,16 @@ (function () { "use strict"; - function InsertOverlayController($scope) { + function InsertOverlayController($scope, localizationService) { var vm = this; if(!$scope.model.title) { - $scope.model.title = "Insert"; + $scope.model.title = localizationService.localize("template_insert"); } if(!$scope.model.subtitle) { - $scope.model.subtitle = "Choose what to insert into your template"; + $scope.model.subtitle = localizationService.localize("template_insertDesc"); } vm.openMacroPicker = openMacroPicker; @@ -22,7 +22,7 @@ vm.macroPickerOverlay = { view: "macropicker", - title: "Insert macro", + title: localizationService.localize("template_insertMacro"), dialogData: {}, show: true, submit: function(model) { @@ -45,8 +45,8 @@ function openPageFieldOverlay() { vm.pageFieldOverlay = { - title: "Insert value", - description: "Select a value from the currentpage", + title: localizationService.localize("template_insertPageField"), + description: localizationService.localize("template_insertPageFieldDesc"), submitButtonLabel: "Insert", closeButtonlabel: "Cancel", view: "insertfield", @@ -78,7 +78,8 @@ treeAlias: "dictionary", entityType: "dictionary", multiPicker: false, - title: "Insert dictionary item", + title: localizationService.localize("template_insertDictionaryItem"), + description: localizationService.localize("template_insertDictionaryItemDesc"), show: true, select: function(node){ @@ -108,7 +109,7 @@ entityType: "partialView", multiPicker: false, show: true, - title: "Insert partial view", + title: localizationService.localize("template_insertPartialView"), select: function(node){ diff --git a/src/Umbraco.Web.UI.Client/src/views/common/overlays/insert/insert.html b/src/Umbraco.Web.UI.Client/src/views/common/overlays/insert/insert.html index 4b92ea86ad..c2926f6acc 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/overlays/insert/insert.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/overlays/insert/insert.html @@ -24,7 +24,7 @@
-
+
diff --git a/src/Umbraco.Web.UI.Client/src/views/common/overlays/querybuilder/querybuilder.html b/src/Umbraco.Web.UI.Client/src/views/common/overlays/querybuilder/querybuilder.html index e9be97b7df..678733f1c8 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/overlays/querybuilder/querybuilder.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/overlays/querybuilder/querybuilder.html @@ -22,7 +22,7 @@ - from + from {{vm.query.source.name}} diff --git a/src/Umbraco.Web.UI.Client/src/views/common/overlays/templatesections/templatesections.html b/src/Umbraco.Web.UI.Client/src/views/common/overlays/templatesections/templatesections.html index 1a11d6a46e..ee62c3426d 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/overlays/templatesections/templatesections.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/overlays/templatesections/templatesections.html @@ -1,71 +1,59 @@
-
+
-
Render child template
+
- Renders the contents of a child template, by inserting a - @RenderBody() placeholder. +
-
+
-
Render a named section
+
- Renders a named area of a child template, by insert a @RenderSection(name) placeholder. - This renders an area of a child template which is wrapped in a corresponding @section [name]{ ... } definition. +
- + -
- Set the name of the section to render in this area of the template -
+
- If mandatory, the child template must contain a @section definition, otherwise an error is shown. +
-
+
-
Define a named section
+
- Defines a part of your template as a named section by wrapping it in - a @section { ... }. This can be rendered in a - specific area of the master of this template, by using @RenderSection. +
- + -
- Give the section a name -
- -
\ No newline at end of file diff --git a/src/Umbraco.Web.UI.Client/src/views/templates/edit.controller.js b/src/Umbraco.Web.UI.Client/src/views/templates/edit.controller.js index 8e2b8337ad..97aa50cbbf 100644 --- a/src/Umbraco.Web.UI.Client/src/views/templates/edit.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/templates/edit.controller.js @@ -220,7 +220,7 @@ view: "macropicker", dialogData: {}, show: true, - title: "Insert macro", + title: localizationService.localize("template_insertMacro"), submit: function (model) { var macroObject = macroService.collectValueData(model.selectedMacro, model.macroParams, "Mvc"); @@ -247,6 +247,7 @@ closeButtonlabel: "Cancel", view: "insertfield", show: true, + title: localizationService.localize("template_insertPageField"), submit: function (model) { insert(model.umbracoField); vm.pageFieldOverlay.show = false; @@ -271,7 +272,7 @@ entityType: "dictionary", multiPicker: false, show: true, - title: "Insert dictionary item", + title: localizationService.localize("template_insertDictionaryItem"), select: function(node){ //crappy hack due to dictionary items not in umbracoNode table var code = "@Umbraco.GetDictionaryValue(\"" + node.name + "\")"; @@ -298,7 +299,7 @@ entityType: "partialView", multiPicker: false, show: true, - title: "Insert Partial view", + title: localizationService.localize("template_insertPartialView"), select: function(node){ //crappy hack due to dictionary items not in umbracoNode table var nodeNameWithPath = node.id.replace(".cshtml", ""); @@ -322,7 +323,7 @@ vm.queryBuilderOverlay = { view: "querybuilder", show: true, - title: "Query for content", + title: localizationService.localize("template_queryBuilder"), submit: function (model) { @@ -356,7 +357,7 @@ vm.sectionsOverlay = { view: "templatesections", - hasMaster: vm.template.masterTemplateAlias, + isMaster: vm.template.isMasterTemplate, submitButtonLabel: "Insert", show: true, submit: function(model) { @@ -401,7 +402,7 @@ vm.masterTemplateOverlay = { view: "itempicker", - title: "Choose master template", + title: localizationService.localize("template_mastertemplate"), availableItems: availableMasterTemplates, show: true, submit: function(model) { @@ -457,7 +458,7 @@ return templateName; } else { - return "No master"; + return "no master"; } } diff --git a/src/Umbraco.Web.UI.Client/src/views/templates/edit.html b/src/Umbraco.Web.UI.Client/src/views/templates/edit.html index b0e15e8ad7..2e5593894c 100644 --- a/src/Umbraco.Web.UI.Client/src/views/templates/edit.html +++ b/src/Umbraco.Web.UI.Client/src/views/templates/edit.html @@ -62,7 +62,7 @@
  • Value
  • Partial view
  • Dictionary
  • -
  • Macro
  • +
  • Macro
  • diff --git a/src/Umbraco.Web/Models/ContentEditing/TemplateDisplay.cs b/src/Umbraco.Web/Models/ContentEditing/TemplateDisplay.cs index 8e813bd3d3..91c1aefdb0 100644 --- a/src/Umbraco.Web/Models/ContentEditing/TemplateDisplay.cs +++ b/src/Umbraco.Web/Models/ContentEditing/TemplateDisplay.cs @@ -36,6 +36,9 @@ namespace Umbraco.Web.Models.ContentEditing [DataMember(Name = "masterTemplateAlias")] public string MasterTemplateAlias { get; set; } + [DataMember(Name = "isMasterTemplate")] + public bool IsMasterTemplate { get; set; } + /// /// This is used to add custom localized messages/strings to the response for the app to use for localized UI purposes. /// From b413a6eeaedf77ae631e6e28afd7363414f9bcf3 Mon Sep 17 00:00:00 2001 From: Per Ploug Date: Fri, 13 Jan 2017 13:20:49 +0100 Subject: [PATCH 02/13] English translations --- src/Umbraco.Web.UI/umbraco/config/lang/en.xml | 40 ++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml index 2021be1d9d..3a7a0fda7c 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml @@ -1032,6 +1032,9 @@ To manage your website, simply open the Umbraco back office and start adding con Sections Insert content area Insert content area placeholder + + Insert + Choose what to insert into your template Dictionary item A dictionary item is a placeholder for a translatable piece of text, which makes it easy to create designs for multilingual websites. @@ -1053,15 +1056,50 @@ To manage your website, simply open the Umbraco back office and start adding con Master template + No master template + + Render child template + + @RenderBody() placeholder. + ]]> + + + + Define a named section + + @section { ... }. This can be rendered in a + specific area of the parent of this template, by using @RenderSection. + ]]> + + + Render a named section + + @RenderSection(name) placeholder. + This renders an area of a child template which is wrapped in a corresponding @section [name]{ ... } definition. + ]]> + + + Section Name + Section is mandatory + + If mandatory, the child template must contain a @section definition, otherwise an error is shown. + + Query builder items returned, in I want + everything from where and - everything + Template From 99f66fe6a30c1542bcd2084e55e411ef2e9f91a1 Mon Sep 17 00:00:00 2001 From: Per Ploug Date: Fri, 13 Jan 2017 13:21:37 +0100 Subject: [PATCH 03/13] The danish language files - WIP The danish language has such elements when used to discusssed semi-technical-english terms --- src/Umbraco.Web.UI/umbraco/config/lang/da.xml | 86 +++++++++++++++++-- 1 file changed, 79 insertions(+), 7 deletions(-) diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/da.xml b/src/Umbraco.Web.UI/umbraco/config/lang/da.xml index b0452fb631..3c52d7f1a1 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/da.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/da.xml @@ -1004,17 +1004,89 @@ Mange hilsner fra Umbraco robotten Vis prøve Styles + - Rediger skabelon - Indsæt indholdsområde - Indsæt indholdsområdemarkering - Indsæt ordbogselement - Indsæt makro - Indsæt Umbraco sidefelt + Rediger skabelong + + Sektioner + Insert content area + Insert content area placeholder + + Indsæt + Vælg hvad du vil indsætte + + Oversættelse + Indsætter en oversætbar tekst som skifter efter det sprog som websitet vises i. + + Makro + + En makro er et element som kan have forskellige indstillinger når det indsættes. + Det er glimrende som en genbrugelig del af dit design såsom gallerier, formularer + og lister. + + + Value + Displays the value of a named field from the current page, with options to modify the value or fallback to alternative values. + + Partial view + + A partial view is a separate template file which can be rendered inside another + template, it's great for reusing markup or for separating complex templates into separate files. + + Master skabelon - Lynguide til Umbracos skabelontags + Ingen master skabelon + + Indsæt en underliggende skabelon + + @RenderBody() element. + ]]> + + + + Definer en sektion + + @section { ... }. Herefter kan denne sektion flettes ind i + overliggende skabelon ved at indsætte et @RenderSection element. + ]]> + + + Indsæt en sektion + + @RenderSection(name) element. Den underliggende skabelon skal have + defineret en sektion via et @section [name]{ ... } element. + ]]> + + + Sektion navn + Sektionen er oblikatorisk + + + Hvis oblikatorisk, skal under-skabelonen indeholde en @section definition. + + + + Query builder + sider returneret, på + + Returner + alt + fra + filtre + og + + + Skabelon + + Alternativt felt Alternativ tekst From 7a0ac625ff9342d403e67e2279f71ad9a350261d Mon Sep 17 00:00:00 2001 From: Per Ploug Date: Mon, 16 Jan 2017 10:13:32 +0100 Subject: [PATCH 04/13] Last remaining dk translation strings This needs a review by the dynamic writing duo vera and martin. --- src/Umbraco.Web.UI/umbraco/config/lang/da.xml | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/da.xml b/src/Umbraco.Web.UI/umbraco/config/lang/da.xml index 3c52d7f1a1..e14a0f9109 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/da.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/da.xml @@ -1009,11 +1009,11 @@ Mange hilsner fra Umbraco robotten Rediger skabelong Sektioner - Insert content area - Insert content area placeholder + Indsæt indholdsområde + Indsæt indholdsområde placeholder Indsæt - Vælg hvad du vil indsætte + Hvad vil du indsætte ? Oversættelse Indsætter en oversætbar tekst som skifter efter det sprog som websitet vises i. @@ -1021,17 +1021,20 @@ Mange hilsner fra Umbraco robotten Makro En makro er et element som kan have forskellige indstillinger når det indsættes. - Det er glimrende som en genbrugelig del af dit design såsom gallerier, formularer + Brug det som en genbrugelig del af dit design såsom gallerier, formularer og lister. - Value - Displays the value of a named field from the current page, with options to modify the value or fallback to alternative values. + Side værdi + + Viser værdien af et felt fra den nuværende side. Kan indstilles til at bruge rekursive værdier eller + vise en standard værdi i tilfælde af at feltet er tomt. + Partial view - A partial view is a separate template file which can be rendered inside another - template, it's great for reusing markup or for separating complex templates into separate files. + Et Partial View er et skabelon element som kan indsættes i andre skabeloner og derved + genbruges og deles på tværs af side-skabelonerne. Master skabelon @@ -1081,8 +1084,6 @@ Mange hilsner fra Umbraco robotten filtre og - - Skabelon From 01f50a243b3fcec4a3bc49dc6b1c86dfb97efa3b Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Tue, 17 Jan 2017 14:13:20 +0100 Subject: [PATCH 05/13] translate master template and no macros --- .../views/common/overlays/macropicker/macropicker.html | 8 ++++---- .../src/views/templates/edit.controller.js | 8 -------- src/Umbraco.Web.UI.Client/src/views/templates/edit.html | 6 +++++- src/Umbraco.Web.UI/umbraco/config/lang/da.xml | 2 ++ src/Umbraco.Web.UI/umbraco/config/lang/en.xml | 2 ++ 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/common/overlays/macropicker/macropicker.html b/src/Umbraco.Web.UI.Client/src/views/common/overlays/macropicker/macropicker.html index 418e6b5ca6..6bcbaad50c 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/overlays/macropicker/macropicker.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/overlays/macropicker/macropicker.html @@ -27,12 +27,12 @@ - - + + There are no macros available to insert -
    diff --git a/src/Umbraco.Web.UI.Client/src/views/templates/edit.controller.js b/src/Umbraco.Web.UI.Client/src/views/templates/edit.controller.js index 97aa50cbbf..4cf55f4768 100644 --- a/src/Umbraco.Web.UI.Client/src/views/templates/edit.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/templates/edit.controller.js @@ -444,23 +444,15 @@ } function getMasterTemplateName(masterTemplateAlias, templates) { - if(masterTemplateAlias) { - var templateName = ""; - angular.forEach(templates, function(template){ if(template.alias === masterTemplateAlias) { templateName = template.name; } }); - return templateName; - - } else { - return "no master"; } - } function removeMasterTemplate() { diff --git a/src/Umbraco.Web.UI.Client/src/views/templates/edit.html b/src/Umbraco.Web.UI.Client/src/views/templates/edit.html index 2e5593894c..bdfb9517f3 100644 --- a/src/Umbraco.Web.UI.Client/src/views/templates/edit.html +++ b/src/Umbraco.Web.UI.Client/src/views/templates/edit.html @@ -33,7 +33,11 @@ class="umb-era-button umb-button--s" ng-click="vm.openMasterTemplateOverlay()"> - Master template: {{ vm.getMasterTemplateName(vm.template.masterTemplateAlias, vm.templates) }} + Master template: + + {{ vm.getMasterTemplateName(vm.template.masterTemplateAlias, vm.templates) }} + No master + diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/da.xml b/src/Umbraco.Web.UI/umbraco/config/lang/da.xml index e14a0f9109..32b1ef780e 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/da.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/da.xml @@ -291,6 +291,7 @@ Vælg medlem Vælg medlemsgruppe Der er ingen parametre for denne makro + Der er ikke tilføjet nogle makroer Link dit Fjern link fra dit konto @@ -1039,6 +1040,7 @@ Mange hilsner fra Umbraco robotten Master skabelon Ingen master skabelon + Ingen master Indsæt en underliggende skabelon diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml index 3a7a0fda7c..7243a34490 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml @@ -305,6 +305,7 @@ Select member group No icons were found There are no parameters for this macro + There are no macros available to insert External login providers Exception Details Stacktrace @@ -1057,6 +1058,7 @@ To manage your website, simply open the Umbraco back office and start adding con Master template No master template + No master Render child template From 86ffd66c8a0ff983331b3716a3f020fa218cc6c9 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 19 Jan 2017 09:50:18 +0100 Subject: [PATCH 06/13] update danish translations --- src/Umbraco.Web.UI/umbraco/config/lang/da.xml | 31 +++++++++---------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/da.xml b/src/Umbraco.Web.UI/umbraco/config/lang/da.xml index 32b1ef780e..b7d178ef41 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/da.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/da.xml @@ -291,7 +291,7 @@ Vælg medlem Vælg medlemsgruppe Der er ingen parametre for denne makro - Der er ikke tilføjet nogle makroer + Der er ikke tilføjet nogen makroer Link dit Fjern link fra dit konto @@ -1007,39 +1007,38 @@ Mange hilsner fra Umbraco robotten - Rediger skabelong + Rediger skabelon Sektioner Indsæt indholdsområde - Indsæt indholdsområde placeholder + Indsæt pladsholder for indholdsområde Indsæt Hvad vil du indsætte ? Oversættelse - Indsætter en oversætbar tekst som skifter efter det sprog som websitet vises i. + Indsætter en oversætbar tekst, som skifter efter det sprog, som websitet vises i. Makro - En makro er et element som kan have forskellige indstillinger når det indsættes. - Brug det som en genbrugelig del af dit design såsom gallerier, formularer - og lister. + En makro er et element, som kan have forskellige indstillinger, når det indsættes. + Brug det som en genbrugelig del af dit design såsom gallerier, formularer og lister. - Side værdi + Sideværdi - Viser værdien af et felt fra den nuværende side. Kan indstilles til at bruge rekursive værdier eller - vise en standard værdi i tilfælde af at feltet er tomt. + Viser værdien af et felt fra den nuværende side. Kan indstilles til at bruge rekursive værdier eller + vise en standardværdi i tilfælde af, at feltet er tomt. Partial view - Et Partial View er et skabelon element som kan indsættes i andre skabeloner og derved - genbruges og deles på tværs af side-skabelonerne. + Et Partial View er et skabelonelement, som kan indsættes i andre skabeloner og derved + genbruges og deles på tværs af sideskabelonerne. Master skabelon - Ingen master skabelon + Ingen masterskabelon Ingen master Indsæt en underliggende skabelon @@ -1069,11 +1068,11 @@ Mange hilsner fra Umbraco robotten ]]> - Sektion navn - Sektionen er oblikatorisk + Sektionsnavn + Sektionen er obligatorisk - Hvis oblikatorisk, skal under-skabelonen indeholde en @section definition. + Hvis obligatorisk, skal underskabelonen indeholde en @section -definition. From eefd13547c82f63d90479cab4f296f6f3b8f697e Mon Sep 17 00:00:00 2001 From: Per Ploug Date: Thu, 19 Jan 2017 12:53:39 +0100 Subject: [PATCH 07/13] More localization of querybuilder --- .../querybuilder/querybuilder.controller.js | 15 ++++++++++++--- .../overlays/querybuilder/querybuilder.html | 4 ++-- src/Umbraco.Web.UI/umbraco/config/lang/da.xml | 5 ++++- src/Umbraco.Web.UI/umbraco/config/lang/en.xml | 8 +++++--- .../Editors/TemplateQueryController.cs | 6 ++++-- 5 files changed, 27 insertions(+), 11 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/common/overlays/querybuilder/querybuilder.controller.js b/src/Umbraco.Web.UI.Client/src/views/common/overlays/querybuilder/querybuilder.controller.js index 3939882969..8f28bd3674 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/overlays/querybuilder/querybuilder.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/common/overlays/querybuilder/querybuilder.controller.js @@ -1,7 +1,10 @@ (function () { "use strict"; - function QueryBuilderOverlayController($scope, templateQueryResource) { + function QueryBuilderOverlayController($scope, templateQueryResource, localizationService) { + + var everything = localizationService.localize("template_allContent"); + var myWebsite = localizationService.localize("template_myWebsite"); var vm = this; @@ -17,10 +20,10 @@ vm.query = { contentType: { - name: "Everything" + name: everything }, source: { - name: "My website" + name: myWebsite }, filters: [ { @@ -113,6 +116,12 @@ function trashFilter(query) { query.filters.splice(query, 1); + + //if we remove the last one, add a new one to generate ui for it. + if (query.filters.length == 0) { + query.filters.push({}); + } + } function changeSortOrder(query) { diff --git a/src/Umbraco.Web.UI.Client/src/views/common/overlays/querybuilder/querybuilder.html b/src/Umbraco.Web.UI.Client/src/views/common/overlays/querybuilder/querybuilder.html index 678733f1c8..542b7a3c6f 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/overlays/querybuilder/querybuilder.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/overlays/querybuilder/querybuilder.html @@ -5,7 +5,7 @@
    - I Want + I want
    @@ -91,7 +91,7 @@ - + diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/da.xml b/src/Umbraco.Web.UI/umbraco/config/lang/da.xml index b7d178ef41..6e4905cc7a 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/da.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/da.xml @@ -1080,8 +1080,11 @@ Mange hilsner fra Umbraco robotten sider returneret, på Returner - alt + alt indhold + indhold af typen "%0%" + fra + mit website filtre og diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml index 7243a34490..24391288bd 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml @@ -1096,15 +1096,17 @@ To manage your website, simply open the Umbraco back office and start adding con Query builder items returned, in - I want - everything + I want + all content + content of type "%0%" from + my website where and - Template + diff --git a/src/Umbraco.Web/Editors/TemplateQueryController.cs b/src/Umbraco.Web/Editors/TemplateQueryController.cs index e3c63dd22e..8693350c74 100644 --- a/src/Umbraco.Web/Editors/TemplateQueryController.cs +++ b/src/Umbraco.Web/Editors/TemplateQueryController.cs @@ -9,6 +9,7 @@ using System; using System.Diagnostics; using Umbraco.Web.Dynamics; using Umbraco.Web.Models.TemplateQuery; +using Umbraco.Core.Services; namespace Umbraco.Web.Editors { @@ -297,9 +298,10 @@ namespace Umbraco.Web.Editors { var contentTypes = ApplicationContext.Services.ContentTypeService.GetAllContentTypes() - .Select(x => new ContentTypeModel() { Alias = x.Alias, Name = x.Name }) + .Select(x => new ContentTypeModel() { Alias = x.Alias, Name = Services.TextService.Localize("template/contentOfType", tokens: new string[] { x.Name } ) }) .OrderBy(x => x.Name).ToList(); - contentTypes.Insert(0, new ContentTypeModel() { Alias = string.Empty, Name = "Everything" }); + + contentTypes.Insert(0, new ContentTypeModel() { Alias = string.Empty, Name = Services.TextService.Localize("template/allContent") }); return contentTypes; } From 072f0d15204a12459a33076fa6976fd2abd54b0b Mon Sep 17 00:00:00 2001 From: Warren Buckley Date: Mon, 23 Jan 2017 15:53:18 +0000 Subject: [PATCH 08/13] Adds in some extra propeties on JSON to store localization label for ascending & descending & use correct key for MyWebstie/WebSite Root that was already in lang file --- .../querybuilder/querybuilder.controller.js | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/common/overlays/querybuilder/querybuilder.controller.js b/src/Umbraco.Web.UI.Client/src/views/common/overlays/querybuilder/querybuilder.controller.js index 8f28bd3674..3c0199d7bd 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/overlays/querybuilder/querybuilder.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/common/overlays/querybuilder/querybuilder.controller.js @@ -4,8 +4,11 @@ function QueryBuilderOverlayController($scope, templateQueryResource, localizationService) { var everything = localizationService.localize("template_allContent"); - var myWebsite = localizationService.localize("template_myWebsite"); + var myWebsite = localizationService.localize("template_websiteRoot"); + var ascendingTranslation = localizationService.localize("template_ascending"); + var descendingTranslation = localizationService.localize("template_descending"); + var vm = this; vm.properties = []; @@ -36,7 +39,13 @@ alias: "", name: "", }, - direction: "ascending" + direction: "ascending", //This is the value for sorting sent to server + translation: { + currentLabel: ascendingTranslation, //This is the localized UI value in the the dialog + ascending: ascendingTranslation, + descending: descendingTranslation + } + } }; @@ -77,7 +86,6 @@ vm.contentPickerOverlay = { view: "contentpicker", show: true, - submitButtonLabel: "Insert", submit: function(model) { var selectedNodeId = model.selection[0].id; @@ -86,7 +94,7 @@ if (selectedNodeId > 0) { query.source = { id: selectedNodeId, name: selectedNodeName }; } else { - query.source.name = "My website"; + query.source.name = myWebsite; delete query.source.id; } @@ -127,8 +135,10 @@ function changeSortOrder(query) { if (query.sort.direction === "ascending") { query.sort.direction = "descending"; + query.sort.translation.currentLabel = query.sort.translation.descending; } else { query.sort.direction = "ascending"; + query.sort.translation.currentLabel = query.sort.translation.ascending; } throttledFunc(); } @@ -137,8 +147,10 @@ query.sort.property = property; if (property.type === "datetime") { query.sort.direction = "descending"; + query.sort.translation.currentLabel = query.sort.translation.descending; } else { query.sort.direction = "ascending"; + query.sort.translation.currentLabel = query.sort.translation.ascending; } throttledFunc(); } From 25822a7564e0c3e881ac46398bc0c50c2be660b2 Mon Sep 17 00:00:00 2001 From: Warren Buckley Date: Mon, 23 Jan 2017 16:01:05 +0000 Subject: [PATCH 09/13] Fix up orderby translation in view and use our new JSON properties for display the tranlsated value for asc & desc --- .../src/views/common/overlays/querybuilder/querybuilder.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/common/overlays/querybuilder/querybuilder.html b/src/Umbraco.Web.UI.Client/src/views/common/overlays/querybuilder/querybuilder.html index 542b7a3c6f..d3a4835470 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/overlays/querybuilder/querybuilder.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/overlays/querybuilder/querybuilder.html @@ -100,7 +100,7 @@ From 47e4c123959c24ba2059595466215ea8a2f99243 Mon Sep 17 00:00:00 2001 From: Warren Buckley Date: Mon, 23 Jan 2017 16:04:14 +0000 Subject: [PATCH 10/13] Adds in translations into the JSON objects we send back from the API as the display name (not the aliases for querying) --- .../Editors/TemplateQueryController.cs | 59 +++++++++++-------- 1 file changed, 35 insertions(+), 24 deletions(-) diff --git a/src/Umbraco.Web/Editors/TemplateQueryController.cs b/src/Umbraco.Web/Editors/TemplateQueryController.cs index 8693350c74..cd004fe926 100644 --- a/src/Umbraco.Web/Editors/TemplateQueryController.cs +++ b/src/Umbraco.Web/Editors/TemplateQueryController.cs @@ -30,33 +30,44 @@ namespace Umbraco.Web.Editors { } - private static readonly IEnumerable Terms = new List() + private IEnumerable Terms + { + get { - new OperathorTerm("is", Operathor.Equals, new [] {"string"}), - new OperathorTerm("is not", Operathor.NotEquals, new [] {"string"}), - new OperathorTerm("before", Operathor.LessThan, new [] {"datetime"}), - new OperathorTerm("before (including selected date)", Operathor.LessThanEqualTo, new [] {"datetime"}), - new OperathorTerm("after", Operathor.GreaterThan, new [] {"datetime"}), - new OperathorTerm("after (including selected date)", Operathor.GreaterThanEqualTo, new [] {"datetime"}), - new OperathorTerm("equals", Operathor.Equals, new [] {"int"}), - new OperathorTerm("does not equal", Operathor.NotEquals, new [] {"int"}), - new OperathorTerm("contains", Operathor.Contains, new [] {"string"}), - new OperathorTerm("does not contain", Operathor.NotContains, new [] {"string"}), - new OperathorTerm("greater than", Operathor.GreaterThan, new [] {"int"}), - new OperathorTerm("greater than or equal to", Operathor.GreaterThanEqualTo, new [] {"int"}), - new OperathorTerm("less than", Operathor.LessThan, new [] {"int"}), - new OperathorTerm("less than or equal to", Operathor.LessThanEqualTo, new [] {"int"}) - }; + return new List() + { + new OperathorTerm(Services.TextService.Localize("template/is"), Operathor.Equals, new [] {"string"}), + new OperathorTerm(Services.TextService.Localize("template/isNot"), Operathor.NotEquals, new [] {"string"}), + new OperathorTerm(Services.TextService.Localize("template/before"), Operathor.LessThan, new [] {"datetime"}), + new OperathorTerm(Services.TextService.Localize("template/beforeIncDate"), Operathor.LessThanEqualTo, new [] {"datetime"}), + new OperathorTerm(Services.TextService.Localize("template/after"), Operathor.GreaterThan, new [] {"datetime"}), + new OperathorTerm(Services.TextService.Localize("template/afterIncDate"), Operathor.GreaterThanEqualTo, new [] {"datetime"}), + new OperathorTerm(Services.TextService.Localize("template/equals"), Operathor.Equals, new [] {"int"}), + new OperathorTerm(Services.TextService.Localize("template/doesNotEqual"), Operathor.NotEquals, new [] {"int"}), + new OperathorTerm(Services.TextService.Localize("template/contains"), Operathor.Contains, new [] {"string"}), + new OperathorTerm(Services.TextService.Localize("template/doesNotContain"), Operathor.NotContains, new [] {"string"}), + new OperathorTerm(Services.TextService.Localize("template/greaterThan"), Operathor.GreaterThan, new [] {"int"}), + new OperathorTerm(Services.TextService.Localize("template/greaterThanEqual"), Operathor.GreaterThanEqualTo, new [] {"int"}), + new OperathorTerm(Services.TextService.Localize("template/lessThan"), Operathor.LessThan, new [] {"int"}), + new OperathorTerm(Services.TextService.Localize("template/lessThanEqual"), Operathor.LessThanEqualTo, new [] {"int"}) + }; + } + } - private static readonly IEnumerable Properties = new List() + private IEnumerable Properties + { + get { - new PropertyModel() { Name = "Id", Alias = "Id", Type = "int" }, - new PropertyModel() { Name = "Name", Alias = "Name", Type = "string" }, - //new PropertyModel() { Name = "Url", Alias = "url", Type = "string" }, - new PropertyModel() { Name = "Created Date", Alias = "CreateDate", Type = "datetime" }, - new PropertyModel() { Name = "Last Updated Date", Alias = "UpdateDate", Type = "datetime" } - - }; + return new List() + { + new PropertyModel() {Name = Services.TextService.Localize("template/id"), Alias = "Id", Type = "int"}, + new PropertyModel() {Name = Services.TextService.Localize("template/name"), Alias = "Name", Type = "string"}, + //new PropertyModel() { Name = "Url", Alias = "url", Type = "string" }, + new PropertyModel() {Name = Services.TextService.Localize("template/createdDate"), Alias = "CreateDate", Type = "datetime"}, + new PropertyModel() {Name = Services.TextService.Localize("template/lastUpdatedDate"), Alias = "UpdateDate", Type = "datetime"} + }; + } + } public QueryResultModel PostTemplateQuery(QueryModel model) { From 0bba68a7f5e6df069454bf0eae97b2c5071a1fe8 Mon Sep 17 00:00:00 2001 From: Warren Buckley Date: Mon, 23 Jan 2017 16:06:37 +0000 Subject: [PATCH 11/13] Added keys needed in EN lang files --- src/Umbraco.Web.UI/umbraco/config/lang/en.xml | 23 ++++ .../umbraco/config/lang/en_us.xml | 100 +++++++++++++++++- 2 files changed, 119 insertions(+), 4 deletions(-) diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml index 24391288bd..444ecc2e3d 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/en.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/en.xml @@ -1104,6 +1104,29 @@ To manage your website, simply open the Umbraco back office and start adding con where and + is + is not + before + before (including selected date) + after + after (including selected date) + equals + does not equal + contains + does not contain + greater than + greater than or equal to + less than + less than or equal to + + Id + Name + Created Date + Last Updated Date + + order by + ascending + descending Template diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml b/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml index 173da6cc9b..a9c4e751f9 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml @@ -1027,13 +1027,105 @@ To manage your website, simply open the Umbraco back office and start adding con Edit template + + Sections Insert content area Insert content area placeholder - Insert dictionary item - Insert Macro - Insert Umbraco page field + + Insert + Choose what to insert into your template + + Dictionary item + A dictionary item is a placeholder for a translatable piece of text, which makes it easy to create designs for multilingual websites. + + Macro + + A Macro is a configurable component which is great for + reusable parts of your design, where you need the option to provide parameters, + such as galleries, forms and lists. + + + Value + Displays the value of a named field from the current page, with options to modify the value or fallback to alternative values. + + Partial view + + A partial view is a separate template file which can be rendered inside another + template, it's great for reusing markup or for separating complex templates into separate files. + + Master template - Quick Guide to Umbraco template tags + No master template + No master + + Render child template + + @RenderBody() placeholder. + ]]> + + + + Define a named section + + @section { ... }. This can be rendered in a + specific area of the parent of this template, by using @RenderSection. + ]]> + + + Render a named section + + @RenderSection(name) placeholder. + This renders an area of a child template which is wrapped in a corresponding @section [name]{ ... } definition. + ]]> + + + Section Name + Section is mandatory + + If mandatory, the child template must contain a @section definition, otherwise an error is shown. + + + + Query builder + items returned, in + + I want + all content + content of type "%0%" + from + my website + where + and + + is + is not + before + before (including selected date) + after + after (including selected date) + equals + does not equal + contains + does not contain + greater than + greater than or equal to + less than + less than or equal to + + Id + Name + Created Date + Last Updated Date + + order by + ascending + descending + Template From c1fcb37642d9a25be274b9c0ce45f55bee904b8e Mon Sep 17 00:00:00 2001 From: Warren Buckley Date: Mon, 23 Jan 2017 16:08:38 +0000 Subject: [PATCH 12/13] Adds keys for DA file but appends them with DA to try & make it clear they need some translation love as my Danish is to be desired :) --- src/Umbraco.Web.UI/umbraco/config/lang/da.xml | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/da.xml b/src/Umbraco.Web.UI/umbraco/config/lang/da.xml index 6e4905cc7a..8528cb851a 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/da.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/da.xml @@ -1088,6 +1088,30 @@ Mange hilsner fra Umbraco robotten filtre og + is DA + is not DA + before DA + before (including selected date) DA + after DA + after (including selected date) DA + equals DA + does not equal DA + contains DA + does not contain DA + greater than DA + greater than or equal to DA + less than DA + less than or equal to DA + + Id DA + Name DA + Created Date DA + Last Updated Date DA + + order by DA + ascending DA + descending DA + Skabelon From 6bcd1e44f97941095c6f278801b77215e96c5e8e Mon Sep 17 00:00:00 2001 From: Sebastiaan Janssen Date: Thu, 26 Jan 2017 18:24:56 +0100 Subject: [PATCH 13/13] If translation is not done yet, better to leave it English so at least it kind of makes sense --- src/Umbraco.Web.UI/umbraco/config/lang/da.xml | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/Umbraco.Web.UI/umbraco/config/lang/da.xml b/src/Umbraco.Web.UI/umbraco/config/lang/da.xml index 8528cb851a..9ee79ce8d8 100644 --- a/src/Umbraco.Web.UI/umbraco/config/lang/da.xml +++ b/src/Umbraco.Web.UI/umbraco/config/lang/da.xml @@ -1088,29 +1088,29 @@ Mange hilsner fra Umbraco robotten filtre og - is DA - is not DA - before DA - before (including selected date) DA - after DA - after (including selected date) DA - equals DA - does not equal DA - contains DA - does not contain DA - greater than DA - greater than or equal to DA - less than DA - less than or equal to DA + is + is not + before + before (including selected date) + after + after (including selected date) + equals + does not equal + contains + does not contain + greater than + greater than or equal to + less than + less than or equal to - Id DA - Name DA - Created Date DA - Last Updated Date DA + Id + Name + Created Date + Last Updated Date - order by DA - ascending DA - descending DA + order by + ascending + descending Skabelon