Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge extractpo & extractpo-oc into a single one #65

Merged
merged 2 commits into from
Dec 3, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 9 additions & 16 deletions OrchardCoreContrib.PoExtractor.sln
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,10 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.4.33103.184
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCoreContrib.PoExtractor.Core", "src\OrchardCoreContrib.PoExtractor.Core\OrchardCoreContrib.PoExtractor.Core.csproj", "{E677EF59-34AC-41A4-B9BC-C655A81017A5}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCoreContrib.PoExtractor.Core.Tests", "test\OrchardCoreContrib.PoExtractor.Core.Tests\OrchardCoreContrib.PoExtractor.Core.Tests.csproj", "{4E0AF6EC-9BD0-4D39-8123-06163362185D}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCoreContrib.PoExtractor.Abstractions.Tests", "test\OrchardCoreContrib.PoExtractor.Core.Tests\OrchardCoreContrib.PoExtractor.Abstractions.Tests.csproj", "{4E0AF6EC-9BD0-4D39-8123-06163362185D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCoreContrib.PoExtractor.Liquid", "src\OrchardCoreContrib.PoExtractor.Liquid\OrchardCoreContrib.PoExtractor.Liquid.csproj", "{9DB27A54-F56F-465E-A1A9-28791C64710B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCoreContrib.PoExtractor.OrchardCore", "src\OrchardCoreContrib.PoExtractor.OrchardCore\OrchardCoreContrib.PoExtractor.OrchardCore.csproj", "{C81FF74F-5E1E-402E-A505-E4CEE495CF1A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCoreContrib.PoExtractor", "src\OrchardCoreContrib.PoExtractor\OrchardCoreContrib.PoExtractor.csproj", "{D358C2C3-D568-4C60-BBFA-38AA2BE95C7A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCoreContrib.PoExtractor.Razor", "src\OrchardCoreContrib.PoExtractor.Razor\OrchardCoreContrib.PoExtractor.Razor.csproj", "{D871D2E9-FBD0-4C32-AE1A-0FBC89356345}"
Expand All @@ -27,18 +23,16 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{FCA7649D-2A7
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{D1336C32-75A4-411A-90D3-E011D2CEB076}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OrchardCoreContrib.PoExtractor.Abstractions", "src\OrchardCoreContrib.PoExtractor.Abstractions\OrchardCoreContrib.PoExtractor.Abstractions.csproj", "{3CEF8D52-49EB-49C9-A421-64A59C031B61}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OrchardCoreContrib.PoExtractor.Abstractions", "src\OrchardCoreContrib.PoExtractor.Abstractions\OrchardCoreContrib.PoExtractor.Abstractions.csproj", "{3CEF8D52-49EB-49C9-A421-64A59C031B61}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OrchardCoreContrib.PoExtractor.Tests", "test\OrchardCoreContrib.PoExtractor.Tests\OrchardCoreContrib.PoExtractor.Tests.csproj", "{7989E10F-A776-44FE-B3CF-1EB377EFD665}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{E677EF59-34AC-41A4-B9BC-C655A81017A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E677EF59-34AC-41A4-B9BC-C655A81017A5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E677EF59-34AC-41A4-B9BC-C655A81017A5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E677EF59-34AC-41A4-B9BC-C655A81017A5}.Release|Any CPU.Build.0 = Release|Any CPU
{4E0AF6EC-9BD0-4D39-8123-06163362185D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4E0AF6EC-9BD0-4D39-8123-06163362185D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4E0AF6EC-9BD0-4D39-8123-06163362185D}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand All @@ -47,10 +41,6 @@ Global
{9DB27A54-F56F-465E-A1A9-28791C64710B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9DB27A54-F56F-465E-A1A9-28791C64710B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9DB27A54-F56F-465E-A1A9-28791C64710B}.Release|Any CPU.Build.0 = Release|Any CPU
{C81FF74F-5E1E-402E-A505-E4CEE495CF1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C81FF74F-5E1E-402E-A505-E4CEE495CF1A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C81FF74F-5E1E-402E-A505-E4CEE495CF1A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C81FF74F-5E1E-402E-A505-E4CEE495CF1A}.Release|Any CPU.Build.0 = Release|Any CPU
{D358C2C3-D568-4C60-BBFA-38AA2BE95C7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D358C2C3-D568-4C60-BBFA-38AA2BE95C7A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D358C2C3-D568-4C60-BBFA-38AA2BE95C7A}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand Down Expand Up @@ -79,22 +69,25 @@ Global
{3CEF8D52-49EB-49C9-A421-64A59C031B61}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3CEF8D52-49EB-49C9-A421-64A59C031B61}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3CEF8D52-49EB-49C9-A421-64A59C031B61}.Release|Any CPU.Build.0 = Release|Any CPU
{7989E10F-A776-44FE-B3CF-1EB377EFD665}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7989E10F-A776-44FE-B3CF-1EB377EFD665}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7989E10F-A776-44FE-B3CF-1EB377EFD665}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7989E10F-A776-44FE-B3CF-1EB377EFD665}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{E677EF59-34AC-41A4-B9BC-C655A81017A5} = {FCA7649D-2A78-4580-8866-A00571045744}
{4E0AF6EC-9BD0-4D39-8123-06163362185D} = {D1336C32-75A4-411A-90D3-E011D2CEB076}
{9DB27A54-F56F-465E-A1A9-28791C64710B} = {FCA7649D-2A78-4580-8866-A00571045744}
{C81FF74F-5E1E-402E-A505-E4CEE495CF1A} = {FCA7649D-2A78-4580-8866-A00571045744}
{D358C2C3-D568-4C60-BBFA-38AA2BE95C7A} = {FCA7649D-2A78-4580-8866-A00571045744}
{D871D2E9-FBD0-4C32-AE1A-0FBC89356345} = {FCA7649D-2A78-4580-8866-A00571045744}
{B86D3896-8371-47DF-94B4-634AA7C7A1C7} = {FCA7649D-2A78-4580-8866-A00571045744}
{F12A2C3B-728B-4AEC-9495-3FB56300D941} = {FCA7649D-2A78-4580-8866-A00571045744}
{458FE156-43B6-4DB9-965D-672A7D318B90} = {FCA7649D-2A78-4580-8866-A00571045744}
{042754CC-2E1A-4ED9-8944-E51708A43515} = {D1336C32-75A4-411A-90D3-E011D2CEB076}
{3CEF8D52-49EB-49C9-A421-64A59C031B61} = {FCA7649D-2A78-4580-8866-A00571045744}
{7989E10F-A776-44FE-B3CF-1EB377EFD665} = {D1336C32-75A4-411A-90D3-E011D2CEB076}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {694D0244-80FF-47D4-A54D-2DB1356B72A1}
Expand Down
29 changes: 1 addition & 28 deletions readme.md
Original file line number Diff line number Diff line change
@@ -1,50 +1,23 @@
# OrchardCoreContrib.PoExtractor

This utility extracts translatable strings from the C# and VB code, Razor templates and Liquid templates to POT (portable object template) files. It is designed to follow conventions used in the [OrchardCore](https://github.com/OrchardCMS/OrchardCore) project.

OrchardCoreContrib.PoExtractor is distributed as a dotnet global tool and it is available on the official NuGet.org feed in two versions:

* `OrchardCoreContrib.PoExtractor` - a general purpose utility for extracting translatable strings from C#, VB code and Razor views
* `OrchardCoreContrib.PoExtractor.OrchardCore` - the same utility with the additional support for extracting translatable strings from Liquid templates.
* In order to be able to parse Liquid templates, it needs to reference `OrchardCore.DisplayManagement.Liquid` package, where the Liquid filters are defined
`OrchardCoreContrib.PoExtractor` is distributed as a dotnet global tool to extracts translatable strings from the C# and VB code, Razor templates and Liquid templates to POT (portable object template) files. It is designed to follow conventions used in the [OrchardCore](https://github.com/OrchardCMS/OrchardCore) project.

## Installation


Install with the following command:

`dotnet tool install --global OrchardCoreContrib.PoExtractor`

or

`dotnet tool install --global OrchardCoreContrib.PoExtractor.OrchardCore`

> The latest version of OrchardCoreContrib.PoExtractor.OrchardCore is build against OrchardCore 1.0.0-beta3-71077. If you want to use OrchardCoreContrib.PoExtractor with OrchardCore 1.0.0-RC1 please use version 0.2.0-rc1
>
> `dotnet tool install --global OrchardCoreContrib.PoExtractor.OrchardCore --version 0.2.0-rc1`
>
> If you cant to use OrchardCoreContrib.PoExtractor with the preview version of OrchardCore, please use version 0.4.0-rc1-13272
>
> `dotnet tool install --global OrchardCoreContrib.PoExtractor.OrchardCore --version 0.4.0-rc1-13272`

## Usage

`extractpo inputpath outputpath`

or

`extractpo-oc inputpath outputpath`

Extracts all translatable strings from projects at the specified input path and saves generated POT files at the specified output path. It creates one POT file per a project. This includes liquid views.

## Uninstallation

`dotnet tool uninstall --global OrchardCoreContrib.PoExtractor`

or

`dotnet tool uninstall --global OrchardCoreContrib.PoExtractor.OrchardCore`

## Limitations

OrchardCoreContrib.PoExtractor assumes, the code follows several conventions:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
</PropertyGroup>

<ItemGroup>
<ProjectReference Include="..\OrchardCoreContrib.PoExtractor.Core\OrchardCoreContrib.PoExtractor.Core.csproj" />
<ProjectReference Include="..\OrchardCoreContrib.PoExtractor.Razor\OrchardCoreContrib.PoExtractor.Razor.csproj" />
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
</PropertyGroup>

<ItemGroup>
<ProjectReference Include="..\OrchardCoreContrib.PoExtractor.Core\OrchardCoreContrib.PoExtractor.Core.csproj" />
<ProjectReference Include="..\OrchardCoreContrib.PoExtractor.Razor\OrchardCoreContrib.PoExtractor.Razor.csproj" />
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,10 @@
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
</PropertyGroup>

<ItemGroup>
<ProjectReference Include="..\OrchardCoreContrib.PoExtractor.Core\OrchardCoreContrib.PoExtractor.Core.csproj" />
<PackageReference Include="Microsoft.CodeAnalysis" Version="3.9.0" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.CodeAnalysis" Version="3.9.0" />
<ProjectReference Include="..\OrchardCoreContrib.PoExtractor.Abstractions\OrchardCoreContrib.PoExtractor.Abstractions.csproj" />
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,6 @@
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\OrchardCoreContrib.PoExtractor.Core\OrchardCoreContrib.PoExtractor.Core.csproj" />
<ProjectReference Include="..\OrchardCoreContrib.PoExtractor.Abstractions\OrchardCoreContrib.PoExtractor.Abstractions.csproj" />
</ItemGroup>
</Project>

This file was deleted.

84 changes: 0 additions & 84 deletions src/OrchardCoreContrib.PoExtractor.OrchardCore/Program.cs

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
</PropertyGroup>

<ItemGroup>
<ProjectReference Include="..\OrchardCoreContrib.PoExtractor.Core\OrchardCoreContrib.PoExtractor.Core.csproj" />
<ProjectReference Include="..\OrchardCoreContrib.PoExtractor.DotNet\OrchardCoreContrib.PoExtractor.DotNet.csproj" />
</ItemGroup>
<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace OrchardCoreContrib.PoExtractor.OrchardCore
namespace OrchardCoreContrib.PoExtractor
{
public class IgnoredProject
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,24 +1,23 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<AssemblyName>OrchardCoreContrib.PoExtractor</AssemblyName>
<ToolCommandName>extractpo</ToolCommandName>
<PackAsTool>true</PackAsTool>
<Version>0.5.0</Version>
<PackageId>OrchardCoreContrib.PoExtractor</PackageId>
<Authors>Lukas Kabrt</Authors>
<Company />
<Product />
<Description>.NET Core global tool for extracting translatable strings from the .cs and .cshtml files.</Description>
<AssemblyVersion>0.5.0.0</AssemblyVersion>
</PropertyGroup>
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<AssemblyName>OrchardCoreContrib.PoExtractor</AssemblyName>
<ToolCommandName>extractpo</ToolCommandName>
<PackAsTool>true</PackAsTool>
<Version>0.5.0-rc2-16220</Version>
<PackageId>OrchardCoreContrib.PoExtractor</PackageId>
<Authors>Lukas Kabrt</Authors>
<Company />
<Product />
<Description>.NET Core global tool for extracting translatable strings from the OrchardCore source files.</Description>
</PropertyGroup>

<ItemGroup>
<ProjectReference Include="..\OrchardCoreContrib.PoExtractor.Core\OrchardCoreContrib.PoExtractor.Core.csproj" />
<ProjectReference Include="..\OrchardCoreContrib.PoExtractor.DotNet.CS\OrchardCoreContrib.PoExtractor.DotNet.CS.csproj" />
<ProjectReference Include="..\OrchardCoreContrib.PoExtractor.DotNet.VB\OrchardCoreContrib.PoExtractor.DotNet.VB.csproj" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\OrchardCoreContrib.PoExtractor.DotNet.CS\OrchardCoreContrib.PoExtractor.DotNet.CS.csproj" />
<ProjectReference Include="..\OrchardCoreContrib.PoExtractor.DotNet.VB\OrchardCoreContrib.PoExtractor.DotNet.VB.csproj" />
<ProjectReference Include="..\OrchardCoreContrib.PoExtractor.Liquid\OrchardCoreContrib.PoExtractor.Liquid.csproj" />
</ItemGroup>

</Project>
14 changes: 12 additions & 2 deletions src/OrchardCoreContrib.PoExtractor/Program.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
using OrchardCoreContrib.PoExtractor.DotNet;
using OrchardCoreContrib.PoExtractor.DotNet.CS;
using OrchardCoreContrib.PoExtractor.DotNet.VB;
using OrchardCoreContrib.PoExtractor.Liquid;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;

Expand Down Expand Up @@ -32,18 +34,26 @@ public static void Main(string[] args)
return;
}

var processors = new IProjectProcessor[] {
var processors = new List<IProjectProcessor>
{
new CSharpProjectProcessor(),
new VisualBasicProjectProcessor()
};

processors.Add(new LiquidProjectProcessor());

foreach (var projectFilePath in projectFiles)
{
var projectPath = Path.GetDirectoryName(projectFilePath);
var projectBasePath = Path.GetDirectoryName(projectPath) + Path.DirectorySeparatorChar;
var projectRelativePath = projectPath.TrimStart(basePath + Path.DirectorySeparatorChar);
var outputPath = Path.Combine(outputBasePath, Path.GetFileNameWithoutExtension(projectFilePath) + PoWriter.PortaleObjectTemplateExtension);

if (IgnoredProject.ToList().Any(o => projectRelativePath.StartsWith(o)))
{
continue;
}

var strings = new LocalizableStringCollection();
foreach (var processor in processors)
{
Expand All @@ -66,7 +76,7 @@ public static void Main(string[] args)

private static void WriteHelp()
{
Console.WriteLine("Usage: extractpo input output");
Console.WriteLine("Usage: extractpo-oc input output");
Console.WriteLine(" input: path to the input directory, all projects at the the path will be processed");
Console.WriteLine(" output: path to a directory where POT files will be generated");
}
Expand Down
Loading