On 8/31/2020 18:19, michael michaud wrote:
> String getText(Syting label)
> String getText(Syting label, Object...objects)
> static String get(Syting label) // legacy
> static String getMessage(Syting label)
> static String getMessage(Syting label, Object...objects)
>
> must remove :
> static getText(String,String)
> could remove
> static getMessage(File,String,Object...objects)
don't like getText() vs getMessage(). i suppose that is going to confuse
developers, because actually there is no difference between text and Message
here.
we have the rare chance of breaking backward compatibility with OJ2 let's take
advantage of it as we will have to touch every extension anyway!
let me propose something logically more sound, even if it'll be a little bit
more work for us
static (we could hide these, but i don't see why. when first argument is null
the default resourcebundles are used)
get(File,String,Object...objects)
get(String,String,Object...objects)
instance
get(String,Object...objects) //this notation includes get(String) without
objects as well
this'll allow for OJ Core
I18N.getInstance().get(String)
for instances
I18N.getInstance("my.great.extension").get(String)
or
I18N i18n = I18N.getInstance("my.great.extension");
i18n.get(String)
i18n.get(String, Object, Object)
i18n.get(String, new Object[]{ o1, o2, o3})
---
** [bugs:#501] I18N from extension**
**Status:** open
**Milestone:** undecided
**Created:** Mon Aug 31, 2020 10:32 AM UTC by michael michaud
**Last Updated:** Mon Aug 31, 2020 04:19 PM UTC
**Owner:** nobody
Ede, I prefer to document the usage of I18N in Extension in a separate ticket.
Here are two reasons which drove me to use a hack instead of the I18N class
(indeed there is a third : I have been too lazy to try to fix the two former
reasons) :
- using categoryPrefixOrPath with properties files in the classpath means files
are in a subdirectory named language/jump (generally possible, but no much
reason to be constrained like that);
- the only public method you can use to get a key in this case is
getText(final String categoryPrefix, final String key). Currently,
getMessage(final Object categoryPrefixOrPathOrI18n,
final String label, final Object... objects) is private. Not sure if we
must make it public or if we must use I18N instances in extensions instead of
static methods. A class instance could avoid repeating the
categoryPrefixOrPathOrI18n parameter again and again).
- indeed, we can create an instance of I18 for a particular extension, but we
cannot really use it as most methods are static. For example, if I create an
instance for myExtension, calling getMessage(final String label, final
Object... objects) will not search keys in myExtension but in main openjump
properties file
---
Sent from sourceforge.net because jump-pilot-devel@lists.sourceforge.net is
subscribed to https://sourceforge.net/p/jump-pilot/bugs/
To unsubscribe from further messages, a project admin can change settings at
https://sourceforge.net/p/jump-pilot/admin/bugs/options. Or, if this is a
mailing list, you can unsubscribe from the mailing list.
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel