[ 
https://issues.apache.org/jira/browse/HADOOP-1041?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12476018
 ] 

James P. White commented on HADOOP-1041:
----------------------------------------

An example of how to bridge the gap between programmers and translators is 
something like this:

  <target name="build-default-resource-bundle">
     <concat destfile="${build.classes}/HadoopPresentation.properties" 
force="yes" fixlastline="yes" eol="lf">
        <fileset dir="${src.dir}" 
includes="**/HadoopPresentation_en.properties"/>
     </concat>
     <exec executable="sort">
        <arg value="-o"/>  <arg 
file="${build.classes}/HadoopPresentation.properties"/>
        <arg file="${build.classes}/HadoopPresentation.properties"/>
     </exec>
  </target>
  
That grabs up little English property resource bundles from the source tree and 
makes a default property resource bundle out of it.  The sort is done so that 
changes to the build don't make spurious changes to the bundle.

Now that doesn't address how bundles from multiple JARs are handled.  Dealing 
with that is a classpath issue and the best approach depends on how Hadoop is 
structured.  The topic can be arcane, and isn't really addressed by most 
articles on the topic:

http://java.sun.com/docs/books/tutorial/i18n/resbundle/control.html

http://java.sun.com/javase/technologies/core/basic/intl/

I won't digress into musings on ClassLoader.getPackage and the like.  If you 
have a scheme that delegates the bundles to the various JARs that you like, 
then that is probably fine.  But there isn't going to be a good way out of long 
gangly key names, as they effectively have to be fully qualified class+field 
names in order to work (think of resource bundles as externalized object 
containers).


> Counter names are ugly
> ----------------------
>
>                 Key: HADOOP-1041
>                 URL: https://issues.apache.org/jira/browse/HADOOP-1041
>             Project: Hadoop
>          Issue Type: Improvement
>          Components: mapred
>    Affects Versions: 0.12.0
>            Reporter: Owen O'Malley
>             Fix For: 0.12.0
>
>
> Having the complete class name in the counter names makes them unique, but 
> they are ugly to present to non-developers. It would be nice to have some way 
> to have a nicer string presented to the user. Currently, the Enum is 
> converted to a name like:
> key.getDeclaringClass().getName() + "#" + key.toString()
> which gives counter names like 
> "org.apache.hadoop.examples.RandomWriter$Counters#BYTES_WRITTEN"
> which is unique, but not very user friendly. Perhaps, we should strip off the 
> class name for presenting to the users, which would allow them to make nice 
> names. In particular, you could define an enum type that overloaded toString 
> to print a nice user friendly string.
> Thoughts?

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to