Browse Source

Reference resource directly.

pull/556/head
Sebastian 5 years ago
parent
commit
9615528272
  1. 28
      backend/src/Squidex.Domain.Apps.Entities/Contents/Queries/ContentEnricher.cs
  2. 2
      backend/src/Squidex/Areas/Frontend/Middlewares/IndexExtensions.cs
  3. 10
      backend/src/Squidex/Squidex.csproj
  4. 2
      frontend/app/app.module.ts
  5. 0
      i18n/translations-backend__en.json
  6. 0
      i18n/translations-frontend.en
  7. 0
      i18n/translations-frontend__en.json
  8. 8
      i18n/translator/Squidex.Translator/Commands.cs
  9. 38
      i18n/translator/Squidex.Translator/Processes/GenerateFrontendResources.cs
  10. 5
      i18n/translator/Squidex.Translator/State/TranslationService.cs

28
backend/src/Squidex.Domain.Apps.Entities/Contents/Queries/ContentEnricher.cs

@ -59,9 +59,12 @@ namespace Squidex.Domain.Apps.Entities.Contents.Queries
{
var results = new List<ContentEntity>();
foreach (var step in steps)
if (context.App != null)
{
await step.EnrichAsync(context);
foreach (var step in steps)
{
await step.EnrichAsync(context);
}
}
if (contents.Any())
@ -78,18 +81,21 @@ namespace Squidex.Domain.Apps.Entities.Contents.Queries
results.Add(result);
}
var schemaCache = new Dictionary<Guid, Task<ISchemaEntity>>();
Task<ISchemaEntity> GetSchema(Guid id)
if (context.App != null)
{
return schemaCache.GetOrAdd(id, x => ContentQuery.GetSchemaOrThrowAsync(context, x.ToString()));
}
var schemaCache = new Dictionary<Guid, Task<ISchemaEntity>>();
foreach (var step in steps)
{
using (Profiler.TraceMethod(step.ToString()!))
Task<ISchemaEntity> GetSchema(Guid id)
{
return schemaCache.GetOrAdd(id, x => ContentQuery.GetSchemaOrThrowAsync(context, x.ToString()));
}
foreach (var step in steps)
{
await step.EnrichAsync(context, results, GetSchema);
using (Profiler.TraceMethod(step.ToString()!))
{
await step.EnrichAsync(context, results, GetSchema);
}
}
}
}

2
backend/src/Squidex/Areas/Frontend/Middlewares/IndexExtensions.cs

@ -82,7 +82,7 @@ namespace Squidex.Areas.Frontend.Middlewares
{
var assembly = typeof(IndexExtensions).Assembly;
var resourceName = $"Squidex.Areas.Frontend.Resources.texts.{culture}";
var resourceName = $"Squidex.Areas.Frontend.Resources.translations-frontend__{culture}.json";
var resourceStream = assembly.GetManifestResourceStream(resourceName);
if (resourceStream != null)

10
backend/src/Squidex/Squidex.csproj

@ -86,7 +86,6 @@
<ItemGroup>
<EmbeddedResource Include="Areas\Api\Controllers\Users\Assets\Avatar.png" />
<EmbeddedResource Include="Areas\Frontend\Resources\texts.en" />
<EmbeddedResource Include="Docs\schemabody.md" />
<EmbeddedResource Include="Docs\schemaquery.md" />
<EmbeddedResource Include="Docs\security.md" />
@ -103,7 +102,6 @@
<ItemGroup>
<None Remove="Areas\Api\Controllers\Users\Assets\Avatar.png" />
<None Remove="Areas\Frontend\Resources\texts.en" />
<None Remove="Docs\schemabody.md" />
<None Remove="Docs\schemaquery.md" />
<None Remove="Docs\security.md" />
@ -121,6 +119,14 @@
<Content Remove="Assets\**" />
</ItemGroup>
<ItemGroup>
<Folder Include="Areas\Frontend\Resources\" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="..\..\..\i18n\translations-frontend__en.json" Link="Areas\Frontend\Resources\translations-frontend__en.json" />
</ItemGroup>
<PropertyGroup>
<NoWarn>$(NoWarn);CS1591;1591;1573;1572;NU1605;IDE0060</NoWarn>
</PropertyGroup>

2
frontend/app/app.module.ts

@ -57,7 +57,7 @@ export function configTranslations() {
if (process.env.NODE_ENV === 'production') {
return new LocalizerService(window['texts']);
} else {
return new LocalizerService(require('./../../i18n/translations-frontend.en.json')).logMissingKeys();
return new LocalizerService(require('./../../i18n/translations-frontend__en.json')).logMissingKeys();
}
}

0
i18n/translations-backend.en.json → i18n/translations-backend__en.json

0
backend/src/Squidex/Areas/Frontend/Resources/texts.en → i18n/translations-frontend.en

0
i18n/translations-frontend.en.json → i18n/translations-frontend__en.json

8
i18n/translator/Squidex.Translator/Commands.cs

@ -77,14 +77,6 @@ namespace Squidex.Translator
new GenerateBackendResources(folder, service).Run();
}
[Command(Name = "gen-frontend", Description = "Generate the frontend translations.")]
public void GenerateFrontend(TranslateArguments arguments)
{
var (folder, service) = Setup(arguments, "translations-frontend");
new GenerateFrontendResources(folder, service).Run();
}
[Command(Name = "migrate-backend", Description = "Migrate the backend files.")]
public void MigrateBackend(TranslateArguments arguments)
{

38
i18n/translator/Squidex.Translator/Processes/GenerateFrontendResources.cs

@ -1,38 +0,0 @@
// ==========================================================================
// Squidex Headless CMS
// ==========================================================================
// Copyright (c) Squidex UG (haftungsbeschraenkt)
// All rights reserved. Licensed under the MIT license.
// ==========================================================================
using System.IO;
using Squidex.Translator.State;
namespace Squidex.Translator.Processes
{
public sealed class GenerateFrontendResources
{
private readonly TranslationService service;
private readonly DirectoryInfo folder;
public GenerateFrontendResources(DirectoryInfo folder, TranslationService service)
{
this.folder = new DirectoryInfo(Path.Combine(folder.FullName, "backend", "src", "Squidex", "Areas", "Frontend", "Resources"));
this.service = service;
}
public void Run()
{
var fullName = Path.Combine(folder.FullName, "texts.en");
if (!folder.Exists)
{
Directory.CreateDirectory(folder.FullName);
}
service.WriteTexts(fullName);
service.Save();
}
}
}

5
i18n/translator/Squidex.Translator/State/TranslationService.cs

@ -48,7 +48,7 @@ namespace Squidex.Translator.State
{
this.file = file;
translations = Load<TranslatedTexts>(".en.json");
translations = Load<TranslatedTexts>("__en.json");
translationsTodo = Load<TranslationTodos>("_todos.json");
ignoreList = Load<TranslationsToIgnore>("_ignore.json");
@ -118,7 +118,8 @@ namespace Squidex.Translator.State
public void Save()
{
Save(".en.json", translations);
Save("__en.json", translations);
Save("_todos.json", translationsTodo);
Save("_ignore.json", ignoreList);
}

Loading…
Cancel
Save