ISIS-903: integ tests passing again; exposing the mode of the TranslationService so that can ensure that the translations are eagerly requested in prototype/test mode (and while the metamodel is being built), but lazily otherwise.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/ac66f1e9 Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/ac66f1e9 Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/ac66f1e9 Branch: refs/heads/master Commit: ac66f1e9590750f2b795887cfbe62cc949936565 Parents: 6ab0959 Author: Dan Haywood <[email protected]> Authored: Tue Feb 17 16:28:54 2015 +0000 Committer: Dan Haywood <[email protected]> Committed: Wed Feb 18 14:07:45 2015 +0000 ---------------------------------------------------------------------- .../actinvoc/ActionInvocationContext.java | 4 +- .../services/i18n/TranslationService.java | 33 +++++ .../all/i18n/DescribedAsFacetTranslated.java | 15 ++- .../facets/all/i18n/NamedFacetTranslated.java | 12 +- .../metamodel/services/i18n/po/PoAbstract.java | 11 +- .../metamodel/services/i18n/po/PoReader.java | 17 ++- .../metamodel/services/i18n/po/PoWriter.java | 33 ++--- .../services/i18n/po/TranslationServicePo.java | 32 +++-- .../simple/SimpleObjectsFixturesService.java | 12 +- .../src/main/webapp/WEB-INF/isis.properties | 15 +++ .../src/main/webapp/WEB-INF/translations.po | 135 +++++++++++++++++++ 11 files changed, 274 insertions(+), 45 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/isis/blob/ac66f1e9/core/applib/src/main/java/org/apache/isis/applib/services/actinvoc/ActionInvocationContext.java ---------------------------------------------------------------------- diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/actinvoc/ActionInvocationContext.java b/core/applib/src/main/java/org/apache/isis/applib/services/actinvoc/ActionInvocationContext.java index 1dbed9a..4c6b7ee 100644 --- a/core/applib/src/main/java/org/apache/isis/applib/services/actinvoc/ActionInvocationContext.java +++ b/core/applib/src/main/java/org/apache/isis/applib/services/actinvoc/ActionInvocationContext.java @@ -44,7 +44,7 @@ public class ActionInvocationContext { * Intended only to support unit testing. */ public static ActionInvocationContext onObject(final Object domainObject) { - return new ActionInvocationContext(InvokedOn.OBJECT, Collections.singletonList(domainObject)){}; + return new ActionInvocationContext(InvokedOn.OBJECT, Collections.singletonList(domainObject)); } /** @@ -58,7 +58,7 @@ public class ActionInvocationContext { * Intended only to support unit testing. */ public static ActionInvocationContext onCollection(final List<Object> domainObjects) { - return new ActionInvocationContext(InvokedOn.COLLECTION, domainObjects){}; + return new ActionInvocationContext(InvokedOn.COLLECTION, domainObjects); } // ////////////////////////////////////// http://git-wip-us.apache.org/repos/asf/isis/blob/ac66f1e9/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 ca20004..e143ef0 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 @@ -47,4 +47,37 @@ public interface TranslationService { @Programmatic public String translate(final String context, final String singularText, final String pluralText, int num, final Locale targetLocale); + + public enum Mode { + READ, + WRITE; + + public boolean isRead() { + return this == READ; + } + public boolean isWrite() { + return this == WRITE; + } + } + + /** + * Whether this implementation is operating in read or in write mode. + * + * <p> + * If in read mode, then the translations are expected to be present. In such cases, the + * {@link #translate(String, String, java.util.Locale) translate} + * {@link #translate(String, String, String, int, java.util.Locale) method}s should be <i>lazily</i> called, + * if only because there will (most likely) need to be a session in progress (such that the locale of the + * current user can be determined). + * </p> + * + * <p> + * If in write mode, then the implementation is saving translation keys, and will + * always return the untranslated translation. In such cases, the {@link #translate(String, String, java.util.Locale) translate} + * {@link #translate(String, String, String, int, java.util.Locale) method}s should be <i>eagerly</i> called + * such that all pathways are exercised.. + * </p> + */ + @Programmatic + Mode getMode(); } http://git-wip-us.apache.org/repos/asf/isis/blob/ac66f1e9/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/DescribedAsFacetTranslated.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/DescribedAsFacetTranslated.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/DescribedAsFacetTranslated.java index 4e67f26..9dbc5cc 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/DescribedAsFacetTranslated.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/DescribedAsFacetTranslated.java @@ -19,7 +19,6 @@ package org.apache.isis.core.metamodel.facets.all.i18n; -import java.util.Locale; import org.apache.isis.applib.services.i18n.LocaleProvider; import org.apache.isis.applib.services.i18n.TranslationService; import org.apache.isis.core.metamodel.facetapi.FacetAbstract; @@ -33,6 +32,8 @@ public class DescribedAsFacetTranslated extends FacetAbstract implements Describ private final TranslationService translationService; private final LocaleProvider localeProvider; + private String value; + public DescribedAsFacetTranslated( final String context, final String originalText, final TranslationService translationService, final LocaleProvider localeProvider, @@ -42,11 +43,19 @@ public class DescribedAsFacetTranslated extends FacetAbstract implements Describ this.originalText = originalText; this.translationService = translationService; this.localeProvider = localeProvider; + + + if(translationService.getMode().isWrite()) { + // force evaluation + value(); + } } @Override public String value() { - final Locale locale = localeProvider.getLocale(); - return translationService.translate(context, originalText, locale); + if (value == null) { + value = translationService.translate(context, originalText, localeProvider.getLocale()); + } + return value; } } http://git-wip-us.apache.org/repos/asf/isis/blob/ac66f1e9/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/NamedFacetTranslated.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/NamedFacetTranslated.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/NamedFacetTranslated.java index 6e7fb31..03caada 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/NamedFacetTranslated.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/all/i18n/NamedFacetTranslated.java @@ -32,6 +32,8 @@ public class NamedFacetTranslated extends FacetAbstract implements NamedFacet { String context; String originalText; + private String value; + public NamedFacetTranslated( final String context, final String originalText, final TranslationService translationService, final LocaleProvider localeProvider, @@ -41,11 +43,19 @@ public class NamedFacetTranslated extends FacetAbstract implements NamedFacet { this.originalText = originalText; this.translationService = translationService; this.localeProvider = localeProvider; + + if(translationService.getMode().isWrite()) { + // force evaluation + value(); + } } @Override public String value() { - return translationService.translate(context, originalText, localeProvider.getLocale()); + if (value == null) { + value = translationService.translate(context, originalText, localeProvider.getLocale()); + } + return value; } @Override http://git-wip-us.apache.org/repos/asf/isis/blob/ac66f1e9/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 e3ddba9..cfe3cd3 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 @@ -19,23 +19,26 @@ package org.apache.isis.core.metamodel.services.i18n.po; import java.util.Locale; -import java.util.Map; +import org.apache.isis.applib.services.i18n.TranslationService; abstract class PoAbstract { protected final TranslationServicePo translationServicePo; + private final TranslationService.Mode mode; - PoAbstract(final TranslationServicePo translationServicePo) { + PoAbstract(final TranslationServicePo translationServicePo, final TranslationService.Mode mode) { this.translationServicePo = translationServicePo; + this.mode = mode; } - abstract void init(final Map<String,String> config); - abstract void shutdown(); 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); + public TranslationService.Mode getMode() { + return mode; + } } http://git-wip-us.apache.org/repos/asf/isis/blob/ac66f1e9/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 237ae4c..ade935a 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 @@ -27,6 +27,7 @@ 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.TranslationService; import org.apache.isis.applib.services.i18n.UrlResolver; class PoReader extends PoAbstract { @@ -50,7 +51,7 @@ class PoReader extends PoAbstract { private List<String> fallback; public PoReader(final TranslationServicePo translationServicePo) { - super(translationServicePo); + super(translationServicePo, TranslationService.Mode.READ); } //region > init, shutdown @@ -62,6 +63,7 @@ class PoReader extends PoAbstract { } } + @Override void shutdown() { } //endregion @@ -93,14 +95,14 @@ class PoReader extends PoAbstract { final Map<ContextAndMsgId, String> translationsByKey = readAndCacheTranslationsIfRequired(targetLocale); final ContextAndMsgId key = new ContextAndMsgId(context, msgId, type); - final String translation = translationsByKey.get(key); - if (translation != null) { + final String translation = lookupTranslation(translationsByKey, key); + if (!Strings.isNullOrEmpty(translation)) { return translation; } final ContextAndMsgId keyNoContext = new ContextAndMsgId("", msgId, type); - final String translationNoContext = translationsByKey.get(keyNoContext); - if (translationNoContext != null) { + final String translationNoContext = lookupTranslation(translationsByKey, keyNoContext); + if (!Strings.isNullOrEmpty(translationNoContext)) { return translationNoContext; } @@ -108,6 +110,11 @@ class PoReader extends PoAbstract { return msgId; } + private String lookupTranslation(final Map<ContextAndMsgId, String> translationsByKey, final ContextAndMsgId key) { + final String s = translationsByKey.get(key); + return s != null? s.trim(): null; + } + private Map<ContextAndMsgId, String> readAndCacheTranslationsIfRequired(final Locale locale) { Map<ContextAndMsgId, String> translationsByKey = translationByKeyByLocale.get(locale); if(translationsByKey != null) { http://git-wip-us.apache.org/repos/asf/isis/blob/ac66f1e9/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 6c023cf..86574bf 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 @@ -19,7 +19,6 @@ package org.apache.isis.core.metamodel.services.i18n.po; import java.util.Locale; -import java.util.Map; import java.util.SortedMap; import java.util.SortedSet; import com.google.common.collect.Maps; @@ -27,6 +26,7 @@ import com.google.common.collect.Sets; import org.joda.time.LocalDateTime; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.apache.isis.applib.services.i18n.TranslationService; class PoWriter extends PoAbstract { @@ -45,13 +45,12 @@ class PoWriter extends PoAbstract { private final SortedMap<String, Block> blocksByMsgId = Maps.newTreeMap(); public PoWriter(final TranslationServicePo translationServicePo) { - super(translationServicePo); + super(translationServicePo, TranslationService.Mode.WRITE); } - //region > init, shutdown - void init(final Map<String,String> config) { - } + //region > shutdown + @Override void shutdown() { final StringBuilder buf = new StringBuilder(); buf.append("\n"); @@ -90,10 +89,8 @@ class PoWriter extends PoAbstract { public String translate(final String context, final String msgId, final Locale targetLocale) { - Block block = blocksByMsgId.get(msgId); - if(block == null) { - block = new Block(msgId); - } + + final Block block = blockFor(msgId); block.contexts.add(context); return msgId; @@ -102,14 +99,20 @@ class PoWriter extends PoAbstract { @Override String translate(final String context, final String msgId, final String msgIdPlural, final int num, final Locale targetLocale) { + final Block block = blockFor(msgId); + block.contexts.add(context); + block.msgIdPlural = msgIdPlural; + + return null; + } + + private Block blockFor(final String msgId) { Block block = blocksByMsgId.get(msgId); if(block == null) { block = new Block(msgId); + blocksByMsgId.put(msgId, block); } - block.msgIdPlural = msgIdPlural; - block.contexts.add(context); - - return null; + return block; } /** @@ -117,9 +120,9 @@ class PoWriter extends PoAbstract { */ String toPot() { final StringBuilder buf = new StringBuilder(); - for (String msgId : blocksByMsgId.keySet()) { + for (final String msgId : blocksByMsgId.keySet()) { final Block block = blocksByMsgId.get(msgId); - for (String context : block.contexts) { + for (final String context : block.contexts) { buf.append("#: ").append(context).append("\n"); } buf.append("msgid \"").append(msgId).append("\"\n"); http://git-wip-us.apache.org/repos/asf/isis/blob/ac66f1e9/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 e390f6d..afb6bb7 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 @@ -36,12 +36,19 @@ public class TranslationServicePo implements TranslationService { public static Logger LOG = LoggerFactory.getLogger(TranslationServicePo.class); + public static final String KEY_DEPLOYMENT_TYPE = "isis.deploymentType"; + public static final String KEY_PO_MODE = "isis.services.translation.po.mode"; + private boolean prototype; private PoAbstract po; + /** + * Defaults to writer mode because the service isn't available while the metamodel is bring instantiated, + * however we want to force the translations to be cached in case required later. + */ public TranslationServicePo() { - po = new PoReader(this); + po = new PoWriter(this); } //region > init, shutdown @@ -50,20 +57,22 @@ public class TranslationServicePo implements TranslationService { @PostConstruct public void init(final Map<String,String> config) { - final String deploymentType = config.get("isis.deploymentType"); + final String deploymentType = config.get(KEY_DEPLOYMENT_TYPE); prototype = deploymentType==null || deploymentType.toLowerCase().contains("prototype") || deploymentType.toLowerCase().contains("test") ; - String translationMode = config.get("isis.services.translation.po.mode"); + String translationMode = config.get(KEY_PO_MODE); final boolean forceRead = - "read".equalsIgnoreCase(translationMode) || - "reader".equalsIgnoreCase(translationMode); - - if (prototype && !forceRead) { - po = new PoWriter(this); + translationMode != null && + ("read".equalsIgnoreCase(translationMode) || + "reader".equalsIgnoreCase(translationMode)); + + if (!prototype || forceRead) { + final PoReader poReader = new PoReader(this); + poReader.init(config); + po = poReader; } - po.init(config); } @Programmatic @@ -89,6 +98,11 @@ public class TranslationServicePo implements TranslationService { return po.translate(context, singularText, pluralText, num, targetLocale); } + @Override + public Mode getMode() { + return po.getMode(); + } + /** * Not API */ http://git-wip-us.apache.org/repos/asf/isis/blob/ac66f1e9/example/application/simpleapp/fixture/src/main/java/fixture/simple/SimpleObjectsFixturesService.java ---------------------------------------------------------------------- diff --git a/example/application/simpleapp/fixture/src/main/java/fixture/simple/SimpleObjectsFixturesService.java b/example/application/simpleapp/fixture/src/main/java/fixture/simple/SimpleObjectsFixturesService.java index cc926d2..242d934 100644 --- a/example/application/simpleapp/fixture/src/main/java/fixture/simple/SimpleObjectsFixturesService.java +++ b/example/application/simpleapp/fixture/src/main/java/fixture/simple/SimpleObjectsFixturesService.java @@ -22,10 +22,11 @@ import fixture.simple.scenario.SimpleObjectsFixture; import java.util.List; import org.apache.isis.applib.annotation.Action; +import org.apache.isis.applib.annotation.ActionLayout; import org.apache.isis.applib.annotation.DomainService; import org.apache.isis.applib.annotation.DomainServiceLayout; -import org.apache.isis.applib.annotation.RestrictTo; import org.apache.isis.applib.annotation.MemberOrder; +import org.apache.isis.applib.annotation.RestrictTo; import org.apache.isis.applib.fixturescripts.FixtureResult; import org.apache.isis.applib.fixturescripts.FixtureScript; import org.apache.isis.applib.fixturescripts.FixtureScripts; @@ -51,10 +52,6 @@ public class SimpleObjectsFixturesService extends FixtureScripts { return findFixtureScriptFor(SimpleFixtureScript.class); } - /** - * Raising visibility to <tt>public</tt> so that choices are available for first param - * of {@link #runFixtureScript(FixtureScript, String)}. - */ @Override public List<FixtureScript> choices0RunFixtureScript() { return super.choices0RunFixtureScript(); @@ -66,8 +63,11 @@ public class SimpleObjectsFixturesService extends FixtureScripts { @Action( restrictTo = RestrictTo.PROTOTYPING ) + @ActionLayout( + cssClassFa="fa fa-refresh" + ) @MemberOrder(sequence="20") - public Object installFixturesAndReturnFirst() { + public Object recreateObjectsAndReturnFirst() { final List<FixtureResult> run = findFixtureScriptFor(SimpleObjectsFixture.class).run(null); return run.get(0).getObject(); } http://git-wip-us.apache.org/repos/asf/isis/blob/ac66f1e9/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/isis.properties ---------------------------------------------------------------------- diff --git a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/isis.properties b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/isis.properties index 3cafcdd..3151bab 100644 --- a/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/isis.properties +++ b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/isis.properties @@ -265,6 +265,21 @@ isis.fixtures=fixture.simple.scenario.SimpleObjectsFixture ################################################################################ # +# i18n +# +################################################################################# + +# +#force read translations, even if running in prototype mode +# +isis.services.translation.po.mode=read + + + + + +################################################################################ +# # Viewer defaults # ################################################################################# http://git-wip-us.apache.org/repos/asf/isis/blob/ac66f1e9/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 new file mode 100644 index 0000000..1bf7919 --- /dev/null +++ b/example/application/simpleapp/webapp/src/main/webapp/WEB-INF/translations.po @@ -0,0 +1,135 @@ +############################################################################## +# +# .pot file +# +# generated at: 2015-02-17 16:21:01 +# generated by: TranslationServicePo +# +# 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.metamodel.services.i18n.TranslationServicePoMenu#downloadPotFile(java.lang.String) +msgid ".pot file name" +msgstr "" + + +#: dom.simple.SimpleObjects#create() +msgid "Create" +msgstr "" + + +#: org.apache.isis.core.metamodel.services.i18n.TranslationServicePoMenu#downloadPotFile() +msgid "Download Pot File" +msgstr "" + + +#: org.apache.isis.applib.fixturescripts.FixtureResult#fixtureScriptClassName +msgid "Fixture script" +msgstr "" + + +#: org.apache.isis.core.metamodel.services.container.DomainObjectContainerDefault#isViewModel() +msgid "Is View Model" +msgstr "" + + +#: dom.simple.SimpleObjects#listAll() +msgid "List All" +msgstr "" + + +#: fixture.simple.scenario.SimpleObjectsFixture#lookup() +#: org.apache.isis.applib.fixturescripts.FixtureScript#lookup() +#: org.apache.isis.applib.services.bookmark.BookmarkHolderActionContributions#lookup() +msgid "Lookup" +msgstr "" + + +#: dom.simple.SimpleObjects#create(java.lang.String) +msgid "Name" +msgstr "" + + +#: org.apache.isis.applib.services.bookmark.BookmarkHolderAssociationContributions#object() +msgid "Object" +msgstr "" + + +#: fixture.simple.SimpleObjectsFixturesService#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 "" + + +#: fixture.simple.SimpleObjectsFixturesService +#: org.apache.isis.core.metamodel.services.i18n.TranslationServicePoMenu +msgid "Prototyping" +msgstr "" + + +#: fixture.simple.SimpleObjectsFixturesService#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 "" + + +#: fixture.simple.SimpleObjectsFixturesService#runFixtureScript() +#: org.apache.isis.applib.fixturescripts.FixtureScripts#runFixtureScript() +msgid "Run Fixture Script" +msgstr "" + + +#: fixture.simple.scenario.SimpleObjectsFixture +#: org.apache.isis.applib.fixturescripts.FixtureScript +msgid "Script" +msgstr "" + + +#: fixture.simple.SimpleObjectsFixturesService#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 "" + + +#: org.apache.isis.core.metamodel.services.i18n.po.TranslationServicePo#toPo() +msgid "To Po" +msgstr "" + + +#: fixture.simple.scenario.SimpleObjectsFixture#withDiscoverability() +#: org.apache.isis.applib.fixturescripts.FixtureScript#withDiscoverability() +msgid "With Discoverability" +msgstr "" + + + + + +############################################################################## +# +# end of .pot file +# +############################################################################## + +
