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/03/21 12:09:43 UTC
[1/3] isis git commit: ISIS-1105: deprecate container(),
service(Class) and wrapperFactory() from IntegrationTestAbstract
Repository: isis
Updated Branches:
refs/heads/master e6551bc46 -> ee64b2919
ISIS-1105: deprecate container(), service(Class<T>) and wrapperFactory() from IntegrationTestAbstract
... should simply inject these services instead.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/67ce86b3
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/67ce86b3
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/67ce86b3
Branch: refs/heads/master
Commit: 67ce86b30cbb0c5e0b79226899315f84de15a74a
Parents: e6551bc
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Sat Mar 21 11:02:44 2015 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Sat Mar 21 11:02:44 2015 +0000
----------------------------------------------------------------------
.../IntegrationTestAbstract.java | 29 +++++++++++++-------
.../scenarios/ScenarioExecution.java | 4 +++
.../modules/simple/SimpleObjectIntegTest.java | 16 ++++++-----
3 files changed, 32 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/67ce86b3/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IntegrationTestAbstract.java
----------------------------------------------------------------------
diff --git a/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IntegrationTestAbstract.java b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IntegrationTestAbstract.java
index 4d7b9a0..8000ebc 100644
--- a/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IntegrationTestAbstract.java
+++ b/core/integtestsupport/src/main/java/org/apache/isis/core/integtestsupport/IntegrationTestAbstract.java
@@ -119,48 +119,57 @@ public abstract class IntegrationTestAbstract {
/**
* Convenience method
*/
- public Object getVar(String type, String id) {
+ public Object getVar(final String type, final String id) {
return scenarioExecution().getVar(type, id);
}
/**
* Convenience method
*/
- public <X> X getVar(String type, String id, Class<X> cls) {
+ public <X> X getVar(final String type, final String id, final Class<X> cls) {
return scenarioExecution().getVar(type, id ,cls);
}
/**
* Convenience method
*/
- public void putVar(String type, String id, Object value) {
+ public void putVar(final String type, final String id, final Object value) {
scenarioExecution().putVar(type, id, value);
}
/**
* Convenience method
*/
- public void removeVar(String type, String id) {
+ public void removeVar(final String type, final String id) {
scenarioExecution().removeVar(type, id);
}
/**
* Convenience method
+ *
+ * @deprecated - instead just inject service into test.
*/
- protected <T> T service(Class<T> cls) {
+ @Deprecated
+ protected <T> T service(final Class<T> cls) {
return scenarioExecution().service(cls);
}
/**
* Convenience method
+ *
+ * @deprecated - instead just inject {@link org.apache.isis.applib.DomainObjectContainer} into test.
*/
+ @Deprecated
protected DomainObjectContainer container() {
return scenarioExecution().container();
}
/**
* Convenience method
+ *
+ * @deprecated - instead just inject {@link org.apache.isis.applib.services.wrapper.WrapperFactory} into test.
*/
+ @Deprecated
protected WrapperFactory wrapperFactory() {
return scenarioExecution().wrapperFactory();
}
@@ -168,14 +177,14 @@ public abstract class IntegrationTestAbstract {
/**
* Convenience method
*/
- protected <T> T wrap(T obj) {
+ protected <T> T wrap(final T obj) {
return scenarioExecution().wrapperFactory().wrap(obj);
}
/**
* Convenience method
*/
- protected <T> T unwrap(T obj) {
+ protected <T> T unwrap(final T obj) {
return scenarioExecution().wrapperFactory().unwrap(obj);
}
@@ -204,11 +213,11 @@ public abstract class IntegrationTestAbstract {
try {
base.evaluate();
isft.endTran();
- } catch(Throwable e) {
+ } catch(final Throwable e) {
isft.bounceSystem();
final List<Throwable> causalChain = Throwables.getCausalChain(e);
// if underlying cause is an applib-defined exception, throw that rather than Isis' wrapper exception
- for (Throwable cause : causalChain) {
+ for (final Throwable cause : causalChain) {
if(cause instanceof RecoverableException ||
cause instanceof NonRecoverableException) {
throw cause;
@@ -231,7 +240,7 @@ public abstract class IntegrationTestAbstract {
* @deprecated - just inject {@link org.apache.isis.applib.fixturescripts.FixtureScripts} service for your application, and call. If multiple fixture scripts, create an anonymous subclass of {@link org.apache.isis.applib.fixturescripts.FixtureScript} and override {@link org.apache.isis.applib.fixturescripts.FixtureScript#execute(org.apache.isis.applib.fixturescripts.FixtureScript.ExecutionContext)} execute.
*/
@Deprecated
- protected static void runScript(FixtureScript... fixtureScripts) {
+ protected static void runScript(final FixtureScript... fixtureScripts) {
scenarioExecution().install(fixtureScripts);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/67ce86b3/core/specsupport/src/main/java/org/apache/isis/core/specsupport/scenarios/ScenarioExecution.java
----------------------------------------------------------------------
diff --git a/core/specsupport/src/main/java/org/apache/isis/core/specsupport/scenarios/ScenarioExecution.java b/core/specsupport/src/main/java/org/apache/isis/core/specsupport/scenarios/ScenarioExecution.java
index 92e5234..c9ce6a0 100644
--- a/core/specsupport/src/main/java/org/apache/isis/core/specsupport/scenarios/ScenarioExecution.java
+++ b/core/specsupport/src/main/java/org/apache/isis/core/specsupport/scenarios/ScenarioExecution.java
@@ -130,6 +130,10 @@ public abstract class ScenarioExecution {
* <p>
* Because integration tests cache services in the session, this method should typically be followed by
* calls to {@link #closeSession() close} the current session and then to re-{@link #openSession() open} a new one.
+ *
+ * <p>
+ * TODO: I'm not convinced this works reliably...
+ * </p>
*/
public <T> void replaceService(T original, T replacement) {
dsp.replaceService(original, replacement);
http://git-wip-us.apache.org/repos/asf/isis/blob/67ce86b3/example/application/simpleapp/integtests/src/test/java/domainapp/integtests/tests/modules/simple/SimpleObjectIntegTest.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/integtests/src/test/java/domainapp/integtests/tests/modules/simple/SimpleObjectIntegTest.java b/example/application/simpleapp/integtests/src/test/java/domainapp/integtests/tests/modules/simple/SimpleObjectIntegTest.java
index 12d65c7..9991e3c 100644
--- a/example/application/simpleapp/integtests/src/test/java/domainapp/integtests/tests/modules/simple/SimpleObjectIntegTest.java
+++ b/example/application/simpleapp/integtests/src/test/java/domainapp/integtests/tests/modules/simple/SimpleObjectIntegTest.java
@@ -18,21 +18,20 @@
*/
package domainapp.integtests.tests.modules.simple;
-import domainapp.dom.modules.simple.SimpleObject;
-import domainapp.dom.modules.simple.SimpleObjects;
-import domainapp.fixture.scenarios.RecreateSimpleObjects;
-import domainapp.integtests.tests.SimpleAppIntegTest;
-
import javax.inject.Inject;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
+import org.apache.isis.applib.DomainObjectContainer;
import org.apache.isis.applib.fixturescripts.FixtureScripts;
import org.apache.isis.applib.services.i18n.TranslationService;
import org.apache.isis.applib.services.wrapper.DisabledException;
import org.apache.isis.applib.services.wrapper.InvalidException;
-
+import domainapp.dom.modules.simple.SimpleObject;
+import domainapp.dom.modules.simple.SimpleObjects;
+import domainapp.fixture.scenarios.RecreateSimpleObjects;
+import domainapp.integtests.tests.SimpleAppIntegTest;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.CoreMatchers.nullValue;
@@ -116,6 +115,9 @@ public class SimpleObjectIntegTest extends SimpleAppIntegTest {
public static class Title extends SimpleObjectIntegTest {
+ @Inject
+ DomainObjectContainer container;
+
@Test
public void interpolatesName() throws Exception {
@@ -123,7 +125,7 @@ public class SimpleObjectIntegTest extends SimpleAppIntegTest {
final String name = simpleObjectWrapped.getName();
// when
- final String title = container().titleOf(simpleObjectWrapped);
+ final String title = container.titleOf(simpleObjectWrapped);
// then
assertThat(title, is("Object: " + name));
[3/3] isis git commit: ISIS-1052: recreating simpleapp archetype
Posted by da...@apache.org.
ISIS-1052: recreating simpleapp archetype
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/ee64b291
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/ee64b291
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/ee64b291
Branch: refs/heads/master
Commit: ee64b29197c7c85072dfe085fd5caf3f6a7bc12f
Parents: c3ed13d
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Sat Mar 21 11:05:45 2015 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Sat Mar 21 11:05:45 2015 +0000
----------------------------------------------------------------------
.../dom/modules/simple/SimpleObject.java | 10 +-
.../dom/modules/simple/SimpleObjects.java | 7 +
.../modules/simple/SimpleObjectsTearDown.java | 2 +-
.../modules/simple/SimpleObjectIntegTest.java | 16 +-
.../modules/simple/SimpleObjectsIntegTest.java | 44 ++++-
.../src/main/webapp/WEB-INF/translations-en.po | 194 +++++++++++++++++++
.../main/webapp/WEB-INF/translations-en_GB.po | 155 ---------------
.../src/main/webapp/WEB-INF/translations-es.po | 194 +++++++++++++++++++
.../src/main/webapp/WEB-INF/translations-nl.po | 194 +++++++++++++++++++
.../src/main/webapp/WEB-INF/translations.po | 53 ++++-
.../projects/basic/archetype.properties | 2 +-
11 files changed, 689 insertions(+), 182 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/ee64b291/example/archetype/simpleapp/src/main/resources/archetype-resources/dom/src/main/java/domainapp/dom/modules/simple/SimpleObject.java
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/dom/src/main/java/domainapp/dom/modules/simple/SimpleObject.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/dom/src/main/java/domainapp/dom/modules/simple/SimpleObject.java
index 9b6a444..48d456b 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/dom/src/main/java/domainapp/dom/modules/simple/SimpleObject.java
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/dom/src/main/java/domainapp/dom/modules/simple/SimpleObject.java
@@ -38,7 +38,11 @@ import org.apache.isis.applib.services.eventbus.ActionDomainEvent;
import org.apache.isis.applib.services.i18n.TranslatableString;
import org.apache.isis.applib.util.ObjectContracts;
-@javax.jdo.annotations.PersistenceCapable(identityType=IdentityType.DATASTORE)
+@javax.jdo.annotations.PersistenceCapable(
+ identityType=IdentityType.DATASTORE,
+ schema = "simple",
+ table = "SimpleObject"
+)
@javax.jdo.annotations.DatastoreIdentity(
strategy=javax.jdo.annotations.IdGeneratorStrategy.IDENTITY,
column="id")
@@ -57,9 +61,7 @@ import org.apache.isis.applib.util.ObjectContracts;
+ "WHERE name.indexOf(:name) >= 0 ")
})
@javax.jdo.annotations.Unique(name="SimpleObject_name_UNQ", members = {"name"})
-@DomainObject(
- objectType = "SIMPLE"
-)
+@DomainObject
@DomainObjectLayout(
bookmarking = BookmarkPolicy.AS_ROOT
)
http://git-wip-us.apache.org/repos/asf/isis/blob/ee64b291/example/archetype/simpleapp/src/main/resources/archetype-resources/dom/src/main/java/domainapp/dom/modules/simple/SimpleObjects.java
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/dom/src/main/java/domainapp/dom/modules/simple/SimpleObjects.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/dom/src/main/java/domainapp/dom/modules/simple/SimpleObjects.java
index 4458905..049f292 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/dom/src/main/java/domainapp/dom/modules/simple/SimpleObjects.java
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/dom/src/main/java/domainapp/dom/modules/simple/SimpleObjects.java
@@ -34,11 +34,18 @@ import org.apache.isis.applib.annotation.ParameterLayout;
import org.apache.isis.applib.annotation.SemanticsOf;
import org.apache.isis.applib.query.QueryDefault;
import org.apache.isis.applib.services.eventbus.ActionDomainEvent;
+import org.apache.isis.applib.services.i18n.TranslatableString;
@DomainService(repositoryFor = SimpleObject.class)
@DomainServiceLayout(menuOrder = "10")
public class SimpleObjects {
+ //region > title
+ public TranslatableString title() {
+ return TranslatableString.tr("Simple Objects");
+ }
+ //endregion
+
//region > listAll (action)
@Action(
semantics = SemanticsOf.SAFE
http://git-wip-us.apache.org/repos/asf/isis/blob/ee64b291/example/archetype/simpleapp/src/main/resources/archetype-resources/fixture/src/main/java/domainapp/fixture/modules/simple/SimpleObjectsTearDown.java
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/fixture/src/main/java/domainapp/fixture/modules/simple/SimpleObjectsTearDown.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/fixture/src/main/java/domainapp/fixture/modules/simple/SimpleObjectsTearDown.java
index 1d4d7d0..32b739f 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/fixture/src/main/java/domainapp/fixture/modules/simple/SimpleObjectsTearDown.java
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/fixture/src/main/java/domainapp/fixture/modules/simple/SimpleObjectsTearDown.java
@@ -29,7 +29,7 @@ public class SimpleObjectsTearDown extends FixtureScript {
@Override
protected void execute(ExecutionContext executionContext) {
- isisJdoSupport.executeUpdate("delete from ${symbol_escape}"SimpleObject${symbol_escape}"");
+ isisJdoSupport.executeUpdate("delete from simple.${symbol_escape}"SimpleObject${symbol_escape}"");
}
http://git-wip-us.apache.org/repos/asf/isis/blob/ee64b291/example/archetype/simpleapp/src/main/resources/archetype-resources/integtests/src/test/java/domainapp/integtests/tests/modules/simple/SimpleObjectIntegTest.java
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/integtests/src/test/java/domainapp/integtests/tests/modules/simple/SimpleObjectIntegTest.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/integtests/src/test/java/domainapp/integtests/tests/modules/simple/SimpleObjectIntegTest.java
index 622f56d..9659479 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/integtests/src/test/java/domainapp/integtests/tests/modules/simple/SimpleObjectIntegTest.java
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/integtests/src/test/java/domainapp/integtests/tests/modules/simple/SimpleObjectIntegTest.java
@@ -21,21 +21,20 @@
*/
package domainapp.integtests.tests.modules.simple;
-import domainapp.dom.modules.simple.SimpleObject;
-import domainapp.dom.modules.simple.SimpleObjects;
-import domainapp.fixture.scenarios.RecreateSimpleObjects;
-import domainapp.integtests.tests.SimpleAppIntegTest;
-
import javax.inject.Inject;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
+import org.apache.isis.applib.DomainObjectContainer;
import org.apache.isis.applib.fixturescripts.FixtureScripts;
import org.apache.isis.applib.services.i18n.TranslationService;
import org.apache.isis.applib.services.wrapper.DisabledException;
import org.apache.isis.applib.services.wrapper.InvalidException;
-
+import domainapp.dom.modules.simple.SimpleObject;
+import domainapp.dom.modules.simple.SimpleObjects;
+import domainapp.fixture.scenarios.RecreateSimpleObjects;
+import domainapp.integtests.tests.SimpleAppIntegTest;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.CoreMatchers.nullValue;
@@ -119,6 +118,9 @@ public class SimpleObjectIntegTest extends SimpleAppIntegTest {
public static class Title extends SimpleObjectIntegTest {
+ @Inject
+ DomainObjectContainer container;
+
@Test
public void interpolatesName() throws Exception {
@@ -126,7 +128,7 @@ public class SimpleObjectIntegTest extends SimpleAppIntegTest {
final String name = simpleObjectWrapped.getName();
// when
- final String title = container().titleOf(simpleObjectWrapped);
+ final String title = container.titleOf(simpleObjectWrapped);
// then
assertThat(title, is("Object: " + name));
http://git-wip-us.apache.org/repos/asf/isis/blob/ee64b291/example/archetype/simpleapp/src/main/resources/archetype-resources/integtests/src/test/java/domainapp/integtests/tests/modules/simple/SimpleObjectsIntegTest.java
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/integtests/src/test/java/domainapp/integtests/tests/modules/simple/SimpleObjectsIntegTest.java b/example/archetype/simpleapp/src/main/resources/archetype-resources/integtests/src/test/java/domainapp/integtests/tests/modules/simple/SimpleObjectsIntegTest.java
index 8ab392d..75b9f96 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/integtests/src/test/java/domainapp/integtests/tests/modules/simple/SimpleObjectsIntegTest.java
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/integtests/src/test/java/domainapp/integtests/tests/modules/simple/SimpleObjectsIntegTest.java
@@ -21,12 +21,6 @@
*/
package domainapp.integtests.tests.modules.simple;
-import domainapp.dom.modules.simple.SimpleObject;
-import domainapp.dom.modules.simple.SimpleObjects;
-import domainapp.fixture.modules.simple.SimpleObjectsTearDown;
-import domainapp.fixture.scenarios.RecreateSimpleObjects;
-import domainapp.integtests.tests.SimpleAppIntegTest;
-
import java.sql.SQLIntegrityConstraintViolationException;
import java.util.List;
import javax.inject.Inject;
@@ -37,9 +31,15 @@ import org.hamcrest.TypeSafeMatcher;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
+import org.apache.isis.applib.DomainObjectContainer;
import org.apache.isis.applib.fixturescripts.FixtureScript;
import org.apache.isis.applib.fixturescripts.FixtureScripts;
-
+import domainapp.dom.modules.simple.SimpleObject;
+import domainapp.dom.modules.simple.SimpleObjects;
+import domainapp.fixture.modules.simple.SimpleObjectsTearDown;
+import domainapp.fixture.scenarios.RecreateSimpleObjects;
+import domainapp.integtests.tests.SimpleAppIntegTest;
+import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
@@ -52,6 +52,36 @@ public class SimpleObjectsIntegTest extends SimpleAppIntegTest {
FixtureScripts fixtureScripts;
@Inject
SimpleObjects simpleObjects;
+ @Inject
+ DomainObjectContainer container;
+
+ public static class Title extends SimpleObjectsIntegTest {
+
+ @Test
+ public void happyCase() throws Exception {
+
+ // when
+ final String title = container.titleOf(wrap(simpleObjects));
+
+ // then
+ assertThat(title, equalTo("Simple Objects"));
+ }
+
+ @Test
+ public void whenNone() throws Exception {
+
+ // given
+ FixtureScript fs = new SimpleObjectsTearDown();
+ fixtureScripts.runFixtureScript(fs, null);
+ nextTransaction();
+
+ // when
+ final List<SimpleObject> all = wrap(simpleObjects).listAll();
+
+ // then
+ assertThat(all.size(), is(0));
+ }
+ }
public static class ListAll extends SimpleObjectsIntegTest {
http://git-wip-us.apache.org/repos/asf/isis/blob/ee64b291/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/translations-en.po
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/translations-en.po b/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/translations-en.po
new file mode 100644
index 0000000..6f5a4a4
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/translations-en.po
@@ -0,0 +1,194 @@
+##############################################################################
+#
+# .pot file
+#
+# Translate this file to each required language and place in WEB-INF, eg:
+#
+# /WEB-INF/translations-en_US.po
+# /WEB-INF/translations-en.po
+# /WEB-INF/translations-fr_FR.po
+# /WEB-INF/translations-fr.po
+# /WEB-INF/translations.po
+#
+# If the app uses TranslatableString (eg for internationalized validation
+# messages), or if the app calls the TranslationService directly, then ensure
+# that all text to be translated has been captured by running a full
+# integration test suite that exercises all relevant behaviour
+#
+##############################################################################
+
+#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#downloadTranslations(java.lang.String)
+msgid ".pot file name"
+msgstr ".pot file name"
+
+
+#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#resetTranslationCache()
+msgid "Clear translation cache"
+msgstr "Clear translation cache"
+
+
+#: domainapp.dom.modules.simple.SimpleObjects#create()
+msgid "Create"
+msgstr "Create"
+
+
+#: org.apache.isis.applib.fixturescripts.FixtureScript#discoverable
+msgid "Discoverable"
+msgstr "Discoverable"
+
+
+#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#downloadTranslations()
+msgid "Download Translations"
+msgstr "Download Translations"
+
+
+#: domainapp.dom.modules.simple.SimpleObject#updateName()
+msgid "Exclamation mark is not allowed"
+msgstr "Exclamation mark is not allowed"
+
+
+#: domainapp.dom.modules.simple.SimpleObjects#findByName()
+msgid "Find By Name"
+msgstr "Find By Name"
+
+
+#: org.apache.isis.applib.fixturescripts.FixtureResult#fixtureScriptClassName
+msgid "Fixture script"
+msgstr "Fixture script"
+
+
+#: org.apache.isis.applib.fixturescripts.FixtureScript#friendlyName
+msgid "Friendly Name"
+msgstr "Friendly Name"
+
+
+#: domainapp.dom.app.homepage.HomePageService#homePage()
+msgid "Home Page"
+msgstr "Home Page"
+
+
+#: domainapp.dom.modules.simple.SimpleObjects#listAll()
+msgid "List All"
+msgstr "List All"
+
+
+#: org.apache.isis.applib.fixturescripts.FixtureScript#localName
+msgid "Local Name"
+msgstr "Local Name"
+
+
+#: org.apache.isis.applib.fixturescripts.FixtureScript#lookup()
+#: org.apache.isis.applib.services.bookmark.BookmarkHolderActionContributions#lookup()
+msgid "Lookup"
+msgstr "Lookup"
+
+
+#: domainapp.dom.modules.simple.SimpleObject#name
+#: domainapp.dom.modules.simple.SimpleObjects#create(java.lang.String)
+#: domainapp.dom.modules.simple.SimpleObjects#findByName(java.lang.String)
+msgid "Name"
+msgstr "Name"
+
+
+#: domainapp.dom.modules.simple.SimpleObject#updateName(java.lang.String)
+msgid "New name"
+msgstr "New name"
+
+
+#: org.apache.isis.applib.services.bookmark.BookmarkHolderAssociationContributions#object()
+msgid "Object"
+msgstr "Object"
+
+
+#: domainapp.dom.modules.simple.SimpleObject#title()
+msgid "Object: {name}"
+msgstr "Object: {name}"
+
+
+#: domainapp.dom.app.homepage.HomePageViewModel#objects
+msgid "Objects"
+msgstr "Objects"
+
+
+#: domainapp.fixture.DomainAppFixturesService#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
+#: org.apache.isis.applib.fixturescripts.FixtureScripts#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
+msgid "Parameters"
+msgstr "Parameters"
+
+
+#: domainapp.fixture.DomainAppFixturesService
+#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu
+msgid "Prototyping"
+msgstr "Prototyping"
+
+
+#: domainapp.fixture.DomainAppFixturesService#recreateObjectsAndReturnFirst()
+msgid "Recreate Objects And Return First"
+msgstr "Recreate Objects And Return First"
+
+
+#: org.apache.isis.applib.fixturescripts.FixtureResult#object
+msgid "Result"
+msgstr "Result"
+
+
+#: org.apache.isis.applib.fixturescripts.FixtureResult#className
+msgid "Result class"
+msgstr "Result class"
+
+
+#: org.apache.isis.applib.fixturescripts.FixtureResult#key
+msgid "Result key"
+msgstr "Result key"
+
+
+#: domainapp.fixture.DomainAppFixturesService#runFixtureScript()
+#: org.apache.isis.applib.fixturescripts.FixtureScripts#runFixtureScript()
+msgid "Run Fixture Script"
+msgstr "Run Fixture Script"
+
+
+#: org.apache.isis.applib.fixturescripts.FixtureScript
+msgid "Script"
+msgstr "Script"
+
+
+#: domainapp.fixture.DomainAppFixturesService#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
+#: org.apache.isis.applib.fixturescripts.FixtureScripts#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
+msgid "Script-specific parameters (if any). The format depends on the script implementation (eg key=value, CSV, JSON, XML etc)"
+msgstr "Script-specific parameters (if any). The format depends on the script implementation (eg key=value, CSV, JSON, XML etc)"
+
+
+#: domainapp.dom.modules.simple.SimpleObjects#title()
+msgid "Simple Objects"
+msgstr "Simple Objects"
+
+
+#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#switchToReadingTranslations()
+msgid "Switch To Reading Translations"
+msgstr "Switch To Reading Translations"
+
+
+#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#switchToWritingTranslations()
+msgid "Switch To Writing Translations"
+msgstr "Switch To Writing Translations"
+
+
+#: org.apache.isis.applib.fixturescripts.FixtureScript#type
+msgid "Type"
+msgstr "Type"
+
+
+#: domainapp.dom.modules.simple.SimpleObject#updateName()
+msgid "Update Name"
+msgstr "Update Name"
+
+
+
+
+
+
+##############################################################################
+# end of .pot file
+##############################################################################
+
http://git-wip-us.apache.org/repos/asf/isis/blob/ee64b291/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/translations-en_GB.po
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/translations-en_GB.po b/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/translations-en_GB.po
deleted file mode 100644
index 4e2c823..0000000
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/translations-en_GB.po
+++ /dev/null
@@ -1,155 +0,0 @@
-##############################################################################
-#
-# .pot file
-#
-# Translate this file to each required language and place in WEB-INF, eg:
-#
-# /WEB-INF/translations_en-US.po
-# /WEB-INF/translations_en.po
-# /WEB-INF/translations_fr-FR.po
-# /WEB-INF/translations_fr.po
-# /WEB-INF/translations.po
-#
-##############################################################################
-
-#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#downloadTranslations(java.lang.String)
-msgid ".pot file name"
-msgstr ""
-
-
-#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#resetTranslationCache()
-msgid "Clear translation cache"
-msgstr "Reload .po files"
-
-
-#: domainapp.dom.modules.simple.SimpleObjects#create()
-msgid "Create"
-msgstr ""
-
-
-#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#downloadTranslations()
-msgid "Download Translations"
-msgstr "Download .pot file"
-
-
-#: domainapp.dom.modules.simple.SimpleObject#updateName()
-msgid "Exclamation mark is not allowed"
-msgstr "No exclamation marks, chum!"
-
-
-#: domainapp.dom.modules.simple.SimpleObjects#findByName()
-msgid "Find By Name"
-msgstr ""
-
-
-#: org.apache.isis.applib.fixturescripts.FixtureResult#fixtureScriptClassName
-msgid "Fixture script"
-msgstr ""
-
-
-#: domainapp.dom.app.homepage.HomePageService#homePage()
-msgid "Home Page"
-msgstr ""
-
-
-#: domainapp.dom.modules.simple.SimpleObjects#listAll()
-msgid "List All"
-msgstr ""
-
-
-#: domainapp.fixture.scenarios.RecreateSimpleObjects#lookup()
-#: org.apache.isis.applib.fixturescripts.FixtureScript#lookup()
-#: org.apache.isis.applib.services.bookmark.BookmarkHolderActionContributions#lookup()
-msgid "Lookup"
-msgstr ""
-
-
-#: domainapp.dom.modules.simple.SimpleObjects#create(java.lang.String)
-#: domainapp.dom.modules.simple.SimpleObjects#findByName(java.lang.String)
-msgid "Name"
-msgstr ""
-
-
-#: domainapp.dom.modules.simple.SimpleObject#updateName(java.lang.String)
-msgid "New name"
-msgstr ""
-
-
-#: org.apache.isis.applib.services.bookmark.BookmarkHolderAssociationContributions#object()
-msgid "Object"
-msgstr ""
-
-
-#: domainapp.dom.modules.simple.SimpleObject#title()
-msgid "Object: {name}"
-msgstr ""
-
-
-#: domainapp.fixture.DomainAppFixturesService#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
-#: org.apache.isis.applib.fixturescripts.FixtureScripts#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
-msgid "Parameters"
-msgstr ""
-
-
-#: domainapp.fixture.DomainAppFixturesService
-#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu
-msgid "Prototyping"
-msgstr ""
-
-
-#: domainapp.fixture.DomainAppFixturesService#recreateObjectsAndReturnFirst()
-msgid "Recreate Objects And Return First"
-msgstr ""
-
-
-#: org.apache.isis.applib.fixturescripts.FixtureResult#object
-msgid "Result"
-msgstr ""
-
-
-#: org.apache.isis.applib.fixturescripts.FixtureResult#className
-msgid "Result class"
-msgstr ""
-
-
-#: org.apache.isis.applib.fixturescripts.FixtureResult#key
-msgid "Result key"
-msgstr ""
-
-
-#: domainapp.fixture.DomainAppFixturesService#runFixtureScript()
-#: org.apache.isis.applib.fixturescripts.FixtureScripts#runFixtureScript()
-msgid "Run Fixture Script"
-msgstr ""
-
-
-#: domainapp.fixture.scenarios.RecreateSimpleObjects
-#: org.apache.isis.applib.fixturescripts.FixtureScript
-msgid "Script"
-msgstr ""
-
-
-#: domainapp.fixture.DomainAppFixturesService#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
-#: org.apache.isis.applib.fixturescripts.FixtureScripts#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
-msgid "Script-specific parameters (if any). The format depends on the script implementation (eg key=value, CSV, JSON, XML etc)"
-msgstr ""
-
-
-#: domainapp.dom.modules.simple.SimpleObject#updateName()
-msgid "Update Name"
-msgstr ""
-
-
-#: domainapp.fixture.scenarios.RecreateSimpleObjects#withDiscoverability()
-#: org.apache.isis.applib.fixturescripts.FixtureScript#withDiscoverability()
-msgid "With Discoverability"
-msgstr ""
-
-
-
-
-
-##############################################################################
-# end of .pot file
-##############################################################################
-
http://git-wip-us.apache.org/repos/asf/isis/blob/ee64b291/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/translations-es.po
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/translations-es.po b/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/translations-es.po
new file mode 100644
index 0000000..92b8bdb
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/translations-es.po
@@ -0,0 +1,194 @@
+##############################################################################
+#
+# .pot file
+#
+# Translate this file to each required language and place in WEB-INF, eg:
+#
+# /WEB-INF/translations-en_US.po
+# /WEB-INF/translations-en.po
+# /WEB-INF/translations-fr_FR.po
+# /WEB-INF/translations-fr.po
+# /WEB-INF/translations.po
+#
+# If the app uses TranslatableString (eg for internationalized validation
+# messages), or if the app calls the TranslationService directly, then ensure
+# that all text to be translated has been captured by running a full
+# integration test suite that exercises all relevant behaviour
+#
+##############################################################################
+
+#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#downloadTranslations(java.lang.String)
+msgid ".pot file name"
+msgstr ""
+
+
+#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#resetTranslationCache()
+msgid "Clear translation cache"
+msgstr ""
+
+
+#: domainapp.dom.modules.simple.SimpleObjects#create()
+msgid "Create"
+msgstr "Crear"
+
+
+#: org.apache.isis.applib.fixturescripts.FixtureScript#discoverable
+msgid "Discoverable"
+msgstr ""
+
+
+#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#downloadTranslations()
+msgid "Download Translations"
+msgstr ""
+
+
+#: domainapp.dom.modules.simple.SimpleObject#updateName()
+msgid "Exclamation mark is not allowed"
+msgstr ""
+
+
+#: domainapp.dom.modules.simple.SimpleObjects#findByName()
+msgid "Find By Name"
+msgstr "Buscar por Nombre"
+
+
+#: org.apache.isis.applib.fixturescripts.FixtureResult#fixtureScriptClassName
+msgid "Fixture script"
+msgstr ""
+
+
+#: org.apache.isis.applib.fixturescripts.FixtureScript#friendlyName
+msgid "Friendly Name"
+msgstr ""
+
+
+#: domainapp.dom.app.homepage.HomePageService#homePage()
+msgid "Home Page"
+msgstr ""
+
+
+#: domainapp.dom.modules.simple.SimpleObjects#listAll()
+msgid "List All"
+msgstr "Lista de Todos"
+
+
+#: org.apache.isis.applib.fixturescripts.FixtureScript#localName
+msgid "Local Name"
+msgstr ""
+
+
+#: org.apache.isis.applib.fixturescripts.FixtureScript#lookup()
+#: org.apache.isis.applib.services.bookmark.BookmarkHolderActionContributions#lookup()
+msgid "Lookup"
+msgstr ""
+
+
+#: domainapp.dom.modules.simple.SimpleObject#name
+#: domainapp.dom.modules.simple.SimpleObjects#create(java.lang.String)
+#: domainapp.dom.modules.simple.SimpleObjects#findByName(java.lang.String)
+msgid "Name"
+msgstr "Nombre"
+
+
+#: domainapp.dom.modules.simple.SimpleObject#updateName(java.lang.String)
+msgid "New name"
+msgstr "Nuevo nombre"
+
+
+#: org.apache.isis.applib.services.bookmark.BookmarkHolderAssociationContributions#object()
+msgid "Object"
+msgstr ""
+
+
+#: domainapp.dom.modules.simple.SimpleObject#title()
+msgid "Object: {name}"
+msgstr ""
+
+
+#: domainapp.dom.app.homepage.HomePageViewModel#objects
+msgid "Objects"
+msgstr ""
+
+
+#: domainapp.fixture.DomainAppFixturesService#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
+#: org.apache.isis.applib.fixturescripts.FixtureScripts#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
+msgid "Parameters"
+msgstr ""
+
+
+#: domainapp.fixture.DomainAppFixturesService
+#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu
+msgid "Prototyping"
+msgstr ""
+
+
+#: domainapp.fixture.DomainAppFixturesService#recreateObjectsAndReturnFirst()
+msgid "Recreate Objects And Return First"
+msgstr ""
+
+
+#: org.apache.isis.applib.fixturescripts.FixtureResult#object
+msgid "Result"
+msgstr ""
+
+
+#: org.apache.isis.applib.fixturescripts.FixtureResult#className
+msgid "Result class"
+msgstr ""
+
+
+#: org.apache.isis.applib.fixturescripts.FixtureResult#key
+msgid "Result key"
+msgstr ""
+
+
+#: domainapp.fixture.DomainAppFixturesService#runFixtureScript()
+#: org.apache.isis.applib.fixturescripts.FixtureScripts#runFixtureScript()
+msgid "Run Fixture Script"
+msgstr ""
+
+
+#: org.apache.isis.applib.fixturescripts.FixtureScript
+msgid "Script"
+msgstr ""
+
+
+#: domainapp.fixture.DomainAppFixturesService#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
+#: org.apache.isis.applib.fixturescripts.FixtureScripts#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
+msgid "Script-specific parameters (if any). The format depends on the script implementation (eg key=value, CSV, JSON, XML etc)"
+msgstr ""
+
+
+#: domainapp.dom.modules.simple.SimpleObjects#title()
+msgid "Simple Objects"
+msgstr "Objetos básicos"
+
+
+#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#switchToReadingTranslations()
+msgid "Switch To Reading Translations"
+msgstr ""
+
+
+#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#switchToWritingTranslations()
+msgid "Switch To Writing Translations"
+msgstr ""
+
+
+#: org.apache.isis.applib.fixturescripts.FixtureScript#type
+msgid "Type"
+msgstr ""
+
+
+#: domainapp.dom.modules.simple.SimpleObject#updateName()
+msgid "Update Name"
+msgstr "Nombre de la Actualización"
+
+
+
+
+
+
+##############################################################################
+# end of .pot file
+##############################################################################
+
http://git-wip-us.apache.org/repos/asf/isis/blob/ee64b291/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/translations-nl.po
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/translations-nl.po b/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/translations-nl.po
new file mode 100644
index 0000000..68c6776
--- /dev/null
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/translations-nl.po
@@ -0,0 +1,194 @@
+##############################################################################
+#
+# .pot file
+#
+# Translate this file to each required language and place in WEB-INF, eg:
+#
+# /WEB-INF/translations-en_US.po
+# /WEB-INF/translations-en.po
+# /WEB-INF/translations-fr_FR.po
+# /WEB-INF/translations-fr.po
+# /WEB-INF/translations.po
+#
+# If the app uses TranslatableString (eg for internationalized validation
+# messages), or if the app calls the TranslationService directly, then ensure
+# that all text to be translated has been captured by running a full
+# integration test suite that exercises all relevant behaviour
+#
+##############################################################################
+
+#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#downloadTranslations(java.lang.String)
+msgid ".pot file name"
+msgstr ""
+
+
+#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#resetTranslationCache()
+msgid "Clear translation cache"
+msgstr ""
+
+
+#: domainapp.dom.modules.simple.SimpleObjects#create()
+msgid "Create"
+msgstr "Creëren"
+
+
+#: org.apache.isis.applib.fixturescripts.FixtureScript#discoverable
+msgid "Discoverable"
+msgstr ""
+
+
+#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#downloadTranslations()
+msgid "Download Translations"
+msgstr ""
+
+
+#: domainapp.dom.modules.simple.SimpleObject#updateName()
+msgid "Exclamation mark is not allowed"
+msgstr ""
+
+
+#: domainapp.dom.modules.simple.SimpleObjects#findByName()
+msgid "Find By Name"
+msgstr "Zoek op Naam"
+
+
+#: org.apache.isis.applib.fixturescripts.FixtureResult#fixtureScriptClassName
+msgid "Fixture script"
+msgstr ""
+
+
+#: org.apache.isis.applib.fixturescripts.FixtureScript#friendlyName
+msgid "Friendly Name"
+msgstr ""
+
+
+#: domainapp.dom.app.homepage.HomePageService#homePage()
+msgid "Home Page"
+msgstr ""
+
+
+#: domainapp.dom.modules.simple.SimpleObjects#listAll()
+msgid "List All"
+msgstr "Lijst Alle"
+
+
+#: org.apache.isis.applib.fixturescripts.FixtureScript#localName
+msgid "Local Name"
+msgstr ""
+
+
+#: org.apache.isis.applib.fixturescripts.FixtureScript#lookup()
+#: org.apache.isis.applib.services.bookmark.BookmarkHolderActionContributions#lookup()
+msgid "Lookup"
+msgstr ""
+
+
+#: domainapp.dom.modules.simple.SimpleObject#name
+#: domainapp.dom.modules.simple.SimpleObjects#create(java.lang.String)
+#: domainapp.dom.modules.simple.SimpleObjects#findByName(java.lang.String)
+msgid "Name"
+msgstr "Naam"
+
+
+#: domainapp.dom.modules.simple.SimpleObject#updateName(java.lang.String)
+msgid "New name"
+msgstr "Nieuwe naam"
+
+
+#: org.apache.isis.applib.services.bookmark.BookmarkHolderAssociationContributions#object()
+msgid "Object"
+msgstr ""
+
+
+#: domainapp.dom.modules.simple.SimpleObject#title()
+msgid "Object: {name}"
+msgstr ""
+
+
+#: domainapp.dom.app.homepage.HomePageViewModel#objects
+msgid "Objects"
+msgstr ""
+
+
+#: domainapp.fixture.DomainAppFixturesService#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
+#: org.apache.isis.applib.fixturescripts.FixtureScripts#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
+msgid "Parameters"
+msgstr ""
+
+
+#: domainapp.fixture.DomainAppFixturesService
+#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu
+msgid "Prototyping"
+msgstr ""
+
+
+#: domainapp.fixture.DomainAppFixturesService#recreateObjectsAndReturnFirst()
+msgid "Recreate Objects And Return First"
+msgstr ""
+
+
+#: org.apache.isis.applib.fixturescripts.FixtureResult#object
+msgid "Result"
+msgstr ""
+
+
+#: org.apache.isis.applib.fixturescripts.FixtureResult#className
+msgid "Result class"
+msgstr ""
+
+
+#: org.apache.isis.applib.fixturescripts.FixtureResult#key
+msgid "Result key"
+msgstr ""
+
+
+#: domainapp.fixture.DomainAppFixturesService#runFixtureScript()
+#: org.apache.isis.applib.fixturescripts.FixtureScripts#runFixtureScript()
+msgid "Run Fixture Script"
+msgstr ""
+
+
+#: org.apache.isis.applib.fixturescripts.FixtureScript
+msgid "Script"
+msgstr ""
+
+
+#: domainapp.fixture.DomainAppFixturesService#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
+#: org.apache.isis.applib.fixturescripts.FixtureScripts#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
+msgid "Script-specific parameters (if any). The format depends on the script implementation (eg key=value, CSV, JSON, XML etc)"
+msgstr ""
+
+
+#: domainapp.dom.modules.simple.SimpleObjects#title()
+msgid "Simple Objects"
+msgstr "Eenvoudige Objecten"
+
+
+#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#switchToReadingTranslations()
+msgid "Switch To Reading Translations"
+msgstr ""
+
+
+#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#switchToWritingTranslations()
+msgid "Switch To Writing Translations"
+msgstr ""
+
+
+#: org.apache.isis.applib.fixturescripts.FixtureScript#type
+msgid "Type"
+msgstr ""
+
+
+#: domainapp.dom.modules.simple.SimpleObject#updateName()
+msgid "Update Name"
+msgstr "Updaten Naam"
+
+
+
+
+
+
+##############################################################################
+# end of .pot file
+##############################################################################
+
http://git-wip-us.apache.org/repos/asf/isis/blob/ee64b291/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/translations.po
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/translations.po b/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/translations.po
index bf9281a..181c68c 100644
--- a/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/translations.po
+++ b/example/archetype/simpleapp/src/main/resources/archetype-resources/webapp/src/main/webapp/WEB-INF/translations.po
@@ -10,6 +10,11 @@
# /WEB-INF/translations-fr.po
# /WEB-INF/translations.po
#
+# If the app uses TranslatableString (eg for internationalized validation
+# messages), or if the app calls the TranslationService directly, then ensure
+# that all text to be translated has been captured by running a full
+# integration test suite that exercises all relevant behaviour
+#
##############################################################################
#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#downloadTranslations(java.lang.String)
@@ -27,6 +32,11 @@ msgid "Create"
msgstr ""
+#: org.apache.isis.applib.fixturescripts.FixtureScript#discoverable
+msgid "Discoverable"
+msgstr ""
+
+
#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#downloadTranslations()
msgid "Download Translations"
msgstr ""
@@ -47,6 +57,11 @@ msgid "Fixture script"
msgstr ""
+#: org.apache.isis.applib.fixturescripts.FixtureScript#friendlyName
+msgid "Friendly Name"
+msgstr ""
+
+
#: domainapp.dom.app.homepage.HomePageService#homePage()
msgid "Home Page"
msgstr ""
@@ -57,13 +72,18 @@ msgid "List All"
msgstr ""
-#: domainapp.fixture.scenarios.RecreateSimpleObjects#lookup()
+#: org.apache.isis.applib.fixturescripts.FixtureScript#localName
+msgid "Local Name"
+msgstr ""
+
+
#: org.apache.isis.applib.fixturescripts.FixtureScript#lookup()
#: org.apache.isis.applib.services.bookmark.BookmarkHolderActionContributions#lookup()
msgid "Lookup"
msgstr ""
+#: domainapp.dom.modules.simple.SimpleObject#name
#: domainapp.dom.modules.simple.SimpleObjects#create(java.lang.String)
#: domainapp.dom.modules.simple.SimpleObjects#findByName(java.lang.String)
msgid "Name"
@@ -85,6 +105,11 @@ msgid "Object: {name}"
msgstr ""
+#: domainapp.dom.app.homepage.HomePageViewModel#objects
+msgid "Objects"
+msgstr ""
+
+
#: domainapp.fixture.DomainAppFixturesService#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
#: org.apache.isis.applib.fixturescripts.FixtureScripts#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
msgid "Parameters"
@@ -123,7 +148,6 @@ msgid "Run Fixture Script"
msgstr ""
-#: domainapp.fixture.scenarios.RecreateSimpleObjects
#: org.apache.isis.applib.fixturescripts.FixtureScript
msgid "Script"
msgstr ""
@@ -135,17 +159,32 @@ msgid "Script-specific parameters (if any). The format depends on the script im
msgstr ""
-#: domainapp.dom.modules.simple.SimpleObject#updateName()
-msgid "Update Name"
+#: domainapp.dom.modules.simple.SimpleObjects#title()
+msgid "Simple Objects"
+msgstr ""
+
+
+#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#switchToReadingTranslations()
+msgid "Switch To Reading Translations"
+msgstr ""
+
+
+#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#switchToWritingTranslations()
+msgid "Switch To Writing Translations"
msgstr ""
-#: domainapp.fixture.scenarios.RecreateSimpleObjects#withDiscoverability()
-#: org.apache.isis.applib.fixturescripts.FixtureScript#withDiscoverability()
-msgid "With Discoverability"
+#: org.apache.isis.applib.fixturescripts.FixtureScript#type
+msgid "Type"
msgstr ""
+#: domainapp.dom.modules.simple.SimpleObject#updateName()
+msgid "Update Name"
+msgstr ""
+
+
+
http://git-wip-us.apache.org/repos/asf/isis/blob/ee64b291/example/archetype/simpleapp/src/test/resources/projects/basic/archetype.properties
----------------------------------------------------------------------
diff --git a/example/archetype/simpleapp/src/test/resources/projects/basic/archetype.properties b/example/archetype/simpleapp/src/test/resources/projects/basic/archetype.properties
index 78c7aae..345f323 100644
--- a/example/archetype/simpleapp/src/test/resources/projects/basic/archetype.properties
+++ b/example/archetype/simpleapp/src/test/resources/projects/basic/archetype.properties
@@ -1,4 +1,4 @@
-#Thu Mar 12 12:32:07 GMT 2015
+#Sat Mar 21 11:05:38 GMT 2015
package=it.pkg
version=0.1-SNAPSHOT
groupId=archetype.it
[2/3] isis git commit: ISIS-1104: change to PoReader so that does not
log WARN if there are no translations for specified locale.
Posted by da...@apache.org.
ISIS-1104: change to PoReader so that does not log WARN if there are no translations for specified locale.
in addition:
- don't contribute actions or associations to value types such as java.lang.String (were appearing in translations)
- marked certain methods of FixtureScript and TranslatableString as @Programmatic so that they don't turn up in translations
- updated translations.po for simpleapp
- partial translations for ES, NL for simpleapp
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/c3ed13d2
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/c3ed13d2
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/c3ed13d2
Branch: refs/heads/master
Commit: c3ed13d2bbf68f305f84f1b227a7865a0e6aa881
Parents: 67ce86b
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Sat Mar 21 11:05:12 2015 +0000
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Sat Mar 21 11:05:12 2015 +0000
----------------------------------------------------------------------
.../applib/fixturescripts/FixtureScript.java | 5 +-
.../services/i18n/TranslatableString.java | 2 +
.../specimpl/ObjectSpecificationAbstract.java | 2 +-
.../core/runtime/services/i18n/po/PoReader.java | 42 ++++++++--
.../services/TranslationsResolverWicket.java | 2 +-
.../dom/modules/simple/SimpleObjects.java | 7 ++
.../modules/simple/SimpleObjectsIntegTest.java | 44 +++++++++--
.../src/main/webapp/WEB-INF/translations-en.po | 82 ++++++++++----------
.../src/main/webapp/WEB-INF/translations-es.po | 20 ++---
.../src/main/webapp/WEB-INF/translations-nl.po | 20 ++---
.../src/main/webapp/WEB-INF/translations.po | 20 ++---
11 files changed, 157 insertions(+), 89 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/c3ed13d2/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScript.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScript.java b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScript.java
index 99a3d1b..35a5661 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScript.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/fixturescripts/FixtureScript.java
@@ -188,10 +188,11 @@ public abstract class FixtureScript
/**
* Path of the parent of this script (if any), with trailing {@value #PATH_SEPARATOR}.
*/
- @PropertyLayout(hidden = Where.EVERYWHERE)
+ @Programmatic
public String getParentPath() {
return parentPath;
}
+ @Programmatic
public void setParentPath(final String parentPath) {
this.parentPath = parentPath;
}
@@ -233,6 +234,8 @@ public abstract class FixtureScript
public boolean isDiscoverable() {
return discoverability == Discoverability.DISCOVERABLE;
}
+
+ @Programmatic
public FixtureScript withDiscoverability(final Discoverability discoverability) {
this.discoverability = discoverability;
return this;
http://git-wip-us.apache.org/repos/asf/isis/blob/c3ed13d2/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 ec328dd..2d473c6 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
@@ -24,6 +24,7 @@ import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import com.google.common.collect.Lists;
+import org.apache.isis.applib.annotation.Programmatic;
public final class TranslatableString {
@@ -177,6 +178,7 @@ public final class TranslatableString {
* @param context
* @return
*/
+ @Programmatic
public String translate(final TranslationService translationService, final String context) {
final String translatedText =
!isPluralForm()
http://git-wip-us.apache.org/repos/asf/isis/blob/c3ed13d2/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
index 7de5520..040de6b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
@@ -926,7 +926,7 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
// //////////////////////////////////////////////////////////////////////
private List<ObjectAssociation> createContributeeAssociations() {
- if (isService()) {
+ if (isService() || isValue()) {
return Collections.emptyList();
}
http://git-wip-us.apache.org/repos/asf/isis/blob/c3ed13d2/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoReader.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoReader.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoReader.java
index 3054965..cc91ac4 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoReader.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoReader.java
@@ -27,17 +27,18 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.apache.isis.applib.services.i18n.LocaleProvider;
import org.apache.isis.applib.services.i18n.TranslationService;
import org.apache.isis.applib.services.i18n.TranslationsResolver;
class PoReader extends PoAbstract {
- public static final String LOCATION_BASE_URL = "isis.services.translation.po.locationBaseUrl";
public static final String DASH = "-";
public static final String UNDERSCORE = "_";
public static Logger LOG = LoggerFactory.getLogger(PoReader.class);
private final Map<Locale, Map<ContextAndMsgId, String>> translationByKeyByLocale = Maps.newHashMap();
+ private final Map<Locale, Boolean> usesFallbackByLocale = Maps.newHashMap();
/**
* The basename of the translations file, hard-coded to <tt>translations</tt>.
@@ -54,11 +55,18 @@ class PoReader extends PoAbstract {
* </p>
*/
private final String basename = "translations";
+ private final TranslationsResolver translationsResolver;
+ private final LocaleProvider localeProvider;
private List<String> fallback;
public PoReader(final TranslationServicePo translationServicePo) {
super(translationServicePo, TranslationService.Mode.READ);
+ translationsResolver = translationServicePo.getTranslationsResolver();
+ if(translationsResolver == null) {
+ LOG.warn("No translationsResolver available");
+ }
+ localeProvider = translationServicePo.getLocaleProvider();
}
//region > init, shutdown
@@ -69,7 +77,7 @@ class PoReader extends PoAbstract {
void init() {
fallback = readUrl(basename + ".po");
if(fallback == null) {
- LOG.warn("No fallback translations found");
+ LOG.info("No fallback translations found; i18n is in effect disabled for this application");
fallback = Collections.emptyList();
}
}
@@ -80,6 +88,10 @@ class PoReader extends PoAbstract {
//endregion
public String translate(final String context, final String msgId) {
+ if(translationsResolver == null) {
+ // already logged as WARN (in constructor) if null.
+ return msgId;
+ }
return translate(context, msgId, ContextAndMsgId.Type.REGULAR);
}
@@ -101,6 +113,7 @@ class PoReader extends PoAbstract {
void clearCache() {
translationByKeyByLocale.clear();
+ usesFallbackByLocale.clear();
init();
}
@@ -109,7 +122,7 @@ class PoReader extends PoAbstract {
final Locale targetLocale;
try {
- targetLocale = translationServicePo.getLocaleProvider().getLocale();
+ targetLocale = localeProvider.getLocale();
if(targetLocale == null) {
// eg if request from RO viewer and the (default) LocaleProviderWicket is being used.
return msgId;
@@ -119,23 +132,34 @@ class PoReader extends PoAbstract {
return msgId;
}
+
final Map<ContextAndMsgId, String> translationsByKey = readAndCacheTranslationsIfRequired(targetLocale);
+ // search for translation with a context
final ContextAndMsgId key = new ContextAndMsgId(context, msgId, type);
final String translation = lookupTranslation(translationsByKey, key);
if (!Strings.isNullOrEmpty(translation)) {
return translation;
}
+ // else search for translation without a context
final ContextAndMsgId keyNoContext = new ContextAndMsgId("", msgId, type);
final String translationNoContext = lookupTranslation(translationsByKey, keyNoContext);
if (!Strings.isNullOrEmpty(translationNoContext)) {
return translationNoContext;
}
- if(translation == null && translationNoContext == null) {
+ // to avoid chattiness in the log, we only log if there are ANY translations at all for the target locale.
+ // the algorithm for searching for translations looks for:
+ // 1. language_country
+ // 2. language
+ // 3. fallback
+ // so this message is only ever displayed if the locale isn't using fallback (ie a translation is genuinely missing)
+ final Boolean usesFallback = usesFallbackByLocale.get(targetLocale);
+ if(!usesFallback) {
LOG.warn("No translation found for: " + key);
}
+
return msgId;
}
@@ -174,12 +198,18 @@ class PoReader extends PoAbstract {
protected List<String> readPo(final Locale locale) {
final List<String> lines = readPoElseNull(locale);
if(lines != null) {
+ usesFallbackByLocale.put(locale, false);
return lines;
}
+
+ // this is only ever logged the first time that a user using this particular locale is encountered
LOG.warn("Could not locate translations for locale: " + locale + ", using fallback");
+
+ usesFallbackByLocale.put(locale, true);
return fallback;
}
+
private List<String> readPoElseNull(final Locale locale) {
final String country = locale.getCountry().toUpperCase(Locale.ROOT);
final String language = locale.getLanguage().toLowerCase(Locale.ROOT);
@@ -206,10 +236,6 @@ class PoReader extends PoAbstract {
}
private List<String> readUrl(final String candidate) {
- final TranslationsResolver translationsResolver = translationServicePo.getTranslationsResolver();
- if(translationsResolver == null) {
- return null;
- }
return translationsResolver.readLines(candidate);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/c3ed13d2/core/viewer-wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java b/core/viewer-wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java
index e6045a3..0cf5e5a 100644
--- a/core/viewer-wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java
+++ b/core/viewer-wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java
@@ -84,7 +84,7 @@ public class TranslationsResolverWicket implements TranslationsResolver {
return getIsisWicketApplication().getServletContext();
}
- private static Pattern nonEmpty = Pattern.compile("^(#:|msgid|msgstr).+$");
+ private static final Pattern nonEmpty = Pattern.compile("^(#:|msgid|msgstr).+$");
private static List<String> readLines(final URL url) throws IOException {
if(url == null) {
return null;
http://git-wip-us.apache.org/repos/asf/isis/blob/c3ed13d2/example/application/simpleapp/dom/src/main/java/domainapp/dom/modules/simple/SimpleObjects.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/dom/src/main/java/domainapp/dom/modules/simple/SimpleObjects.java b/example/application/simpleapp/dom/src/main/java/domainapp/dom/modules/simple/SimpleObjects.java
index 7674717..d0841ae 100644
--- a/example/application/simpleapp/dom/src/main/java/domainapp/dom/modules/simple/SimpleObjects.java
+++ b/example/application/simpleapp/dom/src/main/java/domainapp/dom/modules/simple/SimpleObjects.java
@@ -31,11 +31,18 @@ import org.apache.isis.applib.annotation.ParameterLayout;
import org.apache.isis.applib.annotation.SemanticsOf;
import org.apache.isis.applib.query.QueryDefault;
import org.apache.isis.applib.services.eventbus.ActionDomainEvent;
+import org.apache.isis.applib.services.i18n.TranslatableString;
@DomainService(repositoryFor = SimpleObject.class)
@DomainServiceLayout(menuOrder = "10")
public class SimpleObjects {
+ //region > title
+ public TranslatableString title() {
+ return TranslatableString.tr("Simple Objects");
+ }
+ //endregion
+
//region > listAll (action)
@Action(
semantics = SemanticsOf.SAFE
http://git-wip-us.apache.org/repos/asf/isis/blob/c3ed13d2/example/application/simpleapp/integtests/src/test/java/domainapp/integtests/tests/modules/simple/SimpleObjectsIntegTest.java
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/integtests/src/test/java/domainapp/integtests/tests/modules/simple/SimpleObjectsIntegTest.java b/example/application/simpleapp/integtests/src/test/java/domainapp/integtests/tests/modules/simple/SimpleObjectsIntegTest.java
index 4a6e71d..04bbbd7 100644
--- a/example/application/simpleapp/integtests/src/test/java/domainapp/integtests/tests/modules/simple/SimpleObjectsIntegTest.java
+++ b/example/application/simpleapp/integtests/src/test/java/domainapp/integtests/tests/modules/simple/SimpleObjectsIntegTest.java
@@ -18,12 +18,6 @@
*/
package domainapp.integtests.tests.modules.simple;
-import domainapp.dom.modules.simple.SimpleObject;
-import domainapp.dom.modules.simple.SimpleObjects;
-import domainapp.fixture.modules.simple.SimpleObjectsTearDown;
-import domainapp.fixture.scenarios.RecreateSimpleObjects;
-import domainapp.integtests.tests.SimpleAppIntegTest;
-
import java.sql.SQLIntegrityConstraintViolationException;
import java.util.List;
import javax.inject.Inject;
@@ -34,9 +28,15 @@ import org.hamcrest.TypeSafeMatcher;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
+import org.apache.isis.applib.DomainObjectContainer;
import org.apache.isis.applib.fixturescripts.FixtureScript;
import org.apache.isis.applib.fixturescripts.FixtureScripts;
-
+import domainapp.dom.modules.simple.SimpleObject;
+import domainapp.dom.modules.simple.SimpleObjects;
+import domainapp.fixture.modules.simple.SimpleObjectsTearDown;
+import domainapp.fixture.scenarios.RecreateSimpleObjects;
+import domainapp.integtests.tests.SimpleAppIntegTest;
+import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
@@ -49,6 +49,36 @@ public class SimpleObjectsIntegTest extends SimpleAppIntegTest {
FixtureScripts fixtureScripts;
@Inject
SimpleObjects simpleObjects;
+ @Inject
+ DomainObjectContainer container;
+
+ public static class Title extends SimpleObjectsIntegTest {
+
+ @Test
+ public void happyCase() throws Exception {
+
+ // when
+ final String title = container.titleOf(wrap(simpleObjects));
+
+ // then
+ assertThat(title, equalTo("Simple Objects"));
+ }
+
+ @Test
+ public void whenNone() throws Exception {
+
+ // given
+ FixtureScript fs = new SimpleObjectsTearDown();
+ fixtureScripts.runFixtureScript(fs, null);
+ nextTransaction();
+
+ // when
+ final List<SimpleObject> all = wrap(simpleObjects).listAll();
+
+ // then
+ assertThat(all.size(), is(0));
+ }
+ }
public static class ListAll extends SimpleObjectsIntegTest {
http://git-wip-us.apache.org/repos/asf/isis/blob/c3ed13d2/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations-en.po
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations-en.po b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations-en.po
index b6aa415..6f5a4a4 100644
--- a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations-en.po
+++ b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations-en.po
@@ -10,179 +10,179 @@
# /WEB-INF/translations-fr.po
# /WEB-INF/translations.po
#
+# If the app uses TranslatableString (eg for internationalized validation
+# messages), or if the app calls the TranslationService directly, then ensure
+# that all text to be translated has been captured by running a full
+# integration test suite that exercises all relevant behaviour
+#
##############################################################################
#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#downloadTranslations(java.lang.String)
msgid ".pot file name"
-msgstr ""
+msgstr ".pot file name"
#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#resetTranslationCache()
msgid "Clear translation cache"
-msgstr ""
+msgstr "Clear translation cache"
#: domainapp.dom.modules.simple.SimpleObjects#create()
msgid "Create"
-msgstr ""
+msgstr "Create"
#: org.apache.isis.applib.fixturescripts.FixtureScript#discoverable
msgid "Discoverable"
-msgstr ""
+msgstr "Discoverable"
#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#downloadTranslations()
msgid "Download Translations"
-msgstr ""
+msgstr "Download Translations"
#: domainapp.dom.modules.simple.SimpleObject#updateName()
msgid "Exclamation mark is not allowed"
-msgstr ""
+msgstr "Exclamation mark is not allowed"
#: domainapp.dom.modules.simple.SimpleObjects#findByName()
-#: java.lang.String#findByName()
msgid "Find By Name"
-msgstr ""
+msgstr "Find By Name"
#: org.apache.isis.applib.fixturescripts.FixtureResult#fixtureScriptClassName
msgid "Fixture script"
-msgstr ""
+msgstr "Fixture script"
#: org.apache.isis.applib.fixturescripts.FixtureScript#friendlyName
msgid "Friendly Name"
-msgstr ""
+msgstr "Friendly Name"
#: domainapp.dom.app.homepage.HomePageService#homePage()
msgid "Home Page"
-msgstr ""
+msgstr "Home Page"
#: domainapp.dom.modules.simple.SimpleObjects#listAll()
msgid "List All"
-msgstr ""
+msgstr "List All"
#: org.apache.isis.applib.fixturescripts.FixtureScript#localName
msgid "Local Name"
-msgstr ""
+msgstr "Local Name"
#: org.apache.isis.applib.fixturescripts.FixtureScript#lookup()
#: org.apache.isis.applib.services.bookmark.BookmarkHolderActionContributions#lookup()
msgid "Lookup"
-msgstr ""
+msgstr "Lookup"
#: domainapp.dom.modules.simple.SimpleObject#name
#: domainapp.dom.modules.simple.SimpleObjects#create(java.lang.String)
#: domainapp.dom.modules.simple.SimpleObjects#findByName(java.lang.String)
msgid "Name"
-msgstr ""
+msgstr "Name"
#: domainapp.dom.modules.simple.SimpleObject#updateName(java.lang.String)
msgid "New name"
-msgstr ""
+msgstr "New name"
#: org.apache.isis.applib.services.bookmark.BookmarkHolderAssociationContributions#object()
msgid "Object"
-msgstr ""
+msgstr "Object"
#: domainapp.dom.modules.simple.SimpleObject#title()
msgid "Object: {name}"
-msgstr ""
+msgstr "Object: {name}"
#: domainapp.dom.app.homepage.HomePageViewModel#objects
msgid "Objects"
-msgstr ""
+msgstr "Objects"
#: domainapp.fixture.DomainAppFixturesService#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
#: org.apache.isis.applib.fixturescripts.FixtureScripts#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
msgid "Parameters"
-msgstr ""
-
-
-#: org.apache.isis.applib.fixturescripts.FixtureScript#parentPath
-msgid "Parent Path"
-msgstr ""
+msgstr "Parameters"
#: domainapp.fixture.DomainAppFixturesService
#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu
msgid "Prototyping"
-msgstr ""
+msgstr "Prototyping"
#: domainapp.fixture.DomainAppFixturesService#recreateObjectsAndReturnFirst()
msgid "Recreate Objects And Return First"
-msgstr ""
+msgstr "Recreate Objects And Return First"
#: org.apache.isis.applib.fixturescripts.FixtureResult#object
msgid "Result"
-msgstr ""
+msgstr "Result"
#: org.apache.isis.applib.fixturescripts.FixtureResult#className
msgid "Result class"
-msgstr ""
+msgstr "Result class"
#: org.apache.isis.applib.fixturescripts.FixtureResult#key
msgid "Result key"
-msgstr ""
+msgstr "Result key"
#: domainapp.fixture.DomainAppFixturesService#runFixtureScript()
#: org.apache.isis.applib.fixturescripts.FixtureScripts#runFixtureScript()
msgid "Run Fixture Script"
-msgstr ""
+msgstr "Run Fixture Script"
#: org.apache.isis.applib.fixturescripts.FixtureScript
msgid "Script"
-msgstr ""
+msgstr "Script"
#: domainapp.fixture.DomainAppFixturesService#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
#: org.apache.isis.applib.fixturescripts.FixtureScripts#runFixtureScript(org.apache.isis.applib.fixturescripts.FixtureScript,java.lang.String)
msgid "Script-specific parameters (if any). The format depends on the script implementation (eg key=value, CSV, JSON, XML etc)"
-msgstr ""
+msgstr "Script-specific parameters (if any). The format depends on the script implementation (eg key=value, CSV, JSON, XML etc)"
+
+
+#: domainapp.dom.modules.simple.SimpleObjects#title()
+msgid "Simple Objects"
+msgstr "Simple Objects"
#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#switchToReadingTranslations()
msgid "Switch To Reading Translations"
-msgstr ""
+msgstr "Switch To Reading Translations"
#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#switchToWritingTranslations()
msgid "Switch To Writing Translations"
-msgstr ""
+msgstr "Switch To Writing Translations"
#: org.apache.isis.applib.fixturescripts.FixtureScript#type
msgid "Type"
-msgstr ""
+msgstr "Type"
#: domainapp.dom.modules.simple.SimpleObject#updateName()
msgid "Update Name"
-msgstr ""
-
+msgstr "Update Name"
-#: org.apache.isis.applib.fixturescripts.FixtureScript#withDiscoverability()
-msgid "With Discoverability"
-msgstr ""
http://git-wip-us.apache.org/repos/asf/isis/blob/c3ed13d2/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations-es.po
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations-es.po b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations-es.po
index 40c24f0..92b8bdb 100644
--- a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations-es.po
+++ b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations-es.po
@@ -10,6 +10,11 @@
# /WEB-INF/translations-fr.po
# /WEB-INF/translations.po
#
+# If the app uses TranslatableString (eg for internationalized validation
+# messages), or if the app calls the TranslationService directly, then ensure
+# that all text to be translated has been captured by running a full
+# integration test suite that exercises all relevant behaviour
+#
##############################################################################
#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#downloadTranslations(java.lang.String)
@@ -43,7 +48,6 @@ msgstr ""
#: domainapp.dom.modules.simple.SimpleObjects#findByName()
-#: java.lang.String#findByName()
msgid "Find By Name"
msgstr "Buscar por Nombre"
@@ -112,11 +116,6 @@ msgid "Parameters"
msgstr ""
-#: org.apache.isis.applib.fixturescripts.FixtureScript#parentPath
-msgid "Parent Path"
-msgstr ""
-
-
#: domainapp.fixture.DomainAppFixturesService
#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu
msgid "Prototyping"
@@ -160,6 +159,11 @@ msgid "Script-specific parameters (if any). The format depends on the script im
msgstr ""
+#: domainapp.dom.modules.simple.SimpleObjects#title()
+msgid "Simple Objects"
+msgstr "Objetos básicos"
+
+
#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#switchToReadingTranslations()
msgid "Switch To Reading Translations"
msgstr ""
@@ -180,10 +184,6 @@ msgid "Update Name"
msgstr "Nombre de la Actualización"
-#: org.apache.isis.applib.fixturescripts.FixtureScript#withDiscoverability()
-msgid "With Discoverability"
-msgstr ""
-
http://git-wip-us.apache.org/repos/asf/isis/blob/c3ed13d2/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations-nl.po
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations-nl.po b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations-nl.po
index db50ca5..68c6776 100644
--- a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations-nl.po
+++ b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations-nl.po
@@ -10,6 +10,11 @@
# /WEB-INF/translations-fr.po
# /WEB-INF/translations.po
#
+# If the app uses TranslatableString (eg for internationalized validation
+# messages), or if the app calls the TranslationService directly, then ensure
+# that all text to be translated has been captured by running a full
+# integration test suite that exercises all relevant behaviour
+#
##############################################################################
#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#downloadTranslations(java.lang.String)
@@ -43,7 +48,6 @@ msgstr ""
#: domainapp.dom.modules.simple.SimpleObjects#findByName()
-#: java.lang.String#findByName()
msgid "Find By Name"
msgstr "Zoek op Naam"
@@ -112,11 +116,6 @@ msgid "Parameters"
msgstr ""
-#: org.apache.isis.applib.fixturescripts.FixtureScript#parentPath
-msgid "Parent Path"
-msgstr ""
-
-
#: domainapp.fixture.DomainAppFixturesService
#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu
msgid "Prototyping"
@@ -160,6 +159,11 @@ msgid "Script-specific parameters (if any). The format depends on the script im
msgstr ""
+#: domainapp.dom.modules.simple.SimpleObjects#title()
+msgid "Simple Objects"
+msgstr "Eenvoudige Objecten"
+
+
#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#switchToReadingTranslations()
msgid "Switch To Reading Translations"
msgstr ""
@@ -180,10 +184,6 @@ msgid "Update Name"
msgstr "Updaten Naam"
-#: org.apache.isis.applib.fixturescripts.FixtureScript#withDiscoverability()
-msgid "With Discoverability"
-msgstr ""
-
http://git-wip-us.apache.org/repos/asf/isis/blob/c3ed13d2/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations.po
----------------------------------------------------------------------
diff --git a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations.po b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations.po
index b6aa415..181c68c 100644
--- a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations.po
+++ b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations.po
@@ -10,6 +10,11 @@
# /WEB-INF/translations-fr.po
# /WEB-INF/translations.po
#
+# If the app uses TranslatableString (eg for internationalized validation
+# messages), or if the app calls the TranslationService directly, then ensure
+# that all text to be translated has been captured by running a full
+# integration test suite that exercises all relevant behaviour
+#
##############################################################################
#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#downloadTranslations(java.lang.String)
@@ -43,7 +48,6 @@ msgstr ""
#: domainapp.dom.modules.simple.SimpleObjects#findByName()
-#: java.lang.String#findByName()
msgid "Find By Name"
msgstr ""
@@ -112,11 +116,6 @@ msgid "Parameters"
msgstr ""
-#: org.apache.isis.applib.fixturescripts.FixtureScript#parentPath
-msgid "Parent Path"
-msgstr ""
-
-
#: domainapp.fixture.DomainAppFixturesService
#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu
msgid "Prototyping"
@@ -160,6 +159,11 @@ msgid "Script-specific parameters (if any). The format depends on the script im
msgstr ""
+#: domainapp.dom.modules.simple.SimpleObjects#title()
+msgid "Simple Objects"
+msgstr ""
+
+
#: org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu#switchToReadingTranslations()
msgid "Switch To Reading Translations"
msgstr ""
@@ -180,10 +184,6 @@ msgid "Update Name"
msgstr ""
-#: org.apache.isis.applib.fixturescripts.FixtureScript#withDiscoverability()
-msgid "With Discoverability"
-msgstr ""
-