Skip to content

Commit

Permalink
Add --keep-source-strings
Browse files Browse the repository at this point in the history
  • Loading branch information
MiguelDomingues committed Nov 14, 2022
1 parent adc7966 commit 27e1485
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 4 deletions.
5 changes: 4 additions & 1 deletion src/MarkdownLocalize.CLI/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,9 @@ public static int Main(string[] args)
[Option("--add-front-matter-key", "Add key:value to front-matter.", CommandOptionType.MultipleValue)]
public List<string> AddFrontMatter { get; } = null;

[Option("--keep-source-strings", "Keep source strings for non-translated strings.", CommandOptionType.NoValue)]
public bool KeepSourceStrings { get; } = false;

private int OnExecute()
{
InitMarkdownParserOptions();
Expand Down Expand Up @@ -157,7 +160,7 @@ private void Translate(string inputMarkdown, string outputMarkdown, string input
var catalog = POT.Load(po);
TranslationInfo info;
string relativeToSource = PathUtils.GetRelativePath(outputMarkdown, inputMarkdown, true);
string translatedMarkdown = POT.Translate(catalog, md, inputMarkdown, relativeToSource, out info);
string translatedMarkdown = POT.Translate(catalog, md, inputMarkdown, relativeToSource, KeepSourceStrings, out info);
Log(string.Format(TRANSLATION_INFO, info.TranslatedCount, info.TotalCount));
int ratio = info.TotalCount > 0 ? (int)(info.TranslatedCount * 1.0 / info.TotalCount * 100) : 0;
if (info.TotalCount > 0)
Expand Down
6 changes: 5 additions & 1 deletion src/MarkdownLocalize.POT/POT.cs
Original file line number Diff line number Diff line change
Expand Up @@ -148,12 +148,16 @@ static POCatalog GenerateCatalog()
return catalog;
}

public static string Translate(POCatalog catalog, string markdown, string fileName, string pathToSource, out TranslationInfo info)
public static string Translate(POCatalog catalog, string markdown, string fileName, string pathToSource, bool keepSourceStrings, out TranslationInfo info)
{
string translatedMarkdown = MarkdownParser.Translate(markdown, (si) =>
{
var key = new POKey(NormalizeLineBreaks(si.String), null, si.Context);
string translation = catalog.GetTranslation(key);
if (keepSourceStrings && translation == null)
{
translation = si.String;
}
return translation != null ? translation.Trim() : null;
}, fileName, pathToSource, catalog.Language, out info);

Expand Down
16 changes: 14 additions & 2 deletions test/MarkdownLocalize.Tests/TranslateMarkdown.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public void TranslateSimple(string poFile, string originalMarkdown, string trans
});
var catalog = POT.Load(ReadPO(poFile));
TranslationInfo info;
string md = POT.Translate(catalog, originalMarkdown, null, null, out info);
string md = POT.Translate(catalog, originalMarkdown, null, null, false, out info);

Assert.Equal(translatedMarkdown, md);
Assert.Equal(expectedTotalCount, info.TotalCount);
Expand All @@ -44,10 +44,22 @@ public void TranslateHtml(string poFile, string originalMarkdown, string transla
});
var catalog = POT.Load(ReadPO(poFile));
TranslationInfo info;
string md = POT.Translate(catalog, originalMarkdown, null, null, out info);
string md = POT.Translate(catalog, originalMarkdown, null, null, false, out info);

Assert.Equal(translatedMarkdown, md);
Assert.Equal(expectedTotalCount, info.TotalCount);
Assert.Equal(expectedTranslatedCount, info.TranslatedCount);
}

[Fact]
public void TranslateKeepSource()
{
var catalog = POT.Load(ReadPO("headings.pt-PT.po"));
TranslationInfo info;
string md = POT.Translate(catalog, "# Heading\n\n##New Heading", null, null, true, out info);

Assert.Equal("# Título\n\n##New Heading", md);
Assert.Equal(2, info.TotalCount);
Assert.Equal(2, info.TranslatedCount);
}
}

0 comments on commit 27e1485

Please sign in to comment.