From 1525765d03e19fc08beba555db4f14ea6bd0acce Mon Sep 17 00:00:00 2001 From: Tobias Klika Date: Tue, 4 Aug 2020 15:49:54 +0200 Subject: [PATCH] better try a custom .nuspec? --- build/build.ps1 | 652 +++--------------- zero.Core/zero.Core.csproj | 6 + zero.Web/zero.Web.csproj | 26 + zero.XTest/Class1.cs | 8 + .../Resources/Countries/countries.de-de.json | 257 +++++++ .../Resources/Countries/countries.en-us.json | 257 +++++++ .../Resources/Localization/zero.en-us.json | 446 ++++++++++++ zero.XTest/zero.XTest.csproj | 56 ++ zero.sln | 6 + 9 files changed, 1169 insertions(+), 545 deletions(-) create mode 100644 zero.XTest/Class1.cs create mode 100644 zero.XTest/Resources/Countries/countries.de-de.json create mode 100644 zero.XTest/Resources/Countries/countries.en-us.json create mode 100644 zero.XTest/Resources/Localization/zero.en-us.json create mode 100644 zero.XTest/zero.XTest.csproj diff --git a/build/build.ps1 b/build/build.ps1 index 3ba347a6..784e4bb9 100644 --- a/build/build.ps1 +++ b/build/build.ps1 @@ -1,546 +1,108 @@ - param ( - # get, don't execute - [Parameter(Mandatory=$false)] - [Alias("g")] - [switch] $get = $false, - - # run local, don't download, assume everything is ready - [Parameter(Mandatory=$false)] - [Alias("l")] - [Alias("loc")] - [switch] $local = $false, - - # enable docfx - [Parameter(Mandatory=$false)] - [Alias("doc")] - [switch] $docfx = $false, - - # keep the build directories, don't clear them - [Parameter(Mandatory=$false)] - [Alias("c")] - [Alias("cont")] - [switch] $continue = $false, - - # execute a command - [Parameter(Mandatory=$false, ValueFromRemainingArguments=$true)] - [String[]] - $command - ) - - # ################################################################ - # BOOTSTRAP - # ################################################################ - - # create and boot the buildsystem - $ubuild = &"$PSScriptRoot\build-bootstrap.ps1" - if (-not $?) { return } - $ubuild.Boot($PSScriptRoot, - @{ Local = $local; WithDocFx = $docfx }, - @{ Continue = $continue }) - if ($ubuild.OnError()) { return } - - Write-Host "Umbraco Cms Build" - Write-Host "Umbraco.Build v$($ubuild.BuildVersion)" - - # ################################################################ - # TASKS - # ################################################################ - - $ubuild.DefineMethod("SetMoreUmbracoVersion", - { - param ( $semver ) - - $release = "" + $semver.Major + "." + $semver.Minor + "." + $semver.Patch - - Write-Host "Update IIS Express port in csproj" - $updater = New-Object "Umbraco.Build.ExpressPortUpdater" - $csproj = "$($this.SolutionRoot)\src\Umbraco.Web.UI\Umbraco.Web.UI.csproj" - $updater.Update($csproj, $release) - }) - - $ubuild.DefineMethod("SandboxNode", - { - $global:node_path = $env:path - $nodePath = $this.BuildEnv.NodePath - $gitExe = (Get-Command git).Source - if (-not $gitExe) { $gitExe = (Get-Command git).Path } - $gitPath = [System.IO.Path]::GetDirectoryName($gitExe) - $env:path = "$nodePath;$gitPath" - - $global:node_nodepath = $this.ClearEnvVar("NODEPATH") - $global:node_npmcache = $this.ClearEnvVar("NPM_CONFIG_CACHE") - $global:node_npmprefix = $this.ClearEnvVar("NPM_CONFIG_PREFIX") - - # https://github.com/gruntjs/grunt-contrib-connect/issues/235 - $this.SetEnvVar("NODE_NO_HTTP2", "1") - }) - - $ubuild.DefineMethod("RestoreNode", - { - $env:path = $node_path - - $this.SetEnvVar("NODEPATH", $node_nodepath) - $this.SetEnvVar("NPM_CONFIG_CACHE", $node_npmcache) - $this.SetEnvVar("NPM_CONFIG_PREFIX", $node_npmprefix) - - $ignore = $this.ClearEnvVar("NODE_NO_HTTP2") - }) - - $ubuild.DefineMethod("CompileBelle", - { - $src = "$($this.SolutionRoot)\src" - $log = "$($this.BuildTemp)\belle.log" - - Write-Host "Compile Belle" - Write-Host "Logging to $log" - - # get a temp clean node env (will restore) - $this.SandboxNode() - - # stupid PS is going to gather all "warnings" in $error - # so we have to take care of it else they'll bubble and kill the build - if ($error.Count -gt 0) { return } - - try { - Push-Location "$($this.SolutionRoot)\src\Umbraco.Web.UI.Client" - Write-Output "" > $log - - Write-Output "### node version is:" > $log - node -v >> $log 2>&1 - if (-not $?) { throw "Failed to report node version." } - - Write-Output "### npm version is:" >> $log 2>&1 - npm -v >> $log 2>&1 - if (-not $?) { throw "Failed to report npm version." } - - Write-Output "### clean npm cache" >> $log 2>&1 - npm cache clean --force >> $log 2>&1 - $error.Clear() # that one can fail 'cos security bug - ignore - - Write-Output "### npm install" >> $log 2>&1 - npm install >> $log 2>&1 - Write-Output ">> $? $($error.Count)" >> $log 2>&1 - # Don't really care about the messages from npm install making us think there are errors - $error.Clear() - - Write-Output "### gulp build for version $($this.Version.Release)" >> $log 2>&1 - npx gulp build --buildversion=$this.Version.Release >> $log 2>&1 - if (-not $?) { throw "Failed to build" } # that one is expected to work - } finally { - Pop-Location - - # FIXME: should we filter the log to find errors? - #get-content .\build.tmp\belle.log | %{ if ($_ -match "build") { write $_}} - - # restore - $this.RestoreNode() - } - - # setting node_modules folder to hidden - # used to prevent VS13 from crashing on it while loading the websites project - # also makes sure aspnet compiler does not try to handle rogue files and chokes - # in VSO with Microsoft.VisualC.CppCodeProvider -related errors - # use get-item -force 'cos it might be hidden already - Write-Host "Set hidden attribute on node_modules" - $dir = Get-Item -force "$src\Umbraco.Web.UI.Client\node_modules" - $dir.Attributes = $dir.Attributes -bor ([System.IO.FileAttributes]::Hidden) - }) - - $ubuild.DefineMethod("CompileUmbraco", - { - $buildConfiguration = "Release" - - $src = "$($this.SolutionRoot)\src" - $log = "$($this.BuildTemp)\msbuild.umbraco.log" - - if ($this.BuildEnv.VisualStudio -eq $null) - { - throw "Build environment does not provide VisualStudio." - } - - Write-Host "Compile Umbraco" - Write-Host "Logging to $log" - - # beware of the weird double \\ at the end of paths - # see http://edgylogic.com/blog/powershell-and-external-commands-done-right/ - &$this.BuildEnv.VisualStudio.MsBuild "$src\Umbraco.Web.UI\Umbraco.Web.UI.csproj" ` - /p:WarningLevel=0 ` - /p:Configuration=$buildConfiguration ` - /p:Platform=AnyCPU ` - /p:UseWPP_CopyWebApplication=True ` - /p:PipelineDependsOnBuild=False ` - /p:OutDir="$($this.BuildTemp)\bin\\" ` - /p:WebProjectOutputDir="$($this.BuildTemp)\WebApp\\" ` - /p:Verbosity=minimal ` - /t:Clean`;Rebuild ` - /tv:"$($this.BuildEnv.VisualStudio.ToolsVersion)" ` - /p:UmbracoBuild=True ` - > $log - - if (-not $?) { throw "Failed to compile Umbraco.Web.UI." } - - # /p:UmbracoBuild tells the csproj that we are building from PS, not VS - }) - - $ubuild.DefineMethod("PrepareTests", - { - Write-Host "Prepare Tests" - - # FIXME: - idea is to avoid rebuilding everything for tests - # but because of our weird assembly versioning (with .* stuff) - # everything gets rebuilt all the time... - #Copy-Files "$tmp\bin" "." "$tmp\tests" - - # data - Write-Host "Copy data files" - if (-not (Test-Path -Path "$($this.BuildTemp)\tests\Packaging" )) - { - Write-Host "Create packaging directory" - mkdir "$($this.BuildTemp)\tests\Packaging" > $null - } - $this.CopyFiles("$($this.SolutionRoot)\src\Umbraco.Tests\Packaging\Packages", "*", "$($this.BuildTemp)\tests\Packaging\Packages") - - # required for package install tests - if (-not (Test-Path -Path "$($this.BuildTemp)\tests\bin" )) - { - Write-Host "Create bin directory" - mkdir "$($this.BuildTemp)\tests\bin" > $null - } - }) - - $ubuild.DefineMethod("CompileTests", - { - $buildConfiguration = "Release" - $log = "$($this.BuildTemp)\msbuild.tests.log" - - if ($this.BuildEnv.VisualStudio -eq $null) - { - throw "Build environment does not provide VisualStudio." - } - - Write-Host "Compile Tests" - Write-Host "Logging to $log" - - # beware of the weird double \\ at the end of paths - # see http://edgylogic.com/blog/powershell-and-external-commands-done-right/ - &$this.BuildEnv.VisualStudio.MsBuild "$($this.SolutionRoot)\src\Umbraco.Tests\Umbraco.Tests.csproj" ` - /p:WarningLevel=0 ` - /p:Configuration=$buildConfiguration ` - /p:Platform=AnyCPU ` - /p:UseWPP_CopyWebApplication=True ` - /p:PipelineDependsOnBuild=False ` - /p:OutDir="$($this.BuildTemp)\tests\\" ` - /p:Verbosity=minimal ` - /t:Build ` - /tv:"$($this.BuildEnv.VisualStudio.ToolsVersion)" ` - /p:UmbracoBuild=True ` - > $log - - if (-not $?) { throw "Failed to compile tests." } - - # /p:UmbracoBuild tells the csproj that we are building from PS - }) - - $ubuild.DefineMethod("PreparePackages", - { - Write-Host "Prepare Packages" - - $src = "$($this.SolutionRoot)\src" - $tmp = "$($this.BuildTemp)" - $out = "$($this.BuildOutput)" - - $buildConfiguration = "Release" - - # restore web.config - $this.TempRestoreFile("$src\Umbraco.Web.UI\web.config") - - # cleanup build - Write-Host "Clean build" - $this.RemoveFile("$tmp\bin\*.dll.config") - $this.RemoveFile("$tmp\WebApp\bin\*.dll.config") - - # cleanup presentation - Write-Host "Cleanup presentation" - $this.RemoveDirectory("$tmp\WebApp\umbraco.presentation") - - # create directories - Write-Host "Create directories" - mkdir "$tmp\Configs" > $null - mkdir "$tmp\Configs\Lang" > $null - mkdir "$tmp\WebApp\App_Data" > $null - #mkdir "$tmp\WebApp\Media" > $null - #mkdir "$tmp\WebApp\Views" > $null - - # copy various files - Write-Host "Copy xml documentation" - Copy-Item -force "$tmp\bin\*.xml" "$tmp\WebApp\bin" - - Write-Host "Copy transformed configs and langs" - # note: exclude imageprocessor/*.config as imageprocessor pkg installs them - $this.CopyFiles("$tmp\WebApp\config", "*.config", "$tmp\Configs", ` - { -not $_.RelativeName.StartsWith("imageprocessor") }) - $this.CopyFiles("$tmp\WebApp\config", "*.js", "$tmp\Configs") - $this.CopyFiles("$tmp\WebApp\config\lang", "*.xml", "$tmp\Configs\Lang") - $this.CopyFile("$tmp\WebApp\web.config", "$tmp\Configs\web.config.transform") - - Write-Host "Copy transformed web.config" - $this.CopyFile("$src\Umbraco.Web.UI\web.$buildConfiguration.Config.transformed", "$tmp\WebApp\web.config") - - # offset the modified timestamps on all umbraco dlls, as WebResources - # break if date is in the future, which, due to timezone offsets can happen. - Write-Host "Offset dlls timestamps" - Get-ChildItem -r "$tmp\*.dll" | ForEach-Object { - $_.CreationTime = $_.CreationTime.AddHours(-11) - $_.LastWriteTime = $_.LastWriteTime.AddHours(-11) - } - - # copy libs - Write-Host "Copy SqlCE libraries" - $nugetPackages = $env:NUGET_PACKAGES - if (-not $nugetPackages) - { - $nugetPackages = [System.Environment]::ExpandEnvironmentVariables("%userprofile%\.nuget\packages") - } - $this.CopyFiles("$nugetPackages\umbraco.sqlserverce\4.0.0.1\runtimes\win-x86\native", "*.*", "$tmp\bin\x86") - $this.CopyFiles("$nugetPackages\umbraco.sqlserverce\4.0.0.1\runtimes\win-x64\native", "*.*", "$tmp\bin\amd64") - $this.CopyFiles("$nugetPackages\umbraco.sqlserverce\4.0.0.1\runtimes\win-x86\native", "*.*", "$tmp\WebApp\bin\x86") - $this.CopyFiles("$nugetPackages\umbraco.sqlserverce\4.0.0.1\runtimes\win-x64\native", "*.*", "$tmp\WebApp\bin\amd64") - - # copy Belle - Write-Host "Copy Belle" - $this.CopyFiles("$src\Umbraco.Web.UI\umbraco\assets", "*", "$tmp\WebApp\umbraco\assets") - $this.CopyFiles("$src\Umbraco.Web.UI\umbraco\js", "*", "$tmp\WebApp\umbraco\js") - $this.CopyFiles("$src\Umbraco.Web.UI\umbraco\lib", "*", "$tmp\WebApp\umbraco\lib") - $this.CopyFiles("$src\Umbraco.Web.UI\umbraco\views", "*", "$tmp\WebApp\umbraco\views") - }) - - $ubuild.DefineMethod("PackageZip", - { - Write-Host "Create Zip packages" - - $src = "$($this.SolutionRoot)\src" - $tmp = $this.BuildTemp - $out = $this.BuildOutput - - Write-Host "Zip all binaries" - &$this.BuildEnv.Zip a -r "$out\UmbracoCms.AllBinaries.$($this.Version.Semver).zip" ` - "$tmp\bin\*" ` - "-x!dotless.Core.*" ` - > $null - if (-not $?) { throw "Failed to zip UmbracoCms.AllBinaries." } - - Write-Host "Zip cms" - &$this.BuildEnv.Zip a -r "$out\UmbracoCms.$($this.Version.Semver).zip" ` - "$tmp\WebApp\*" ` - "-x!dotless.Core.*" "-x!Content_Types.xml" "-x!*.pdb" ` - > $null - if (-not $?) { throw "Failed to zip UmbracoCms." } - }) - - $ubuild.DefineMethod("PrepareBuild", - { - $this.TempStoreFile("$($this.SolutionRoot)\src\Umbraco.Web.UI\web.config") - Write-Host "Create clean web.config" - $this.CopyFile("$($this.SolutionRoot)\src\Umbraco.Web.UI\web.Template.config", "$($this.SolutionRoot)\src\Umbraco.Web.UI\web.config") - - Write-host "Set environment" - $env:UMBRACO_VERSION=$this.Version.Semver.ToString() - $env:UMBRACO_RELEASE=$this.Version.Release - $env:UMBRACO_COMMENT=$this.Version.Comment - $env:UMBRACO_BUILD=$this.Version.Build - - if ($args -and $args[0] -eq "vso") - { - Write-host "Set VSO environment" - # set environment variable for VSO - # https://github.com/Microsoft/vsts-tasks/issues/375 - # https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands.md - Write-Host ("##vso[task.setvariable variable=UMBRACO_VERSION;]$($this.Version.Semver.ToString())") - Write-Host ("##vso[task.setvariable variable=UMBRACO_RELEASE;]$($this.Version.Release)") - Write-Host ("##vso[task.setvariable variable=UMBRACO_COMMENT;]$($this.Version.Comment)") - Write-Host ("##vso[task.setvariable variable=UMBRACO_BUILD;]$($this.Version.Build)") - - Write-Host ("##vso[task.setvariable variable=UMBRACO_TMP;]$($this.SolutionRoot)\build.tmp") - } - }) - - $ubuild.DefineMethod("PrepareNuGet", - { - Write-Host "Prepare NuGet" - - # add Web.config transform files to the NuGet package - Write-Host "Add web.config transforms to NuGet package" - mv "$($this.BuildTemp)\WebApp\Views\Web.config" "$($this.BuildTemp)\WebApp\Views\Web.config.transform" - - }) - - $nugetsourceUmbraco = "https://api.nuget.org/v3/index.json" - - $ubuild.DefineMethod("RestoreNuGet", - { - Write-Host "Restore NuGet" - Write-Host "Logging to $($this.BuildTemp)\nuget.restore.log" - $params = "-Source", $nugetsourceUmbraco - &$this.BuildEnv.NuGet restore "$($this.SolutionRoot)\src\Umbraco.sln" > "$($this.BuildTemp)\nuget.restore.log" @params - if (-not $?) { throw "Failed to restore NuGet packages." } - }) - - $ubuild.DefineMethod("PackageNuGet", - { - $nuspecs = "$($this.SolutionRoot)\build\NuSpecs" - - Write-Host "Create NuGet packages" - - &$this.BuildEnv.NuGet Pack "$nuspecs\UmbracoCms.Core.nuspec" ` - -Properties BuildTmp="$($this.BuildTemp)" ` - -Version "$($this.Version.Semver.ToString())" ` - -Verbosity detailed -outputDirectory "$($this.BuildOutput)" > "$($this.BuildTemp)\nupack.cmscore.log" - if (-not $?) { throw "Failed to pack NuGet UmbracoCms.Core." } - - &$this.BuildEnv.NuGet Pack "$nuspecs\UmbracoCms.Web.nuspec" ` - -Properties BuildTmp="$($this.BuildTemp)" ` - -Version "$($this.Version.Semver.ToString())" ` - -Verbosity detailed -outputDirectory "$($this.BuildOutput)" > "$($this.BuildTemp)\nupack.cmsweb.log" - if (-not $?) { throw "Failed to pack NuGet UmbracoCms.Web." } - - &$this.BuildEnv.NuGet Pack "$nuspecs\UmbracoCms.nuspec" ` - -Properties BuildTmp="$($this.BuildTemp)" ` - -Version "$($this.Version.Semver.ToString())" ` - -Verbosity detailed -outputDirectory "$($this.BuildOutput)" > "$($this.BuildTemp)\nupack.cms.log" - if (-not $?) { throw "Failed to pack NuGet UmbracoCms." } - - # run hook - if ($this.HasMethod("PostPackageNuGet")) - { - Write-Host "Run PostPackageNuGet hook" - $this.PostPackageNuGet(); - if (-not $?) { throw "Failed to run hook." } - } - }) - - $ubuild.DefineMethod("VerifyNuGet", - { - $this.VerifyNuGetConsistency( - ("UmbracoCms", "UmbracoCms.Core", "UmbracoCms.Web"), - ("Umbraco.Core", "Umbraco.Web", "Umbraco.Web.UI", "Umbraco.Examine")) - if ($this.OnError()) { return } - }) - - $ubuild.DefineMethod("PrepareAzureGallery", - { - Write-Host "Prepare Azure Gallery" - $this.CopyFile("$($this.SolutionRoot)\build\Azure\azuregalleryrelease.ps1", $this.BuildOutput) - }) - - $ubuild.DefineMethod("PrepareCSharpDocs", - { - Write-Host "Prepare C# Documentation" - - $src = "$($this.SolutionRoot)\src" - $tmp = $this.BuildTemp - $out = $this.BuildOutput - $DocFxJson = Join-Path -Path $src "\ApiDocs\docfx.json" - $DocFxSiteOutput = Join-Path -Path $tmp "\_site\*.*" - - - #restore nuget packages - $this.RestoreNuGet() - # run DocFx - $DocFx = $this.BuildEnv.DocFx - - & $DocFx metadata $DocFxJson - & $DocFx build $DocFxJson - - # zip it - & $this.BuildEnv.Zip a -tzip -r "$out\csharp-docs.zip" $DocFxSiteOutput - }) - - $ubuild.DefineMethod("PrepareAngularDocs", - { - Write-Host "Prepare Angular Documentation" - - $src = "$($this.SolutionRoot)\src" - $out = $this.BuildOutput - - "Moving to Umbraco.Web.UI.Docs folder" - cd ..\src\Umbraco.Web.UI.Docs - - "Generating the docs and waiting before executing the next commands" - & npm install - & npx gulp docs - - # change baseUrl - $BaseUrl = "https://our.umbraco.com/apidocs/v8/ui/" - $IndexPath = "./api/index.html" - (Get-Content $IndexPath).replace('location.href.replace(rUrl, indexFile)', "`'" + $BaseUrl + "`'") | Set-Content $IndexPath - - # zip it - & $this.BuildEnv.Zip a -tzip -r "$out\ui-docs.zip" "$src\Umbraco.Web.UI.Docs\api\*.*" - }) - - $ubuild.DefineMethod("Build", - { - $error.Clear() - - $this.PrepareBuild() - if ($this.OnError()) { return } - $this.RestoreNuGet() - if ($this.OnError()) { return } - $this.CompileBelle() - if ($this.OnError()) { return } - $this.CompileUmbraco() - if ($this.OnError()) { return } - $this.PrepareTests() - if ($this.OnError()) { return } - $this.CompileTests() - if ($this.OnError()) { return } - # not running tests - $this.PreparePackages() - if ($this.OnError()) { return } - $this.PackageZip() - if ($this.OnError()) { return } - $this.VerifyNuGet() - if ($this.OnError()) { return } - $this.PrepareNuGet() - if ($this.OnError()) { return } - $this.PackageNuGet() - if ($this.OnError()) { return } - $this.PrepareAzureGallery() - if ($this.OnError()) { return } - $this.PostPackageHook() - if ($this.OnError()) { return } - - Write-Host "Done" - }) - - $ubuild.DefineMethod("PostPackageHook", - { - # run hook - if ($this.HasMethod("PostPackage")) - { - Write-Host "Run PostPackage hook" - $this.PostPackage(); - if (-not $?) { throw "Failed to run hook." } - } - }) - - # ################################################################ - # RUN - # ################################################################ - - # configure - $ubuild.ReleaseBranches = @( "master" ) - - # run - if (-not $get) - { -cd - if ($command.Length -eq 0) - { - $command = @( "Build" ) - } - $ubuild.RunMethod($command); - if ($ubuild.OnError()) { return } - } - if ($get) { return $ubuild } +param( + # get, don't execute + [Parameter(Mandatory=$false)] + [Alias("g")] + [switch] $get = $false, + + # execute a command + [Parameter(Mandatory=$false, ValueFromRemainingArguments=$true)] + [String[]] + $command +) + + + +# ################################################################ +# VARIABLES +# ################################################################ + +$rootPath = Join-Path $PSScriptRoot "/.." +$packagesPath = Join-Path $rootPath "/build/packages" +$zeroCore = "zero.Core" +$zeroWeb = "zero.Web" +$zeroWebUI = "zero.Web.UI" +$zeroCommerce = "zero.Commerce" + + +# ################################################################ +# FUNCTIONS +# ################################################################ + +function Set-Project([String] $project) +{ + cd .. + cd $project +} + +function Go-Root() +{ + cd .. + cd "build" +} + +function New-Line() +{ + Write-Host "" +} + + + +# ################################################################ +# WARMUP +# ################################################################ + +# output welcome message +Write-Host "zero v0.1.0" -ForegroundColor DarkCyan +New-Line + +# cleanup directory +if (Test-Path -Path $packagesPath -PathType Container) +{ + Write-Host "Cleanup packages directory..." -NoNewline + Remove-Item -LiteralPath $packagesPath -Force -Recurse + New-Item -Path $packagesPath -ItemType Directory + Write-Host "Done" -ForegroundColor Cyan +} + + + +# ################################################################ +# BUILD + PACK +# ################################################################ + +# pack zero core +Write-Host "zero.Core: building and packing..." +New-Line +Set-Project $zeroCore +dotnet pack -o $packagesPath +Go-Root +Write-Host "Done" -ForegroundColor Cyan +New-Line + +# pack zero web +Write-Host "zero.Web: building and packing..." +New-Line +Set-Project $zeroWeb +dotnet pack -o $packagesPath +Go-Root +Write-Host "Done" -ForegroundColor Cyan +New-Line + +# pack zero web +Write-Host "zero.XTest: building and packing..." +New-Line +Set-Project "zero.XTest" +dotnet pack -o $packagesPath +Go-Root +Write-Host "Done" -ForegroundColor Cyan +New-Line + +# pack zero commerce +Write-Host "zero.Commerce: building and packing..." +New-Line +Set-Project $zeroCommerce +dotnet pack -o $packagesPath +Go-Root +Write-Host "Done" -ForegroundColor Cyan +New-Line diff --git a/zero.Core/zero.Core.csproj b/zero.Core/zero.Core.csproj index 41586f8a..ccbb6829 100644 --- a/zero.Core/zero.Core.csproj +++ b/zero.Core/zero.Core.csproj @@ -5,6 +5,12 @@ netstandard2.0 + + zero.Core + 0.1.0 + // TODO + + diff --git a/zero.Web/zero.Web.csproj b/zero.Web/zero.Web.csproj index 8c1e0adf..8ad552dd 100644 --- a/zero.Web/zero.Web.csproj +++ b/zero.Web/zero.Web.csproj @@ -6,6 +6,12 @@ true + + zero.Web + 0.1.0 + // TODO 2 + + @@ -19,4 +25,24 @@ + + + + \ No newline at end of file diff --git a/zero.XTest/Class1.cs b/zero.XTest/Class1.cs new file mode 100644 index 00000000..d44778b0 --- /dev/null +++ b/zero.XTest/Class1.cs @@ -0,0 +1,8 @@ +using System; + +namespace zero.XTest +{ + public class Class1 + { + } +} diff --git a/zero.XTest/Resources/Countries/countries.de-de.json b/zero.XTest/Resources/Countries/countries.de-de.json new file mode 100644 index 00000000..78384674 --- /dev/null +++ b/zero.XTest/Resources/Countries/countries.de-de.json @@ -0,0 +1,257 @@ +{ + "AF": "Afghanistan", + "EG": "\u00c4gypten", + "AX": "\u00c5landinseln", + "AL": "Albanien", + "DZ": "Algerien", + "AS": "Amerikanisch-Samoa", + "VI": "Amerikanische Jungferninseln", + "UM": "Amerikanische \u00dcberseeinseln", + "AD": "Andorra", + "AO": "Angola", + "AI": "Anguilla", + "AQ": "Antarktis", + "AG": "Antigua und Barbuda", + "GQ": "\u00c4quatorialguinea", + "AR": "Argentinien", + "AM": "Armenien", + "AW": "Aruba", + "AC": "Ascension", + "AZ": "Aserbaidschan", + "ET": "\u00c4thiopien", + "AU": "Australien", + "BS": "Bahamas", + "BH": "Bahrain", + "BD": "Bangladesch", + "BB": "Barbados", + "BY": "Belarus", + "BE": "Belgien", + "BZ": "Belize", + "BJ": "Benin", + "BM": "Bermuda", + "BT": "Bhutan", + "BO": "Bolivien", + "BQ": "Bonaire, Sint Eustatius und Saba", + "BA": "Bosnien und Herzegowina", + "BW": "Botsuana", + "BR": "Brasilien", + "VG": "Britische Jungferninseln", + "IO": "Britisches Territorium im Indischen Ozean", + "BN": "Brunei Darussalam", + "BG": "Bulgarien", + "BF": "Burkina Faso", + "BI": "Burundi", + "CV": "Cabo Verde", + "EA": "Ceuta und Melilla", + "CL": "Chile", + "CN": "China", + "CK": "Cookinseln", + "CR": "Costa Rica", + "CI": "C\u00f4te d\u2019Ivoire", + "CW": "Cura\u00e7ao", + "DK": "D\u00e4nemark", + "DE": "Deutschland", + "DG": "Diego Garcia", + "DM": "Dominica", + "DO": "Dominikanische Republik", + "DJ": "Dschibuti", + "EC": "Ecuador", + "SV": "El Salvador", + "ER": "Eritrea", + "EE": "Estland", + "FK": "Falklandinseln", + "FO": "F\u00e4r\u00f6er", + "FJ": "Fidschi", + "FI": "Finnland", + "FR": "Frankreich", + "GF": "Franz\u00f6sisch-Guayana", + "PF": "Franz\u00f6sisch-Polynesien", + "TF": "Franz\u00f6sische S\u00fcd- und Antarktisgebiete", + "GA": "Gabun", + "GM": "Gambia", + "GE": "Georgien", + "GH": "Ghana", + "GI": "Gibraltar", + "GD": "Grenada", + "GR": "Griechenland", + "GL": "Gr\u00f6nland", + "GP": "Guadeloupe", + "GU": "Guam", + "GT": "Guatemala", + "GG": "Guernsey", + "GN": "Guinea", + "GW": "Guinea-Bissau", + "GY": "Guyana", + "HT": "Haiti", + "HN": "Honduras", + "IN": "Indien", + "ID": "Indonesien", + "IQ": "Irak", + "IR": "Iran", + "IE": "Irland", + "IS": "Island", + "IM": "Isle of Man", + "IL": "Israel", + "IT": "Italien", + "JM": "Jamaika", + "JP": "Japan", + "YE": "Jemen", + "JE": "Jersey", + "JO": "Jordanien", + "KY": "Kaimaninseln", + "KH": "Kambodscha", + "CM": "Kamerun", + "CA": "Kanada", + "IC": "Kanarische Inseln", + "KZ": "Kasachstan", + "QA": "Katar", + "KE": "Kenia", + "KG": "Kirgisistan", + "KI": "Kiribati", + "CC": "Kokosinseln", + "CO": "Kolumbien", + "KM": "Komoren", + "CG": "Kongo-Brazzaville", + "CD": "Kongo-Kinshasa", + "XK": "Kosovo", + "HR": "Kroatien", + "CU": "Kuba", + "KW": "Kuwait", + "LA": "Laos", + "LS": "Lesotho", + "LV": "Lettland", + "LB": "Libanon", + "LR": "Liberia", + "LY": "Libyen", + "LI": "Liechtenstein", + "LT": "Litauen", + "LU": "Luxemburg", + "MG": "Madagaskar", + "MW": "Malawi", + "MY": "Malaysia", + "MV": "Malediven", + "ML": "Mali", + "MT": "Malta", + "MA": "Marokko", + "MH": "Marshallinseln", + "MQ": "Martinique", + "MR": "Mauretanien", + "MU": "Mauritius", + "YT": "Mayotte", + "MX": "Mexiko", + "FM": "Mikronesien", + "MC": "Monaco", + "MN": "Mongolei", + "ME": "Montenegro", + "MS": "Montserrat", + "MZ": "Mosambik", + "MM": "Myanmar", + "NA": "Namibia", + "NR": "Nauru", + "NP": "Nepal", + "NC": "Neukaledonien", + "NZ": "Neuseeland", + "NI": "Nicaragua", + "NL": "Niederlande", + "NE": "Niger", + "NG": "Nigeria", + "NU": "Niue", + "KP": "Nordkorea", + "MP": "N\u00f6rdliche Marianen", + "MK": "Nordmazedonien", + "NF": "Norfolkinsel", + "NO": "Norwegen", + "OM": "Oman", + "AT": "\u00d6sterreich", + "PK": "Pakistan", + "PS": "Pal\u00e4stinensische Autonomiegebiete", + "PW": "Palau", + "PA": "Panama", + "PG": "Papua-Neuguinea", + "PY": "Paraguay", + "PE": "Peru", + "PH": "Philippinen", + "PN": "Pitcairninseln", + "PL": "Polen", + "PT": "Portugal", + "XA": "Pseudo-Accents", + "XB": "Pseudo-Bidi", + "PR": "Puerto Rico", + "MD": "Republik Moldau", + "RE": "R\u00e9union", + "RW": "Ruanda", + "RO": "Rum\u00e4nien", + "RU": "Russland", + "SB": "Salomonen", + "ZM": "Sambia", + "WS": "Samoa", + "SM": "San Marino", + "ST": "S\u00e3o Tom\u00e9 und Pr\u00edncipe", + "SA": "Saudi-Arabien", + "SE": "Schweden", + "CH": "Schweiz", + "SN": "Senegal", + "RS": "Serbien", + "SC": "Seychellen", + "SL": "Sierra Leone", + "ZW": "Simbabwe", + "SG": "Singapur", + "SX": "Sint Maarten", + "SK": "Slowakei", + "SI": "Slowenien", + "SO": "Somalia", + "HK": "Sonderverwaltungsregion Hongkong", + "MO": "Sonderverwaltungsregion Macau", + "ES": "Spanien", + "SJ": "Spitzbergen und Jan Mayen", + "LK": "Sri Lanka", + "BL": "St. Barth\u00e9lemy", + "SH": "St. Helena", + "KN": "St. Kitts und Nevis", + "LC": "St. Lucia", + "MF": "St. Martin", + "PM": "St. Pierre und Miquelon", + "VC": "St. Vincent und die Grenadinen", + "ZA": "S\u00fcdafrika", + "SD": "Sudan", + "GS": "S\u00fcdgeorgien und die S\u00fcdlichen Sandwichinseln", + "KR": "S\u00fcdkorea", + "SS": "S\u00fcdsudan", + "SR": "Suriname", + "SZ": "Swasiland", + "SY": "Syrien", + "TJ": "Tadschikistan", + "TW": "Taiwan", + "TZ": "Tansania", + "TH": "Thailand", + "TL": "Timor-Leste", + "TG": "Togo", + "TK": "Tokelau", + "TO": "Tonga", + "TT": "Trinidad und Tobago", + "TA": "Tristan da Cunha", + "TD": "Tschad", + "CZ": "Tschechien", + "TN": "Tunesien", + "TR": "T\u00fcrkei", + "TM": "Turkmenistan", + "TC": "Turks- und Caicosinseln", + "TV": "Tuvalu", + "UG": "Uganda", + "UA": "Ukraine", + "HU": "Ungarn", + "UY": "Uruguay", + "UZ": "Usbekistan", + "VU": "Vanuatu", + "VA": "Vatikanstadt", + "VE": "Venezuela", + "AE": "Vereinigte Arabische Emirate", + "US": "Vereinigte Staaten", + "GB": "Vereinigtes K\u00f6nigreich", + "VN": "Vietnam", + "WF": "Wallis und Futuna", + "CX": "Weihnachtsinsel", + "EH": "Westsahara", + "CF": "Zentralafrikanische Republik", + "CY": "Zypern" +} \ No newline at end of file diff --git a/zero.XTest/Resources/Countries/countries.en-us.json b/zero.XTest/Resources/Countries/countries.en-us.json new file mode 100644 index 00000000..81dd1733 --- /dev/null +++ b/zero.XTest/Resources/Countries/countries.en-us.json @@ -0,0 +1,257 @@ +{ + "AF": "Afghanistan", + "AX": "\u00c5land Islands", + "AL": "Albania", + "DZ": "Algeria", + "AS": "American Samoa", + "AD": "Andorra", + "AO": "Angola", + "AI": "Anguilla", + "AQ": "Antarctica", + "AG": "Antigua & Barbuda", + "AR": "Argentina", + "AM": "Armenia", + "AW": "Aruba", + "AC": "Ascension Island", + "AU": "Australia", + "AT": "Austria", + "AZ": "Azerbaijan", + "BS": "Bahamas", + "BH": "Bahrain", + "BD": "Bangladesh", + "BB": "Barbados", + "BY": "Belarus", + "BE": "Belgium", + "BZ": "Belize", + "BJ": "Benin", + "BM": "Bermuda", + "BT": "Bhutan", + "BO": "Bolivia", + "BA": "Bosnia & Herzegovina", + "BW": "Botswana", + "BR": "Brazil", + "IO": "British Indian Ocean Territory", + "VG": "British Virgin Islands", + "BN": "Brunei", + "BG": "Bulgaria", + "BF": "Burkina Faso", + "BI": "Burundi", + "KH": "Cambodia", + "CM": "Cameroon", + "CA": "Canada", + "IC": "Canary Islands", + "CV": "Cape Verde", + "BQ": "Caribbean Netherlands", + "KY": "Cayman Islands", + "CF": "Central African Republic", + "EA": "Ceuta & Melilla", + "TD": "Chad", + "CL": "Chile", + "CN": "China", + "CX": "Christmas Island", + "CC": "Cocos (Keeling) Islands", + "CO": "Colombia", + "KM": "Comoros", + "CG": "Congo - Brazzaville", + "CD": "Congo - Kinshasa", + "CK": "Cook Islands", + "CR": "Costa Rica", + "CI": "C\u00f4te d\u2019Ivoire", + "HR": "Croatia", + "CU": "Cuba", + "CW": "Cura\u00e7ao", + "CY": "Cyprus", + "CZ": "Czechia", + "DK": "Denmark", + "DG": "Diego Garcia", + "DJ": "Djibouti", + "DM": "Dominica", + "DO": "Dominican Republic", + "EC": "Ecuador", + "EG": "Egypt", + "SV": "El Salvador", + "GQ": "Equatorial Guinea", + "ER": "Eritrea", + "EE": "Estonia", + "SZ": "Eswatini", + "ET": "Ethiopia", + "FK": "Falkland Islands", + "FO": "Faroe Islands", + "FJ": "Fiji", + "FI": "Finland", + "FR": "France", + "GF": "French Guiana", + "PF": "French Polynesia", + "TF": "French Southern Territories", + "GA": "Gabon", + "GM": "Gambia", + "GE": "Georgia", + "DE": "Germany", + "GH": "Ghana", + "GI": "Gibraltar", + "GR": "Greece", + "GL": "Greenland", + "GD": "Grenada", + "GP": "Guadeloupe", + "GU": "Guam", + "GT": "Guatemala", + "GG": "Guernsey", + "GN": "Guinea", + "GW": "Guinea-Bissau", + "GY": "Guyana", + "HT": "Haiti", + "HN": "Honduras", + "HK": "Hong Kong SAR China", + "HU": "Hungary", + "IS": "Iceland", + "IN": "India", + "ID": "Indonesia", + "IR": "Iran", + "IQ": "Iraq", + "IE": "Ireland", + "IM": "Isle of Man", + "IL": "Israel", + "IT": "Italy", + "JM": "Jamaica", + "JP": "Japan", + "JE": "Jersey", + "JO": "Jordan", + "KZ": "Kazakhstan", + "KE": "Kenya", + "KI": "Kiribati", + "XK": "Kosovo", + "KW": "Kuwait", + "KG": "Kyrgyzstan", + "LA": "Laos", + "LV": "Latvia", + "LB": "Lebanon", + "LS": "Lesotho", + "LR": "Liberia", + "LY": "Libya", + "LI": "Liechtenstein", + "LT": "Lithuania", + "LU": "Luxembourg", + "MO": "Macao SAR China", + "MG": "Madagascar", + "MW": "Malawi", + "MY": "Malaysia", + "MV": "Maldives", + "ML": "Mali", + "MT": "Malta", + "MH": "Marshall Islands", + "MQ": "Martinique", + "MR": "Mauritania", + "MU": "Mauritius", + "YT": "Mayotte", + "MX": "Mexico", + "FM": "Micronesia", + "MD": "Moldova", + "MC": "Monaco", + "MN": "Mongolia", + "ME": "Montenegro", + "MS": "Montserrat", + "MA": "Morocco", + "MZ": "Mozambique", + "MM": "Myanmar (Burma)", + "NA": "Namibia", + "NR": "Nauru", + "NP": "Nepal", + "NL": "Netherlands", + "NC": "New Caledonia", + "NZ": "New Zealand", + "NI": "Nicaragua", + "NE": "Niger", + "NG": "Nigeria", + "NU": "Niue", + "NF": "Norfolk Island", + "KP": "North Korea", + "MK": "North Macedonia", + "MP": "Northern Mariana Islands", + "NO": "Norway", + "OM": "Oman", + "PK": "Pakistan", + "PW": "Palau", + "PS": "Palestinian Territories", + "PA": "Panama", + "PG": "Papua New Guinea", + "PY": "Paraguay", + "PE": "Peru", + "PH": "Philippines", + "PN": "Pitcairn Islands", + "PL": "Poland", + "PT": "Portugal", + "XA": "Pseudo-Accents", + "XB": "Pseudo-Bidi", + "PR": "Puerto Rico", + "QA": "Qatar", + "RE": "R\u00e9union", + "RO": "Romania", + "RU": "Russia", + "RW": "Rwanda", + "WS": "Samoa", + "SM": "San Marino", + "ST": "S\u00e3o Tom\u00e9 & Pr\u00edncipe", + "SA": "Saudi Arabia", + "SN": "Senegal", + "RS": "Serbia", + "SC": "Seychelles", + "SL": "Sierra Leone", + "SG": "Singapore", + "SX": "Sint Maarten", + "SK": "Slovakia", + "SI": "Slovenia", + "SB": "Solomon Islands", + "SO": "Somalia", + "ZA": "South Africa", + "GS": "South Georgia & South Sandwich Islands", + "KR": "South Korea", + "SS": "South Sudan", + "ES": "Spain", + "LK": "Sri Lanka", + "BL": "St. Barth\u00e9lemy", + "SH": "St. Helena", + "KN": "St. Kitts & Nevis", + "LC": "St. Lucia", + "MF": "St. Martin", + "PM": "St. Pierre & Miquelon", + "VC": "St. Vincent & Grenadines", + "SD": "Sudan", + "SR": "Suriname", + "SJ": "Svalbard & Jan Mayen", + "SE": "Sweden", + "CH": "Switzerland", + "SY": "Syria", + "TW": "Taiwan", + "TJ": "Tajikistan", + "TZ": "Tanzania", + "TH": "Thailand", + "TL": "Timor-Leste", + "TG": "Togo", + "TK": "Tokelau", + "TO": "Tonga", + "TT": "Trinidad & Tobago", + "TA": "Tristan da Cunha", + "TN": "Tunisia", + "TR": "Turkey", + "TM": "Turkmenistan", + "TC": "Turks & Caicos Islands", + "TV": "Tuvalu", + "UM": "U.S. Outlying Islands", + "VI": "U.S. Virgin Islands", + "UG": "Uganda", + "UA": "Ukraine", + "AE": "United Arab Emirates", + "GB": "United Kingdom", + "US": "United States", + "UY": "Uruguay", + "UZ": "Uzbekistan", + "VU": "Vanuatu", + "VA": "Vatican City", + "VE": "Venezuela", + "VN": "Vietnam", + "WF": "Wallis & Futuna", + "EH": "Western Sahara", + "YE": "Yemen", + "ZM": "Zambia", + "ZW": "Zimbabwe" +} \ No newline at end of file diff --git a/zero.XTest/Resources/Localization/zero.en-us.json b/zero.XTest/Resources/Localization/zero.en-us.json new file mode 100644 index 00000000..d2323173 --- /dev/null +++ b/zero.XTest/Resources/Localization/zero.en-us.json @@ -0,0 +1,446 @@ +{ + "zero": { + "name": "zero" + }, + + "ui": { + "more": "More", + "add": "Add", + "actions": "Actions", + "back": "Go back", + "close": "Close", + "confirm": "Confirm", + "save": "Save", + "create": "Create", + "createdDate": "Created at", + "id": "ID", + "active": "Active", + "inactive": "Inactive", + "delete": "Delete", + "default": "Default", + "remove": "Remove", + "pagination": { + "xofy": "Page {x} of {y}", + "next": "Next page", + "previous": "Previous page" + }, + "search": { + "placeholder": "Search ...", + "button": "Search" + }, + "name": "Name", + "select": "Select", + "icon": "Icon", + "icon_select": "Select an icon", + "tab_general": "General", + "tab_content": "Content", + "pick": { + "title": "Choose one", + "title_multiple": "Choose", + "title_autocomplete": "Enter a value", + "max": "max. {count}" + }, + "date": { + "select": "Select date...", + "xtoy": "{x} to {y}", + "x": "from {x}", + "y": "until {y}" + }, + "price": { + "free": "Free", + "xtoy": "from {x} to {y}", + "x": "from {x}", + "y": "to {y}" + } + }, + + "gender": { + "undisclosed": "Undisclosed", + "male": "Male", + "female": "Female", + "nonbinary": "Non-binary" + }, + + "rte": { + "bold": "Bold", + "italic": "Italic", + "underline": "Underline", + "strikethrough": "Strike-through", + "heading1": "Heading 1", + "heading2": "Heading 2", + "paragraph": "Paragraph", + "quote": "Quote", + "olist": "Ordered list", + "ulist": "Unordered list", + "code": "Code", + "line": "Horizontal line", + "link": "Link", + "image": "Image", + "video": "Video", + "accept": "Accept", + "cancel": "Cancel", + "raw": "Edit HTML" + }, + + "errors": { + "onsave": { + "notallowed": "You are not allowed to edit this resource" + }, + "ondelete": { + "idnotfound": "Could not find an entity for the given ID" + }, + "http": { + "403": "Unauthorized", + "403_text": "You are not allowed to view this resource", + "404": "Not found", + "404_text": "The requested resource could not be found
({path})", + "409": "Conflict", + "409_text": "The operation could not be completed as it is not valid anymore. Please reload the page", + "4xx": "Client error", + "4xx_text": "There was an internal client error (code: {code})", + "504": "Timed out", + "504_text": "The backoffice did not receive a timely response from the server", + "5xx": "Server error", + "5xx_text": "There was an internal server error (code: {code})" + }, + "role": { + "emptyclaim": "A permission needs both a key and a value", + "nosection": "You have to select at least one section to give users access to" + }, + "changepassword": { + "emptyfields": "Please fill out all fields", + "nouser": "User is invalid", + "newpasswordsnotmatching": "The new password does not match the confirmation" + }, + "preview": { + "notfound": "Not found", + "notfound_text": "Could not find entity with ID \"{id}\"" + } + }, + + "unsavedchanges": { + "title": "You have unsaved changes", + "text": "Are you sure you want to navigate away from this page?", + "close": "Discard changes", + "confirm": "Stay on page" + }, + + "deleteoverlay": { + "close": "Cancel", + "confirm": "Delete", + "title": "Delete entity", + "text": "Are you sure you want to delete this entity?", + "success": "Deleted", + "success_text": "You have successfully deleted this entity" + }, + + "changepasswordoverlay": { + "title": "Change password", + "confirm": "Change password", + "fields": { + "currentPassword": "Current password", + "newPassword": "New password", + "confirmNewPassword": "Confirm new password" + } + }, + + "sections": { + "item": { + "dashboard": "Dashboard", + "spaces": "Spaces", + "media": "Media", + "pages": "Pages", + "settings": "Settings" + } + }, + + "settings": { + "groups": { + "system": "System", + "plugins": "Plugins" + }, + "system": { + "updates": { + "name": "Updates", + "text": "Version {zero_version}", + "text_default": "Update current zero version" + }, + "applications": { + "name": "Applications", + "text": "Edit website applications" + }, + "users": { + "name": "Users & Permissions", + "text": "Administration of backoffice users" + }, + "languages": { + "name": "Languages", + "text": "Frontend languages" + }, + "translations": { + "name": "Translations", + "text": "Frontend texts and translations" + }, + "countries": { + "name": "Countries", + "text": "Manage list of countries" + }, + "logs": { + "name": "Logging", + "text": "Debug und view logs" + } + }, + "plugins": { + "installed": { + "name": "Installed plugins", + "text": "{plugin_count} installed plugin(s)", + "text_default": "Manage and install plugins" + }, + "create": { + "name": "Create a plugin", + "text": "Create from existing code" + } + } + }, + + "user": { + "name": "User", + "users": "Users", + "count_permissions": "{count} permissions", + "one_permission": "1 permission", + "tab_permissions": "Permissions", + "fields": { + "name_placeholder": "Enter your real name or a username", + "email": "Email", + "email_text": "Also used as login username", + "email_placeholder": "Enter your email address", + "avatarId": "Avatar", + "avatarId_text": "Upload a user image", + "languageId": "Language", + "languageId_text": "Set the backoffice language for this user", + "roles": "Roles", + "roles_text": "Add default permissions from roles", + "sections": "Sections", + "sections_text": "Specify access to backoffice sections", + "isActive": "Can login", + "isDisabled": "Disable", + "isLockedOut": "Locked out", + "isLockedOut_warning": "The user is locked out until", + "isDisabled_warning": "This user is disabled and cannot log into zero anymore. Status can be changed in Actions dropdown" + } + }, + + "role": { + "name": "Role", + "roles": "Roles", + "tab_permissions": "Permissions", + "fields": { + "description": "Description", + "icon": "Icon" + } + }, + + "permission": { + "states": { + "read": "View", + "write": "Edit", + "none": "None" + }, + "collections": { + "sections": "Access to sections", + "sections_description": "Allow access to the following sections", + "settings": "Access to settings", + "settings_description": "Define read and write access for settings areas", + "spaces": "Access to spaces", + "spaces_description": "Granular control of spaces" + } + }, + + "login": { + "headline": "hello and welcome", + "button": "Login", + "button_forgot": "Forgot password?", + "fields": { + "email": "Email", + "email_placeholder": "Enter your email or username", + "password": "Password", + "password_placeholder": "Enter your password" + }, + "errors": { + "wrongcredentials": "Email or password is wrong", + "lockedout": "The user has been locked out due to many failed password attempts", + "disabled": "The user has been deactivated", + "notallowed": "The user is not allowed to sign in", + "requirestwofactor": "Two-factor authentication is required to login" + }, + "rejectReasons": { + "logout": "You have successfully logged out", + "inactive": "You have been inactive for too long. Please login again.", + "terminated": "Your session has been terminated. Please login again.", + "userchanged": "Your user data has changed. Please login again.", + "passwordchanged": "Your password was successfully changed. Please login again." + } + }, + + "order": { + "fields": { + "no": "Number", + "username": "Name", + "price": "Price", + "status": "Status" + } + }, + + "page": { + "overview": { + "actions": { + "continue": "Continue", + "continue_text": "You have last edited \"{page}\" on {date}", + "new": "New page", + "new_text": "Create a new page on root", + "history": "History", + "history_text": "View page editing history" + } + }, + "recyclebin": { + "name": "Recycle bin", + "description": "View recently deleted entities" + }, + "history": { + "name": "History" + } + }, + + "country": { + "list": "Countries", + "name": "Country", + "fields": { + "code": "Code", + "code_text": "Code in ISO 3166-1 format which is used to display the appropriate flag", + "isPreferred": "Show on top" + } + }, + + "language": { + "list": "Languages", + "name": "Language", + "fields": { + "name": "Name", + "locale": "Locale", + "code": "ISO Code", + "code_text": "Code in ISO 3166-1 format", + "isDefault": "Default", + "isDefault_text": "Use as default language", + "isOptional": "Optional", + "isOptional_text": "Values for an optional language must not be entered, even if the field is required", + "inheritedLanguageId": "Fallback", + "inheritedLanguageId_text": "To allow multi-lingual content to fall back to another language if not present in the requested language, select it here" + } + }, + + "translation": { + "list": "Translations", + "name": "Translation", + "display": { + "text": "Text", + "html": "HTML" + }, + "fields": { + "key": "Key", + "value": "Value", + "display": "Display type" + } + }, + + "iconpicker": { + "title": "Pick an icon" + }, + + "mediapicker": { + "select_text": "Add media", + "select_description": "Upload or select", + "upload_text": "Upload", + "upload_description": "Upload a new file" + }, + + "application": { + "list": "Applications", + "name": "Application", + "tab_features": "Features", + "tab_domains": "Domains", + "fields": { + "name": "Name", + "name_text": "Short human-readable name", + "fullName": "Full name", + "fullName_text": "Full company or product name", + "imageid": "Image", + "imageid_text": "Image of the app (with transparent background), used for all mails, PDFs, ...", + "iconid": "Icon", + "iconid_text": "Icon of the app. Simplified image for minor application parts", + "email": "Email", + "email_text": "Generic contact email", + "domains": "Domains", + "domains_text": "Select domains for this application", + "domains_help": "Valid domain names are: \"example.com\", \"www.example.com\", \"example.com:8080\", or \"https://www.example.com\".", + "domains_add": "Add domain", + "features": "Features", + "features_text": "Enable additional features for this application" + } + }, + + "media": { + "list": "Media", + "name": "Media", + "addfolder": "Add a new folder", + "fields": { + "foldername_placeholder": "Enter a name ...", + "caption": "Caption", + "dimension": "Dimension", + "size": "Size", + "date": "Date", + "filename": "Filename", + "alternativeText": "Alternative text" + } + }, + + "_test": { + "fields": { + "name": "Name", + "position": "Position", + "image": "Image", + "email": "Email", + "videoUri": "Video URL", + "isvisible": "Visible", + "facebook": "Facebook", + "facebook_text": "Link to facebook page", + "youtube": "Youtube", + "youtube_text": "Link to youtube channel", + "twitter": "Twitter", + "twitter_text": "Link to twitter profile", + "xIconPicker": "Icon", + "xTextarea": "Description", + "addresses": "Addresses", + "addresses_text": "Enter as many addresses as you wish", + "xCustom": "Generate", + "xRte": "Description as HTML", + "xMedia": "Images", + "xState": "Select media type", + "address": { + "city": "City", + "street": "Street", + "no": "No", + "countries": "Country", + "name": "Name", + "iso": "ISO Code" + }, + "hideInNavigation": "Hide in navigation", + "hideInTitle": "Hide in title", + "titleOverride": "Override title", + "titleOverrideAll": "Override full title", + "seoDescription": "SEO Description", + "seoImage": "Image", + "noFollow": "No follow", + "noIndex": "No index" + } + } +} \ No newline at end of file diff --git a/zero.XTest/zero.XTest.csproj b/zero.XTest/zero.XTest.csproj new file mode 100644 index 00000000..198ea9f0 --- /dev/null +++ b/zero.XTest/zero.XTest.csproj @@ -0,0 +1,56 @@ + + + + 8.0 + net5.0 + true + + + + zero.XTest + 0.1.0 + // TODO 2 + + + + + + true + true + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/zero.sln b/zero.sln index 3f085097..f9bc37b6 100644 --- a/zero.sln +++ b/zero.sln @@ -41,6 +41,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{1CE271AD build\build.ps1 = build\build.ps1 EndProjectSection EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "zero.XTest", "zero.XTest\zero.XTest.csproj", "{1699E34B-A9BE-411B-BA5B-E0682B8245B1}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -71,6 +73,10 @@ Global {F6ECD591-4D06-4C36-A41E-29148B9E42D7}.Debug|Any CPU.Build.0 = Debug|Any CPU {F6ECD591-4D06-4C36-A41E-29148B9E42D7}.Release|Any CPU.ActiveCfg = Release|Any CPU {F6ECD591-4D06-4C36-A41E-29148B9E42D7}.Release|Any CPU.Build.0 = Release|Any CPU + {1699E34B-A9BE-411B-BA5B-E0682B8245B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1699E34B-A9BE-411B-BA5B-E0682B8245B1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1699E34B-A9BE-411B-BA5B-E0682B8245B1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1699E34B-A9BE-411B-BA5B-E0682B8245B1}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE