OK, I'll look at it in, then.


On 18 February 2015 at 09:07, Jeroen van der Wal <jer...@stromboli.it>
wrote:

> In my scenario the translations are not a part of the released application
> so it is a problem when it can't be externalised.
>
> On 18 February 2015 at 09:58, Dan Haywood <d...@haywood-associates.co.uk>
> wrote:
>
> > I'll have a look to see if it's trivial to support.  But if not, then
> I'll
> > leave it as is.
> >
> > On 18 February 2015 at 08:56, Martin Grigorov <mgrigo...@apache.org>
> > wrote:
> >
> > > On Wed, Feb 18, 2015 at 10:54 AM, Martin Grigorov <
> mgrigo...@apache.org>
> > > wrote:
> > >
> > > >
> > > > On Wed, Feb 18, 2015 at 10:24 AM, <danhayw...@apache.org> wrote:
> > > >
> > > >> Repository: isis
> > > >> Updated Branches:
> > > >>   refs/heads/ISIS-903 980586f51 -> 1b9f7e8df
> > > >>
> > > >>
> > > >> ISIS-903: renaming UrlResolver to TranslationsResolver
> > > >>
> > > >>
> > > >> Project: http://git-wip-us.apache.org/repos/asf/isis/repo
> > > >> Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/1b9f7e8d
> > > >> Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/1b9f7e8d
> > > >> Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/1b9f7e8d
> > > >>
> > > >> Branch: refs/heads/ISIS-903
> > > >> Commit: 1b9f7e8dfeb5b3e87ea2288eec8708c3fd013859
> > > >> Parents: 980586f
> > > >> Author: Dan Haywood <d...@haywood-associates.co.uk>
> > > >> Authored: Wed Feb 18 08:23:59 2015 +0000
> > > >> Committer: Dan Haywood <d...@haywood-associates.co.uk>
> > > >> Committed: Wed Feb 18 08:23:59 2015 +0000
> > > >>
> > > >>
> ----------------------------------------------------------------------
> > > >>  .../services/TranslationsResolverWicket.java    | 68
> > > ++++++++++++++++++++
> > > >>  .../viewer/services/UrlResolverWicket.java      | 68
> > > --------------------
> > > >>  .../services/i18n/TranslationsResolver.java     | 29 +++++++++
> > > >>  .../isis/applib/services/i18n/UrlResolver.java  | 29 ---------
> > > >>  .../metamodel/services/i18n/po/PoReader.java    | 10 +--
> > > >>  .../services/i18n/po/TranslationServicePo.java  | 20 +++---
> > > >>  6 files changed, 113 insertions(+), 111 deletions(-)
> > > >>
> ----------------------------------------------------------------------
> > > >>
> > > >>
> > > >>
> > > >>
> > >
> >
> http://git-wip-us.apache.org/repos/asf/isis/blob/1b9f7e8d/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java
> > > >>
> ----------------------------------------------------------------------
> > > >> diff --git
> > > >>
> > >
> >
> a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java
> > > >>
> > >
> >
> b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java
> > > >> new file mode 100644
> > > >> index 0000000..0a104b8
> > > >> --- /dev/null
> > > >> +++
> > > >>
> > >
> >
> b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/TranslationsResolverWicket.java
> > > >> @@ -0,0 +1,68 @@
> > > >> +/*
> > > >> + *  Licensed to the Apache Software Foundation (ASF) under one
> > > >> + *  or more contributor license agreements.  See the NOTICE file
> > > >> + *  distributed with this work for additional information
> > > >> + *  regarding copyright ownership.  The ASF licenses this file
> > > >> + *  to you under the Apache License, Version 2.0 (the
> > > >> + *  "License"); you may not use this file except in compliance
> > > >> + *  with the License.  You may obtain a copy of the License at
> > > >> + *
> > > >> + *        http://www.apache.org/licenses/LICENSE-2.0
> > > >> + *
> > > >> + *  Unless required by applicable law or agreed to in writing,
> > > >> + *  software distributed under the License is distributed on an
> > > >> + *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> > > >> + *  KIND, either express or implied.  See the License for the
> > > >> + *  specific language governing permissions and limitations
> > > >> + *  under the License.
> > > >> + */
> > > >> +package org.apache.isis.viewer.wicket.viewer.services;
> > > >> +
> > > >> +import java.io.IOException;
> > > >> +import java.net.URL;
> > > >> +import java.util.List;
> > > >> +import javax.servlet.ServletContext;
> > > >> +import com.google.common.base.Charsets;
> > > >> +import com.google.common.io.CharSource;
> > > >> +import com.google.common.io.Resources;
> > > >> +import org.slf4j.Logger;
> > > >> +import org.slf4j.LoggerFactory;
> > > >> +import org.apache.isis.applib.annotation.DomainService;
> > > >> +import org.apache.isis.applib.annotation.Programmatic;
> > > >> +import org.apache.isis.applib.services.i18n.TranslationsResolver;
> > > >> +import org.apache.isis.viewer.wicket.viewer.IsisWicketApplication;
> > > >> +
> > > >> +
> > > >> +/**
> > > >> + * An implementation that reads from /WEB-INF/...
> > > >> + */
> > > >> +@DomainService
> > > >> +public class TranslationsResolverWicket implements
> > > TranslationsResolver {
> > > >> +
> > > >> +    public static Logger LOG =
> > > >> LoggerFactory.getLogger(TranslationsResolverWicket.class);
> > > >> +
> > > >> +    @Override
> > > >> +    @Programmatic
> > > >>
> > > >
> > > >
> > > >
> > > >> +    public List<String> readLines(final String file) {
> > > >> +        try {
> > > >> +            final ServletContext servletContext =
> > > >> getIsisWicketApplication().getServletContext();
> > > >> +            final URL url = servletContext.getResource("/WEB-INF/"
> +
> > > >> file);
> > > >>
> > > >
> > > > I think this should take into account "isis.config.dir" context
> param.
> > > > Otherwise it will break
> > > > http://isis.apache.org/reference/externalized-configuration.html
> > > >
> > > >
> > >
> > > But probably no one will want to have custom i18n files for
> > > development/testing/production
> > > So maybe it is not a problem.
> > >
> > >
> > > > +            return readLines(url);
> > > >> +        } catch (final RuntimeException | IOException ignored) {
> > > >> +            return null;
> > > >> +        }
> > > >> +    }
> > > >> +
> > > >> +    private static List<String> readLines(final URL url) throws
> > > >> IOException {
> > > >> +        if(url == null) {
> > > >> +            return null;
> > > >> +        }
> > > >> +        final CharSource charSource = Resources.asCharSource(url,
> > > >> Charsets.UTF_8);
> > > >> +        return charSource.readLines();
> > > >> +    }
> > > >> +
> > > >> +    protected IsisWicketApplication getIsisWicketApplication() {
> > > >> +        return IsisWicketApplication.get();
> > > >> +    }
> > > >> +
> > > >> +}
> > > >>
> > > >>
> > > >>
> > >
> >
> http://git-wip-us.apache.org/repos/asf/isis/blob/1b9f7e8d/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/UrlResolverWicket.java
> > > >>
> ----------------------------------------------------------------------
> > > >> diff --git
> > > >>
> > >
> >
> a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/UrlResolverWicket.java
> > > >>
> > >
> >
> b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/UrlResolverWicket.java
> > > >> deleted file mode 100644
> > > >> index e735573..0000000
> > > >> ---
> > > >>
> > >
> >
> a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/UrlResolverWicket.java
> > > >> +++ /dev/null
> > > >> @@ -1,68 +0,0 @@
> > > >> -/*
> > > >> - *  Licensed to the Apache Software Foundation (ASF) under one
> > > >> - *  or more contributor license agreements.  See the NOTICE file
> > > >> - *  distributed with this work for additional information
> > > >> - *  regarding copyright ownership.  The ASF licenses this file
> > > >> - *  to you under the Apache License, Version 2.0 (the
> > > >> - *  "License"); you may not use this file except in compliance
> > > >> - *  with the License.  You may obtain a copy of the License at
> > > >> - *
> > > >> - *        http://www.apache.org/licenses/LICENSE-2.0
> > > >> - *
> > > >> - *  Unless required by applicable law or agreed to in writing,
> > > >> - *  software distributed under the License is distributed on an
> > > >> - *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> > > >> - *  KIND, either express or implied.  See the License for the
> > > >> - *  specific language governing permissions and limitations
> > > >> - *  under the License.
> > > >> - */
> > > >> -package org.apache.isis.viewer.wicket.viewer.services;
> > > >> -
> > > >> -import java.io.IOException;
> > > >> -import java.net.URL;
> > > >> -import java.util.List;
> > > >> -import javax.servlet.ServletContext;
> > > >> -import com.google.common.base.Charsets;
> > > >> -import com.google.common.io.CharSource;
> > > >> -import com.google.common.io.Resources;
> > > >> -import org.slf4j.Logger;
> > > >> -import org.slf4j.LoggerFactory;
> > > >> -import org.apache.isis.applib.annotation.DomainService;
> > > >> -import org.apache.isis.applib.annotation.Programmatic;
> > > >> -import org.apache.isis.applib.services.i18n.UrlResolver;
> > > >> -import org.apache.isis.viewer.wicket.viewer.IsisWicketApplication;
> > > >> -
> > > >> -
> > > >> -/**
> > > >> - * An implementation that reads from /WEB-INF/...
> > > >> - */
> > > >> -@DomainService
> > > >> -public class UrlResolverWicket implements UrlResolver {
> > > >> -
> > > >> -    public static Logger LOG =
> > > >> LoggerFactory.getLogger(UrlResolverWicket.class);
> > > >> -
> > > >> -    @Override
> > > >> -    @Programmatic
> > > >> -    public List<String> readLines(final String file) {
> > > >> -        try {
> > > >> -            final ServletContext servletContext =
> > > >> getIsisWicketApplication().getServletContext();
> > > >> -            final URL url = servletContext.getResource("/WEB-INF/"
> +
> > > >> file);
> > > >> -            return readLines(url);
> > > >> -        } catch (final RuntimeException | IOException ignored) {
> > > >> -            return null;
> > > >> -        }
> > > >> -    }
> > > >> -
> > > >> -    private static List<String> readLines(final URL url) throws
> > > >> IOException {
> > > >> -        if(url == null) {
> > > >> -            return null;
> > > >> -        }
> > > >> -        final CharSource charSource = Resources.asCharSource(url,
> > > >> Charsets.UTF_8);
> > > >> -        return charSource.readLines();
> > > >> -    }
> > > >> -
> > > >> -    protected IsisWicketApplication getIsisWicketApplication() {
> > > >> -        return IsisWicketApplication.get();
> > > >> -    }
> > > >> -
> > > >> -}
> > > >>
> > > >>
> > > >>
> > >
> >
> http://git-wip-us.apache.org/repos/asf/isis/blob/1b9f7e8d/core/applib/src/main/java/org/apache/isis/applib/services/i18n/TranslationsResolver.java
> > > >>
> ----------------------------------------------------------------------
> > > >> diff --git
> > > >>
> > >
> >
> a/core/applib/src/main/java/org/apache/isis/applib/services/i18n/TranslationsResolver.java
> > > >>
> > >
> >
> b/core/applib/src/main/java/org/apache/isis/applib/services/i18n/TranslationsResolver.java
> > > >> new file mode 100644
> > > >> index 0000000..218725c
> > > >> --- /dev/null
> > > >> +++
> > > >>
> > >
> >
> b/core/applib/src/main/java/org/apache/isis/applib/services/i18n/TranslationsResolver.java
> > > >> @@ -0,0 +1,29 @@
> > > >> +/*
> > > >> + *  Licensed to the Apache Software Foundation (ASF) under one
> > > >> + *  or more contributor license agreements.  See the NOTICE file
> > > >> + *  distributed with this work for additional information
> > > >> + *  regarding copyright ownership.  The ASF licenses this file
> > > >> + *  to you under the Apache License, Version 2.0 (the
> > > >> + *  "License"); you may not use this file except in compliance
> > > >> + *  with the License.  You may obtain a copy of the License at
> > > >> + *
> > > >> + *        http://www.apache.org/licenses/LICENSE-2.0
> > > >> + *
> > > >> + *  Unless required by applicable law or agreed to in writing,
> > > >> + *  software distributed under the License is distributed on an
> > > >> + *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> > > >> + *  KIND, either express or implied.  See the License for the
> > > >> + *  specific language governing permissions and limitations
> > > >> + *  under the License.
> > > >> + */
> > > >> +package org.apache.isis.applib.services.i18n;
> > > >> +
> > > >> +import java.util.List;
> > > >> +import org.apache.isis.applib.annotation.Programmatic;
> > > >> +
> > > >> +public interface TranslationsResolver {
> > > >> +
> > > >> +    @Programmatic
> > > >> +    public List<String> readLines(final String file);
> > > >> +
> > > >> +}
> > > >>
> > > >>
> > > >>
> > >
> >
> http://git-wip-us.apache.org/repos/asf/isis/blob/1b9f7e8d/core/applib/src/main/java/org/apache/isis/applib/services/i18n/UrlResolver.java
> > > >>
> ----------------------------------------------------------------------
> > > >> diff --git
> > > >>
> > >
> >
> a/core/applib/src/main/java/org/apache/isis/applib/services/i18n/UrlResolver.java
> > > >>
> > >
> >
> b/core/applib/src/main/java/org/apache/isis/applib/services/i18n/UrlResolver.java
> > > >> deleted file mode 100644
> > > >> index 5dcb614..0000000
> > > >> ---
> > > >>
> > >
> >
> a/core/applib/src/main/java/org/apache/isis/applib/services/i18n/UrlResolver.java
> > > >> +++ /dev/null
> > > >> @@ -1,29 +0,0 @@
> > > >> -/*
> > > >> - *  Licensed to the Apache Software Foundation (ASF) under one
> > > >> - *  or more contributor license agreements.  See the NOTICE file
> > > >> - *  distributed with this work for additional information
> > > >> - *  regarding copyright ownership.  The ASF licenses this file
> > > >> - *  to you under the Apache License, Version 2.0 (the
> > > >> - *  "License"); you may not use this file except in compliance
> > > >> - *  with the License.  You may obtain a copy of the License at
> > > >> - *
> > > >> - *        http://www.apache.org/licenses/LICENSE-2.0
> > > >> - *
> > > >> - *  Unless required by applicable law or agreed to in writing,
> > > >> - *  software distributed under the License is distributed on an
> > > >> - *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
> > > >> - *  KIND, either express or implied.  See the License for the
> > > >> - *  specific language governing permissions and limitations
> > > >> - *  under the License.
> > > >> - */
> > > >> -package org.apache.isis.applib.services.i18n;
> > > >> -
> > > >> -import java.util.List;
> > > >> -import org.apache.isis.applib.annotation.Programmatic;
> > > >> -
> > > >> -public interface UrlResolver {
> > > >> -
> > > >> -    @Programmatic
> > > >> -    public List<String> readLines(final String file);
> > > >> -
> > > >> -}
> > > >>
> > > >>
> > > >>
> > >
> >
> http://git-wip-us.apache.org/repos/asf/isis/blob/1b9f7e8d/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 19776bc..e0bb2b7 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
> > > >> @@ -28,7 +28,7 @@ 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;
> > > >> +import org.apache.isis.applib.services.i18n.TranslationsResolver;
> > > >>
> > > >>  class PoReader extends PoAbstract {
> > > >>
> > > >> @@ -42,7 +42,7 @@ class PoReader extends PoAbstract {
> > > >>       *
> > > >>       * <p>
> > > >>       *     This means that the reader will search for
> > > >> <tt>translations_en-US.po</tt>, <tt>translations_en.po</tt>,
> > > >> -     *     <tt>translations.po</tt>, according to the location that
> > the
> > > >> provided {@link org.apache.isis.applib.services.i18n.UrlResolver}
> > > >> searches.  For example, if using the Wicket implementation, then
> will
> > > >> search for these files
> > > >> +     *     <tt>translations.po</tt>, according to the location that
> > the
> > > >> provided {@link
> > > org.apache.isis.applib.services.i18n.TranslationsResolver}
> > > >> searches.  For example, if using the Wicket implementation, then
> will
> > > >> search for these files
> > > >>       *     under <tt>/WEB-INF</tt> directory.
> > > >>       * </p>
> > > >>       */
> > > >> @@ -180,11 +180,11 @@ class PoReader extends PoAbstract {
> > > >>      }
> > > >>
> > > >>      private List<String> readUrl(final String candidate) {
> > > >> -        final UrlResolver urlResolver =
> > > >> translationServicePo.getUrlResolver();
> > > >> -        if(urlResolver == null) {
> > > >> +        final TranslationsResolver translationsResolver =
> > > >> translationServicePo.getTranslationsResolver();
> > > >> +        if(translationsResolver == null) {
> > > >>              return null;
> > > >>          }
> > > >> -        return urlResolver.readLines(candidate);
> > > >> +        return translationsResolver.readLines(candidate);
> > > >>      }
> > > >>
> > > >>  }
> > > >>
> > > >>
> > > >>
> > >
> >
> http://git-wip-us.apache.org/repos/asf/isis/blob/1b9f7e8d/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 d1f1630..abde47b 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
> > > >> @@ -27,7 +27,7 @@ import org.slf4j.LoggerFactory;
> > > >>  import org.apache.isis.applib.annotation.Programmatic;
> > > >>  import org.apache.isis.applib.services.i18n.LocaleProvider;
> > > >>  import org.apache.isis.applib.services.i18n.TranslationService;
> > > >> -import org.apache.isis.applib.services.i18n.UrlResolver;
> > > >> +import org.apache.isis.applib.services.i18n.TranslationsResolver;
> > > >>
> > > >>  /**
> > > >>   * Not annotated with &#64;DomainService, but is registered as a
> > > >> fallback by <tt>ServicesInstallerFallback</tt>.
> > > >> @@ -113,22 +113,24 @@ public class TranslationServicePo implements
> > > >> TranslationService {
> > > >>          return  ((PoWriter)po).toPot();
> > > >>      }
> > > >>
> > > >> -    @Inject
> > > >> -    private
> > > >> -    UrlResolver urlResolver;
> > > >> +    // //////////////////////////////////////
> > > >>
> > > >>      @Inject
> > > >>      private
> > > >> -    LocaleProvider localeProvider;
> > > >> -
> > > >> +    TranslationsResolver translationsResolver;
> > > >>
> > > >>      @Programmatic
> > > >> -    public UrlResolver getUrlResolver() {
> > > >> -        return urlResolver;
> > > >> +    TranslationsResolver getTranslationsResolver() {
> > > >> +        return translationsResolver;
> > > >>      }
> > > >>
> > > >> +    @Inject
> > > >> +    private
> > > >> +    LocaleProvider localeProvider;
> > > >> +
> > > >>      @Programmatic
> > > >> -    public LocaleProvider getLocaleProvider() {
> > > >> +    LocaleProvider getLocaleProvider() {
> > > >>          return localeProvider;
> > > >>      }
> > > >> +
> > > >>  }
> > > >>
> > > >>
> > > >
> > >
> >
>

Reply via email to