You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2015/02/17 16:06:50 UTC
isis git commit: ISIS-903: refactoring TranslationService so can
write out .pot file...
Repository: isis
Updated Branches:
refs/heads/ISIS-903 4b6abedcf -> 613eb1920
ISIS-903: refactoring TranslationService so can write out .pot file...
... with msgid_plural if required.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/613eb192
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/613eb192
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/613eb192
Branch: refs/heads/ISIS-903
Commit: 613eb1920edb2260dbd0519c041d6838d68084da
Parents: 4b6abed
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Tue Feb 17 14:44:36 2015 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Tue Feb 17 15:01:13 2015 +0000
----------------------------------------------------------------------
.../services/i18n/TranslatableString.java | 7 +-
.../services/i18n/TranslationService.java | 23 +++-
.../isis/applib/services/i18n/TrStringTest.java | 113 ----------------
.../services/i18n/TranslatableStringTest.java | 135 +++++++++++++++++++
.../core/metamodel/services/i18n/po/Block.java | 4 +-
.../services/i18n/po/ContextAndMsgId.java | 24 +++-
.../metamodel/services/i18n/po/PoAbstract.java | 2 +
.../metamodel/services/i18n/po/PoReader.java | 26 +++-
.../metamodel/services/i18n/po/PoWriter.java | 77 +++++++----
.../services/i18n/po/TranslationServicePo.java | 9 +-
10 files changed, 267 insertions(+), 153 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/613eb192/core/applib/src/main/java/org/apache/isis/applib/services/i18n/TranslatableString.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/i18n/TranslatableString.java b/core/applib/src/main/java/org/apache/isis/applib/services/i18n/TranslatableString.java
index 08870a4..09d24b3 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/i18n/TranslatableString.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/i18n/TranslatableString.java
@@ -177,7 +177,10 @@ public final class TranslatableString {
* @return
*/
public String translate(final TranslationService translationService, final String context, final Locale locale) {
- final String translatedText = translationService.translate(context, getPattern(), locale);
+ final String translatedText =
+ !isPluralForm()
+ ? translationService.translate(context, getSingularText(), locale)
+ : translationService.translate(context, getSingularText(), getPluralText(), number, locale);
return translated(translatedText);
}
@@ -188,7 +191,7 @@ public final class TranslatableString {
* Any placeholders will <i>not</i> have been replaced.
* </p>
*/
- public String getPattern() {
+ String getPattern() {
return !isPluralForm() || number == 1 ? getSingularText() : getPluralText();
}
http://git-wip-us.apache.org/repos/asf/isis/blob/613eb192/core/applib/src/main/java/org/apache/isis/applib/services/i18n/TranslationService.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/i18n/TranslationService.java b/core/applib/src/main/java/org/apache/isis/applib/services/i18n/TranslationService.java
index dfad5ca..ca20004 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/i18n/TranslationService.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/i18n/TranslationService.java
@@ -23,7 +23,28 @@ import org.apache.isis.applib.annotation.Programmatic;
public interface TranslationService {
+ /**
+ * Return a translation of the text, for the specified locale.
+ *
+ * @param context
+ * @param text
+ * @param targetLocale
+ * @return
+ */
@Programmatic
- public String translate(final String context, final String originalText, final Locale targetLocale);
+ public String translate(final String context, final String text, final Locale targetLocale);
+
+ /**
+ * Return a translation of either the singular or the plural text, dependent on the <tt>num</tt> parameter, for the specified locale.
+ *
+ * @param context
+ * @param singularText
+ * @param pluralText
+ * @param num - whether to return the translation of the singular (if =1) or of the plural (if != 1)
+ * @param targetLocale
+ * @return
+ */
+ @Programmatic
+ public String translate(final String context, final String singularText, final String pluralText, int num, final Locale targetLocale);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/613eb192/core/applib/src/test/java/org/apache/isis/applib/services/i18n/TrStringTest.java
----------------------------------------------------------------------
diff --git a/core/applib/src/test/java/org/apache/isis/applib/services/i18n/TrStringTest.java b/core/applib/src/test/java/org/apache/isis/applib/services/i18n/TrStringTest.java
deleted file mode 100644
index 953b6a5..0000000
--- a/core/applib/src/test/java/org/apache/isis/applib/services/i18n/TrStringTest.java
+++ /dev/null
@@ -1,113 +0,0 @@
-package org.apache.isis.applib.services.i18n;
-
-import java.util.Locale;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-
-public class TrStringTest {
-
- public static class GetText extends TrStringTest {
-
- @Test
- public void singularForm() throws Exception {
- final TranslatableString ts = TranslatableString.tr("No, you can't do that!");
-
- assertThat(ts.getPattern(), is("No, you can't do that!"));
- }
-
- @Test
- public void pluralFormOne() throws Exception {
- final TranslatableString ts = TranslatableString.trn("You can't do that because there is a dependent object", "You can't do that because there are dependent objects", 1);
-
- assertThat(ts.getPattern(), is("You can't do that because there is a dependent object"));
- }
-
- @Test
- public void pluralFormTwo() throws Exception {
- final TranslatableString ts = TranslatableString.trn("You can't do that because there is a dependent object", "You can't do that because there are dependent objects", 2);
-
- assertThat(ts.getPattern(), is("You can't do that because there are dependent objects"));
- }
-
- }
-
- public static class Translated extends TrStringTest {
-
- @Test
- public void singularForm() throws Exception {
- final TranslatableString ts = TranslatableString.tr("My name is {lastName}, {firstName} {lastName}.", "lastName", "Bond", "firstName", "James");
-
- assertThat(ts.translated("Iche heisse {lastName}, {firstName} {lastName}."), is("Iche heisse Bond, James Bond."));
- }
-
- @Test
- public void pluralFormOne() throws Exception {
- final TranslatableString ts = TranslatableString.trn(
- "My name is {lastName}, {firstName} {lastName}.",
- "My name is {firstName} {lastName}.",
- 1,
- "lastName", "Bond", "firstName", "James");
-
- assertThat(ts.translated("Iche heisse {lastName}, {firstName} {lastName}."), is("Iche heisse Bond, James Bond."));
- }
- }
-
- public static class Translate extends TrStringTest {
-
- @Rule
- public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(JUnitRuleMockery2.Mode.INTERFACES_AND_CLASSES);
-
- private TranslationService echoTranslationService;
-
- private String originalTextToTranslate;
-
- @Before
- public void setUp() throws Exception {
- echoTranslationService = new TranslationService() {
- @Override
- public String translate(final String context, final String originalText, final Locale targetLocale) {
- originalTextToTranslate = originalText;
- return originalText;
- }
- };
- }
-
- @Test
- public void singularForm() throws Exception {
- final TranslatableString ts = TranslatableString.tr("My name is {lastName}, {firstName} {lastName}.", "lastName", "Bond", "firstName", "James");
-
- assertThat(ts.translate(echoTranslationService, null, null), is("My name is Bond, James Bond."));
- assertThat(originalTextToTranslate, is("My name is {lastName}, {firstName} {lastName}."));
- }
-
- @Test
- public void pluralFormOne() throws Exception {
- final TranslatableString ts = TranslatableString.trn(
- "My name is {lastName}, {firstName} {lastName}.",
- "My name is {firstName} {lastName}.",
- 1,
- "lastName", "Bond", "firstName", "James");
-
- assertThat(ts.translate(echoTranslationService, null, null), is("My name is Bond, James Bond."));
- assertThat(originalTextToTranslate, is("My name is {lastName}, {firstName} {lastName}."));
- }
-
- @Test
- public void pluralFormTwo() throws Exception {
- final TranslatableString ts = TranslatableString.trn(
- "My name is {lastName}, {firstName} {lastName}.",
- "My name is {firstName} {lastName}.",
- 2,
- "lastName", "Bond", "firstName", "James");
-
- assertThat(ts.translate(echoTranslationService, null, null), is("My name is James Bond."));
- assertThat(originalTextToTranslate, is("My name is {firstName} {lastName}."));
- }
- }
-
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/613eb192/core/applib/src/test/java/org/apache/isis/applib/services/i18n/TranslatableStringTest.java
----------------------------------------------------------------------
diff --git a/core/applib/src/test/java/org/apache/isis/applib/services/i18n/TranslatableStringTest.java b/core/applib/src/test/java/org/apache/isis/applib/services/i18n/TranslatableStringTest.java
new file mode 100644
index 0000000..1e0f0fd
--- /dev/null
+++ b/core/applib/src/test/java/org/apache/isis/applib/services/i18n/TranslatableStringTest.java
@@ -0,0 +1,135 @@
+package org.apache.isis.applib.services.i18n;
+
+import java.util.Locale;
+import org.jmock.Expectations;
+import org.jmock.auto.Mock;
+import org.junit.Rule;
+import org.junit.Test;
+import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+public class TranslatableStringTest {
+
+ public static class GetText extends TranslatableStringTest {
+
+ @Test
+ public void singularForm() throws Exception {
+ final TranslatableString ts = TranslatableString.tr("No, you can't do that!");
+
+ assertThat(ts.getPattern(), is("No, you can't do that!"));
+ }
+
+ @Test
+ public void pluralFormOne() throws Exception {
+ final TranslatableString ts = TranslatableString.trn("You can't do that because there is a dependent object", "You can't do that because there are dependent objects", 1);
+
+ assertThat(ts.getPattern(), is("You can't do that because there is a dependent object"));
+ }
+
+ @Test
+ public void pluralFormTwo() throws Exception {
+ final TranslatableString ts = TranslatableString.trn("You can't do that because there is a dependent object", "You can't do that because there are dependent objects", 2);
+
+ assertThat(ts.getPattern(), is("You can't do that because there are dependent objects"));
+ }
+
+ }
+
+ public static class Translated extends TranslatableStringTest {
+
+ @Test
+ public void singularForm() throws Exception {
+ final TranslatableString ts = TranslatableString.tr("My name is {lastName}, {firstName} {lastName}.", "lastName", "Bond", "firstName", "James");
+
+ assertThat(ts.translated("Iche heisse {lastName}, {firstName} {lastName}."), is("Iche heisse Bond, James Bond."));
+ }
+
+ @Test
+ public void pluralFormOne() throws Exception {
+ final TranslatableString ts = TranslatableString.trn(
+ "My name is {lastName}, {firstName} {lastName}.",
+ "My name is {firstName} {lastName}.",
+ 1,
+ "lastName", "Bond", "firstName", "James");
+
+ assertThat(ts.translated("Iche heisse {lastName}, {firstName} {lastName}."), is("Iche heisse Bond, James Bond."));
+ }
+ }
+
+ public static class Translate extends TranslatableStringTest {
+
+ @Rule
+ public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(JUnitRuleMockery2.Mode.INTERFACES_AND_CLASSES);
+
+ @Mock
+ private TranslationService mockTranslationService;
+
+ @Test
+ public void singularForm() throws Exception {
+ // given
+ final String simpleText = "text to translate";
+ final String someContext = "someContext";
+ final Locale someLocale = Locale.CANADA; // any
+ final String translation = "the translation";
+
+ final TranslatableString ts = TranslatableString.tr(simpleText);
+
+ // expect
+ context.checking(new Expectations() {{
+ oneOf(mockTranslationService).translate(someContext, simpleText, someLocale);
+ will(returnValue(translation));
+ }});
+
+ // when
+ assertThat(ts.translate(mockTranslationService, someContext, someLocale), is(translation));
+ }
+
+ @Test
+ public void pluralFormOne() throws Exception {
+
+ // given
+ final String singularText = "singular text to translate";
+ final String pluralText = "plural text to translate";
+ final String someContext = "someContext";
+ final Locale someLocale = Locale.CANADA; // any
+ final String translation = "the translation";
+
+ final TranslatableString ts = TranslatableString.trn(singularText, pluralText, 1);
+
+ // expect
+ context.checking(new Expectations() {{
+ oneOf(mockTranslationService).translate(someContext, singularText, someLocale);
+ will(returnValue(translation));
+ }});
+
+ // when
+ assertThat(ts.translate(mockTranslationService, someContext, someLocale), is(translation));
+ }
+
+ @Test
+ public void pluralFormTwo() throws Exception {
+
+ // given
+ final String singularText = "singular text to translate";
+ final String pluralText = "plural text to translate";
+ final String someContext = "someContext";
+ final Locale someLocale = Locale.CANADA; // any
+ final String translation = "the translation";
+ final int number = 2; // != 1
+
+ final TranslatableString ts = TranslatableString.trn(singularText, pluralText, number);
+
+ // expect
+ context.checking(new Expectations() {{
+ oneOf(mockTranslationService).translate(someContext, singularText, pluralText, number, someLocale);
+ will(returnValue(translation));
+ }});
+
+ // when
+ assertThat(ts.translate(mockTranslationService, someContext, someLocale), is(translation));
+ }
+ }
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/613eb192/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/i18n/po/Block.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/i18n/po/Block.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/i18n/po/Block.java
index cdfbbd4..43870d9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/i18n/po/Block.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/i18n/po/Block.java
@@ -101,11 +101,11 @@ class Block {
void append(final Map<ContextAndMsgId, String> translationsByKey) {
for (String context : contextList) {
if(msgid != null && msgstr != null) {
- final ContextAndMsgId mc = new ContextAndMsgId(context, msgid);
+ final ContextAndMsgId mc = new ContextAndMsgId(context, msgid, ContextAndMsgId.Type.REGULAR);
translationsByKey.put(mc, msgstr);
}
if(msgid_plural != null && msgstr_plural != null) {
- final ContextAndMsgId mc = new ContextAndMsgId(context, msgid_plural);
+ final ContextAndMsgId mc = new ContextAndMsgId(context, msgid_plural, ContextAndMsgId.Type.PLURAL_ONLY);
translationsByKey.put(mc, msgstr_plural);
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/613eb192/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/i18n/po/ContextAndMsgId.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/i18n/po/ContextAndMsgId.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/i18n/po/ContextAndMsgId.java
index 1fbfd02..2077c11 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/i18n/po/ContextAndMsgId.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/i18n/po/ContextAndMsgId.java
@@ -23,12 +23,25 @@ package org.apache.isis.core.metamodel.services.i18n.po;
*/
public class ContextAndMsgId implements Comparable<ContextAndMsgId> {
+ public enum Type {
+ /**
+ * The text to use when there is no plural form, or the text to use for singular pattern when there is also a plural form.
+ */
+ REGULAR,
+ /**
+ * The text to use for plural form.
+ */
+ PLURAL_ONLY
+ }
+
private final String context;
private final String msgId;
+ private final Type type;
- public ContextAndMsgId(final String context, final String msgId) {
- this.msgId = msgId;
+ public ContextAndMsgId(final String context, final String msgId, final Type type) {
this.context = context == null? "": context;
+ this.msgId = msgId;
+ this.type = type;
}
public String getMsgId() {
@@ -39,6 +52,13 @@ public class ContextAndMsgId implements Comparable<ContextAndMsgId> {
return context;
}
+ /**
+ * Not part of equals/hashCode impl.
+ */
+ public Type getType() {
+ return type;
+ }
+
@Override
public boolean equals(final Object o) {
if (this == o) return true;
http://git-wip-us.apache.org/repos/asf/isis/blob/613eb192/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/i18n/po/PoAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/i18n/po/PoAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/i18n/po/PoAbstract.java
index b910984..e3ddba9 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/i18n/po/PoAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/i18n/po/PoAbstract.java
@@ -36,4 +36,6 @@ abstract class PoAbstract {
abstract String translate(final String context, final String msgId, final Locale targetLocale);
+ abstract String translate(final String context, final String msgId, final String msgIdPlural, int num, final Locale targetLocale);
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/613eb192/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/i18n/po/PoReader.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/i18n/po/PoReader.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/i18n/po/PoReader.java
index 24d96db..237ae4c 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/i18n/po/PoReader.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/i18n/po/PoReader.java
@@ -68,15 +68,37 @@ class PoReader extends PoAbstract {
public String translate(final String context, final String msgId, final Locale targetLocale) {
+ return translate(context, msgId, ContextAndMsgId.Type.REGULAR, targetLocale);
+ }
+
+ @Override
+ String translate(final String context, final String msgId, final String msgIdPlural, final int num, final Locale targetLocale) {
+
+ final String msgIdToUse;
+ final ContextAndMsgId.Type type;
+ if (num == 1) {
+ msgIdToUse = msgId;
+ type = ContextAndMsgId.Type.REGULAR;
+ } else {
+ msgIdToUse = msgIdPlural;
+ type = ContextAndMsgId.Type.PLURAL_ONLY;
+ }
+
+ return translate(context, msgIdToUse, type, targetLocale);
+ }
+
+ private String translate(
+ final String context, final String msgId, final ContextAndMsgId.Type type,
+ final Locale targetLocale) {
final Map<ContextAndMsgId, String> translationsByKey = readAndCacheTranslationsIfRequired(targetLocale);
- final ContextAndMsgId key = new ContextAndMsgId(context, msgId);
+ final ContextAndMsgId key = new ContextAndMsgId(context, msgId, type);
final String translation = translationsByKey.get(key);
if (translation != null) {
return translation;
}
- final ContextAndMsgId keyNoContext = new ContextAndMsgId("", msgId);
+ final ContextAndMsgId keyNoContext = new ContextAndMsgId("", msgId, type);
final String translationNoContext = translationsByKey.get(keyNoContext);
if (translationNoContext != null) {
return translationNoContext;
http://git-wip-us.apache.org/repos/asf/isis/blob/613eb192/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/i18n/po/PoWriter.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/i18n/po/PoWriter.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/i18n/po/PoWriter.java
index d2182de..6c023cf 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/i18n/po/PoWriter.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/i18n/po/PoWriter.java
@@ -18,11 +18,12 @@
*/
package org.apache.isis.core.metamodel.services.i18n.po;
-import java.util.Collection;
import java.util.Locale;
import java.util.Map;
-import java.util.NavigableSet;
-import com.google.common.collect.TreeMultimap;
+import java.util.SortedMap;
+import java.util.SortedSet;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Sets;
import org.joda.time.LocalDateTime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -31,7 +32,17 @@ class PoWriter extends PoAbstract {
public static Logger LOG = LoggerFactory.getLogger(PoWriter.class);
- private final TreeMultimap<String, String> contextsByMsgId = TreeMultimap.create();
+ private static class Block {
+ private final String msgId;
+ private final SortedSet<String> contexts = Sets.newTreeSet();
+ private String msgIdPlural;
+
+ private Block(final String msgId) {
+ this.msgId = msgId;
+ }
+ }
+
+ private final SortedMap<String, Block> blocksByMsgId = Maps.newTreeMap();
public PoWriter(final TranslationServicePo translationServicePo) {
super(translationServicePo);
@@ -78,42 +89,50 @@ class PoWriter extends PoAbstract {
//endregion
- public String translate(final String context, final String originalText, final Locale targetLocale) {
- final NavigableSet<String> contexts = contextsByMsgId.get(originalText);
- contexts.add(context);
- return originalText;
+ public String translate(final String context, final String msgId, final Locale targetLocale) {
+ Block block = blocksByMsgId.get(msgId);
+ if(block == null) {
+ block = new Block(msgId);
+ }
+ block.contexts.add(context);
+
+ return msgId;
+ }
+
+ @Override
+ String translate(final String context, final String msgId, final String msgIdPlural, final int num, final Locale targetLocale) {
+
+ Block block = blocksByMsgId.get(msgId);
+ if(block == null) {
+ block = new Block(msgId);
+ }
+ block.msgIdPlural = msgIdPlural;
+ block.contexts.add(context);
+
+ return null;
}
/**
* Not API
*/
String toPot() {
- final Map<String, Collection<String>> messages = messagesWithContext();
final StringBuilder buf = new StringBuilder();
- for (String message : messages.keySet()) {
- final Collection<String> contexts = messages.get(message);
- for (String context : contexts) {
+ for (String msgId : blocksByMsgId.keySet()) {
+ final Block block = blocksByMsgId.get(msgId);
+ for (String context : block.contexts) {
buf.append("#: ").append(context).append("\n");
}
- buf.append("msgid: \"").append(message).append("\"\n");
- buf.append("msgstr: \"\"\n");
- buf.append("\n\n\n");
+ buf.append("msgid \"").append(msgId).append("\"\n");
+ if(block.msgIdPlural == null) {
+ buf.append("msgstr \"\"\n");
+ } else {
+ buf.append("msgid_plural \"").append(block.msgIdPlural).append("\"\n");
+ buf.append("msgstr[0] \"\"\n");
+ buf.append("msgstr[1] \"\"\n");
+ }
+ buf.append("\n\n");
}
return buf.toString();
}
- /**
- * Returns the set of messages encountered and cached by the service (the key of the map) along with a set of
- * context strings (the value of the map)
- *
- * <p>
- * The intention is that an implementation running in prototype mode should retain all requests to
- * {@link #translate(String, String, java.util.Locale)}, such that they can be translated and used by the
- * same implementation in non-prototype mode.
- * </p>
- */
- Map<String, Collection<String>> messagesWithContext() {
- return contextsByMsgId.asMap();
- }
-
}
http://git-wip-us.apache.org/repos/asf/isis/blob/613eb192/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/i18n/po/TranslationServicePo.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/i18n/po/TranslationServicePo.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/i18n/po/TranslationServicePo.java
index 785f334..e390f6d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/i18n/po/TranslationServicePo.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/services/i18n/po/TranslationServicePo.java
@@ -80,8 +80,13 @@ public class TranslationServicePo implements TranslationService {
@Override
@Programmatic
- public String translate(final String context, final String originalText, final Locale targetLocale) {
- return po.translate(context, originalText, targetLocale);
+ public String translate(final String context, final String text, final Locale targetLocale) {
+ return po.translate(context, text, targetLocale);
+ }
+
+ @Override
+ public String translate(final String context, final String singularText, final String pluralText, final int num, final Locale targetLocale) {
+ return po.translate(context, singularText, pluralText, num, targetLocale);
}
/**