commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Brian Egge (JIRA)" <j...@apache.org>
Subject [jira] Commented: (CLI-118) CLIMessageBundle for spanish (attached)
Date Wed, 22 Aug 2007 07:22:30 GMT

    [ https://issues.apache.org/jira/browse/CLI-118?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12521717
] 

Brian Egge commented on CLI-118:
--------------------------------

A quick check shows that there are 44 properties in the existing message bundle, and 44 constants
in the constants file.  Assuming no typos, these should be 1 for 1.
 
$ grep "=" src/java/org/apache/commons/cli2/resource/CLIMessageBundle_en_US.properties  |
wc -l
      44
$ grep "=" src/java/org/apache/commons/cli2/resource/ResourceConstants.java  | wc -l
      44
$ grep "=" src/java/org/apache/commons/cli2/resource/CLIMessageBundle_es.properties  | wc
-l
      44

A simple bash script indicates that all of these constants appear twice in the code (once
in the constants file and once somewhere else)

for item in `grep "=" src/java/org/apache/commons/cli2/resource/ResourceConstants.java | 
cut  -d\  -f9`
do
  find src/java -name "*.java" | xargs grep $item | wc -l
done

Of course it could be referenced in a comment or String, but that's not likely.

I don't know of any existing tools which will find unused public constants.  This generally
isn't done because something external could always be referencing the public variable.  

In order to add the Spanish bundle, the English file should be renamed to simply CLIMessageBundle.properties,
and the bundle should be loaded with getBundle(bundleName, Locale.getDefault()).  This will
ensure if the user's locale is not available, then the English one will be used.  

> CLIMessageBundle for spanish (attached)
> ---------------------------------------
>
>                 Key: CLI-118
>                 URL: https://issues.apache.org/jira/browse/CLI-118
>             Project: Commons CLI
>          Issue Type: Improvement
>          Components: CLI-2.x
>    Affects Versions: Nightly Builds
>            Reporter: David Leal
>             Fix For: 2.0
>
>
> Just to suggest adding resource bundle of the library for spanish language. I have translated
it for CLI. Some english word where translated but still the original english word is preserved
in parenthesis because they are hard to translate and understand.
> Just to suggest consider to use choice format in order to minimize the number of resource
bundle keys, for example:
> propertyAtLeastOneCharacter  = The {0,choice,1#enabledPrefix|2#disabledPrefix|3#preferredName|4#idirectPosition}
MUST be at least 1 character long.
> of just to use a single variable: 
> propertyAtLeastOneCharacter  = The {0} MUST be at least 1 character long.
> such features simplifies the translation process.
> =====================================================================
> ClassValidator.bad.classname   = El nombre de la clase "{0}" no es válido.
> ClassValidator.class.notfound  = La clase "{0}" no puede ser encontrada.
> ClassValidator.class.access    = La clase "{0}" no puede ser accedida. \
>                                      Razón: {1}.
> ClassValidator.class.create    = La clase "{0}" no puede ser creada.
> DateValidator.date.OutOfRange  = La fecha ''{0}'' está fuera de rango.
> NumberValidator.number.OutOfRange = El número ''{0}'' esta fuera de rango.
> URLValidator.malformed.URL        = No se entiende la URL: ''{0}''.
> Argument.unexpected.value         = Inesperado el valor "{0}" encontrado \
>                                       durante el procesamiento
> Argument.minimum.exceeds.maximum  = El mínimo número de valores no debe \
>                                       exceder el máximo número
> Argument.too.few.defaults         = No hay suficientes valores por defecto.
> Argument.too.many.defaults        = Demasiados valores por defecto.
> Argument.missing.values           = Falta(n) valor(es)
> Argument.too.many.values          = Se ha solicita más de un valor.
> Option.trigger.needs.prefix       = El "disparador"(triggers) {0} debe ser \
>                                       prefijado con el valor {1}
> Option.missing.required           = Falta la opción  requerida
> Option.no.name                    = Una opción debe tener al menos un nombre.
> Option.illegal.short.prefix       = El prefijo corto TIENE que tener al \
>                                       menos un caracter.
> Option.illegal.long.prefix        = El prefijo largo TIENE que tener al menos \
>                                       un caracter.
> Command.preferredName.too.short   = El valor de preferredName TIENE que tener \
>                                       al menos un caracter.
> SourceDest.must.enforce.values    = El argumento dest debe forzar un valor \
>                                       fijo de valores.
> Switch.illegal.enabled.prefix     = El valor de enabledPrefix TIENE tener al \
>                                       menos un caracter.
> Switch.illegal.disabled.prefix    = El valor de disabledPrefix TIENE que tener \
>                                       al menos un caracter.
> Switch.identical.prefixes         = El valor de disabledPrefix y enabledPrefix \
>                                       TIENE que ser distinto.
> Switch.already.set                = El interruptor ya ha sido asignado.
> Switch.no.enabledPrefix           = Un valor de enabledPrefix tiene que ser \
>                                       proporcionado.
> Switch.no.disabledPrefix          = Un valor de disabledPrefix debe ser \
>                                       proporcionado.
> Switch.enabled.startsWith.disabled = El valor de enabledPrefix no debe \
>                                        comenzar con el mismo valor \
>                                        de disabledPrefix.
> Switch.disabled.startsWith.enabled = El valor de disabledPrefix no puede \
>                                        comenzar con el mismo valor que \
>                                        enabledPrefix.
> Switch.preferredName.too.short     = El valor de preferredName TIENE que tener \
>                                        al menos un caracter.
> HelpFormatter.gutter.too.long      = El valor de la cadena de separación \
>                                        (gutter) no tiene suficiente espacio \
>                                        para la salida! proporcione un valor \
>                                        menor o mayor ancho.
> HelpFormatter.width.too.narrow     = El ancho de HelpFormatter es muy \
>                                        pequeño: "{0}".
> Enum.illegal.value     = ''{0}'' no está permitido. Los valores \
>                            permitidos son: {1}
> Unexpected.token       = Inesperado el valor {0} durante el procesamiento
> Missing.option         = Falta la opción
> Cannot.burst           = No puede quebrantar "{0}" durante el procesamiento
> ArgumentBuilder.null.consume.remaining = No puedo usar 'null' como \
>                                              etiqueta(token) restante.
> ArgumentBuilder.empty.consume.remaining = No puedo usa una cadena vacía \
>                                               como etiqueta (token) restante.
> ArgumentBuilder.null.defaults           = No puedo usar 'null' como valores \
>                                               por defecto.
> ArgumentBuilder.null.default            = No puede usar 'null' como valor \
>                                               por defecto.
> ArgumentBuilder.negative.maximum = No puede usar valor máximo negativo.
> ArgumentBuilder.negative.minimum = No puede usar un valor mínimo negativo.
> ArgumentBuilder.null.name        = No puede usar 'null' como nombre.
> ArgumentBuilder.empty.name       = No puede usar una cadena vacía como nombre.
> ArgumentBuilder.null.validator   = No puede usar 'null' como validador.

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


Mime
View raw message