Browse Source

Release/4.x martijn (#555)

* Fix for the path of the translations

* Created an option to get all the translations keys

* Review points solved

* Removed the saveKey from the save function

Co-authored-by: Martijn Dijkgraaf <martijndijkgraaf@MacBook-Pro-van-Martijn.local>
pull/559/head
MartijnDijkgraaf 5 years ago
committed by GitHub
parent
commit
0709a51aa7
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 12
      backend/i18n/translator/Squidex.Translator/Commands.cs
  2. 39
      backend/i18n/translator/Squidex.Translator/Processes/GenerateKeys.cs
  3. 15
      backend/i18n/translator/Squidex.Translator/State/TranslationKeys.cs
  4. 14
      backend/i18n/translator/Squidex.Translator/State/TranslationService.cs

12
backend/i18n/translator/Squidex.Translator/Commands.cs

@ -77,6 +77,18 @@ namespace Squidex.Translator
new GenerateBackendResources(folder, service).Run(); new GenerateBackendResources(folder, service).Run();
} }
[Command(Name = "gen-keys", Description = "Generate the keys for translations.")]
public void GenerateBackendKeys(TranslateArguments arguments)
{
var (folderBackend, serviceBackend) = Setup(arguments, "backend");
new GenerateKeys(folderBackend, serviceBackend, "backend").Run();
var (folderFrontend, serviceFrontend) = Setup(arguments, "frontend");
new GenerateKeys(folderFrontend, serviceFrontend, "frontend").Run();
}
[Command(Name = "migrate-backend", Description = "Migrate the backend files.")] [Command(Name = "migrate-backend", Description = "Migrate the backend files.")]
public void MigrateBackend(TranslateArguments arguments) public void MigrateBackend(TranslateArguments arguments)
{ {

39
backend/i18n/translator/Squidex.Translator/Processes/GenerateKeys.cs

@ -0,0 +1,39 @@
// ==========================================================================
// Squidex Headless CMS
// ==========================================================================
// Copyright (c) Squidex UG (haftungsbeschraenkt)
// All rights reserved. Licensed under the MIT license.
// ==========================================================================
using System;
using System.IO;
using System.Resources.NetStandard;
using Squidex.Translator.State;
namespace Squidex.Translator.Processes
{
public sealed class GenerateKeys
{
private readonly TranslationService service;
private readonly DirectoryInfo folder;
public GenerateKeys(DirectoryInfo folder, TranslationService service, string type)
{
if (type == "frontend")
{
this.folder = Frontend.GetFolder(folder);
}
else if (type == "backend")
{
this.folder = new DirectoryInfo(Path.Combine(folder.FullName, "backend", "src", "Squidex.Shared"));
}
this.service = service;
}
public void Run()
{
service.SaveKeys();
}
}
}

15
backend/i18n/translator/Squidex.Translator/State/TranslationKeys.cs

@ -0,0 +1,15 @@
// ==========================================================================
// Squidex Headless CMS
// ==========================================================================
// Copyright (c) Squidex UG (haftungsbeschraenkt)
// All rights reserved. Licensed under the MIT license.
// ==========================================================================
using System.Collections.Generic;
namespace Squidex.Translator.State
{
public sealed class TranslationKeys : SortedDictionary<string, string>
{
}
}

14
backend/i18n/translator/Squidex.Translator/State/TranslationService.cs

@ -76,7 +76,7 @@ namespace Squidex.Translator.State
private void Save<T>(string name, T value) where T : new() private void Save<T>(string name, T value) where T : new()
{ {
var path = directory.FullName + name; var path = Path.Combine(directory.FullName, this.fileName + name);
WriteTo(value, path); WriteTo(value, path);
} }
@ -126,6 +126,18 @@ namespace Squidex.Translator.State
Save("__ignore.json", translationToIgnore); Save("__ignore.json", translationToIgnore);
} }
public void SaveKeys()
{
var translationKeys = new TranslationKeys();
foreach (var text in Texts)
{
translationKeys.Add(text.Key, string.Empty);
}
Save("__keys.json", translationKeys);
}
public void Translate(string fileName, string text, string originText, Action<string> handler, bool silent = false) public void Translate(string fileName, string text, string originText, Action<string> handler, bool silent = false)
{ {
if (onlySingleWords && text.Contains(' ')) if (onlySingleWords && text.Contains(' '))

Loading…
Cancel
Save