>I18N.getInstance("my.great.extension").get(String) seems more logical and easy to use
Il lun 31 ago 2020, 18:58 ede via Jump-pilot-devel < jump-pilot-devel@lists.sourceforge.net> ha scritto: > 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] <https://sourceforge.net/p/jump-pilot/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 >
_______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel