diff --git a/server/services/src/main/java/org/zanata/email/TMMergeEmailStrategy.kt b/server/services/src/main/java/org/zanata/email/TMMergeEmailStrategy.kt index fae0819eb3..8c97d777ef 100644 --- a/server/services/src/main/java/org/zanata/email/TMMergeEmailStrategy.kt +++ b/server/services/src/main/java/org/zanata/email/TMMergeEmailStrategy.kt @@ -5,6 +5,7 @@ import org.zanata.common.ContentState import org.zanata.common.ContentState.Approved import org.zanata.common.ContentState.NeedReview import org.zanata.common.ContentState.Translated +import org.zanata.common.LocaleId import org.zanata.i18n.Messages import org.zanata.service.tm.merge.TMMergeResult import javax.mail.internet.InternetAddress @@ -35,6 +36,7 @@ data class TMMergeEmailContext( val toAddresses: List, val project: ProjectInfo, val version: VersionInfo, + val locale: LocaleId, val matchRange: IntRange) /** @@ -148,13 +150,21 @@ private fun tmMergeEmailBodyProducer( } } li { - style = s.dark + s.marginLeft0 + style = s.dark + s.marginLeft0 + s.padRight20 +"${msgs["jsf.Version"]}: " a(href = context.version.url) { style = s.dark +context.version.slug } } + li { + style = s.dark + s.marginLeft0 + +"${msgs["jsf.Locale"]}: " + a { + style = s.dark + +context.locale.id + } + } } p { style = s.dark diff --git a/server/services/src/main/java/org/zanata/service/tm/merge/TransMemoryMergeServiceImpl.java b/server/services/src/main/java/org/zanata/service/tm/merge/TransMemoryMergeServiceImpl.java index 5eb158136b..24f9de1607 100644 --- a/server/services/src/main/java/org/zanata/service/tm/merge/TransMemoryMergeServiceImpl.java +++ b/server/services/src/main/java/org/zanata/service/tm/merge/TransMemoryMergeServiceImpl.java @@ -423,6 +423,7 @@ private void sendTMMergeEmail(VersionTMMerge mergeRequest, toAddresses, new ProjectInfo(proj.getName(), projUrl), new VersionInfo(projVersion.getSlug(), verUrl), + mergeRequest.getLocaleId(), new IntRange(mergeRequest.getThresholdPercent(), 100)); TMMergeEmailStrategy strategy = new TMMergeEmailStrategy( settings, mergeResult); diff --git a/server/services/src/main/resources/messages.properties b/server/services/src/main/resources/messages.properties index 35c11c366b..a8015594ce 100644 --- a/server/services/src/main/resources/messages.properties +++ b/server/services/src/main/resources/messages.properties @@ -513,6 +513,7 @@ jsf.languages.Disabled=Disabled jsf.languages.FilterLanguages=Filter Languages ! short label for language names written in their own script and using the language's native name jsf.NativeName.short=Name +jsf.Locale=Locale ! short label for the locale code for a locale, such as en-GB jsf.LocaleCode.short=Code ! short label for an alternative locale code to use for a language diff --git a/server/services/src/test/java/org/zanata/email/HtmlEmailBuilderTest.kt b/server/services/src/test/java/org/zanata/email/HtmlEmailBuilderTest.kt index f5e3cf885a..2a6710c068 100644 --- a/server/services/src/test/java/org/zanata/email/HtmlEmailBuilderTest.kt +++ b/server/services/src/test/java/org/zanata/email/HtmlEmailBuilderTest.kt @@ -30,6 +30,7 @@ import org.jvnet.mock_javamail.Mailbox import org.zanata.common.ContentState.Approved import org.zanata.common.ContentState.NeedReview import org.zanata.common.ContentState.Translated +import org.zanata.common.LocaleId import org.zanata.i18n.Messages import org.zanata.i18n.MessagesFactory import org.zanata.service.tm.merge.TMMergeResult @@ -71,6 +72,7 @@ class HtmlEmailBuilderTest { listOf(Addresses.getAddress(toAddress, toName)), ProjectInfo("Test Project", "$serverURL/project/view/test-project"), VersionInfo("master", "$serverURL/iteration/view/test-project/master"), + LocaleId.DE, IntRange(50, 100)) private val msgsFactory = object : MessagesFactory() { @@ -135,6 +137,7 @@ class HtmlEmailBuilderTest { val html = parts.html assertThat(html).`as`("project url").contains(mergeContext.project.url) assertThat(html).`as`("version url").contains(mergeContext.version.url) + assertThat(html).`as`("locale code").contains(mergeContext.locale.id) assertThat(html).`as`("Approved 100% matches").contains("233", "98", "12") assertThat(html).`as`("Translated 100% matches").contains("505", "203", "33") assertThat(html).`as`("80-89% Fuzzy matches").contains("998", "193", "37") @@ -162,6 +165,7 @@ class HtmlEmailBuilderTest { val html = parts.html assertThat(html).`as`("project url").contains(mergeContext.project.url) assertThat(html).`as`("version url").contains(mergeContext.version.url) + assertThat(html).`as`("locale code").contains(mergeContext.locale.id) assertThat(html).contains(msgs["email.templates.tm_merge.NothingCopied"]) checkGenericFooter(html, msgs["email.templates.tm_merge.TriggeredByYou"]!!) }