[jboss-jira] [JBoss JIRA] (AS7-4735) Missing parameter index in Japanese message resource files

Takayoshi Kimura (JIRA) jira-events at lists.jboss.org
Wed May 16 06:19:18 EDT 2012


    [ https://issues.jboss.org/browse/AS7-4735?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12693198#comment-12693198 ] 

Takayoshi Kimura edited comment on AS7-4735 at 5/16/12 6:17 AM:
----------------------------------------------------------------

We finished first step of fixing Japanese translation.

There are 3 remaining tasks:


1. Sync with latest

It looks like messages in Zanata is not up to date. For example:

In 7.1.2, ClusteringApiLogger has only 2 messages:

https://github.com/jbossas/jboss-as/blob/master/clustering/api/src/main/java/org/jboss/as/clustering/ClusteringApiLogger.java

In Zanata, it has 10 messages:

https://translate.jboss.org/webtrans/Application.html?project=jboss_as&iteration=master&localeId=ja&locale=en#view:doc;doc:org.jboss.as/jboss-as-clustering-api/org/jboss/as/clustering/ClusteringApiLogger.i18n;filter:ClusteringApiLogger

And there are others which have gap like this.


2. Validate Japanese messages

We want to perform quick validations like below:

# Prints multiple parameters, need to add index
find . -name '*_ja.properties' | grep -v LocalDescription | sort | xargs grep '%' | grep -E '%[sdfb].*%[sdfb]'
# Prints possible typos
find . -name '*_ja.properties' | grep -v LocalDescription | sort | xargs grep '%' | grep -vE '%([0-9]\$)?[sdfbn]'
# Prints lines which have trailing space
find . -name '*_ja.properties' | grep -v LocalDescription | sort | xargs grep -E ' $'
# Prints lines which have leading space
find . -name '*_ja.properties' | grep -v LocalDescription | sort | xargs grep -E '=\\ '
# Prints bad string contains '%' char
find . -name '*_ja.properties' | grep -v LocalDescription | sort | xargs grep -E '%[0-9]\$[^sdfbn]'

This cannot be done in Zanata. We need to pull latest properties files
out from Zanata.


3. '\n' issue in Zanata

Currently Zanata cannot handle '\n' char in messages, and there are some messages containing '\n':

$ find . -name '*Messages.java' -or -name '*Logger.java' | xargs grep '\\n'
./ejb3/src/main/java/org/jboss/as/ejb3/EjbMessages.java:    @Message(id = 14368, value = "Component %s with component class: %s\n isn't a %s component")
./ejb3/src/main/java/org/jboss/as/ejb3/EjbMessages.java:    @Message(id = 14393, value = "<role-name> cannot be null or empty in <security-role-ref>\nfor bean: %s")
./ejb3/src/main/java/org/jboss/as/ejb3/EjbMessages.java:    @Message(id = 14405, value = "Could not determine type of corresponding implied EJB 2.x local interface (see EJB 3.1 21.4.5)\n due to multiple create* methods with different return types on home %s")
./ejb3/src/main/java/org/jboss/as/ejb3/EjbMessages.java:    @Message(id = 14438, value = "Timer service with timedObjectId: %s\n is already registered")
./ejb3/src/main/java/org/jboss/as/ejb3/EjbMessages.java:    @Message(id = 14508, value = "EJB component for address %s is in \n state %s, must be in state %s")
./server/src/main/java/org/jboss/as/server/ServerMessages.java:    @Message(id = 15817, value = "\n        %s is missing: %s")
./server/src/main/java/org/jboss/as/server/ServerLogger.java:    @Message(id = 15879, value = "Deployment '%s' has failed services\n    Failed services: %s")
./server/src/main/java/org/jboss/as/server/ServerLogger.java:    @Message(id = 15880, value = "Deployment '%s' has services missing dependencies\n    Missing dependencies: %s")
./server/src/main/java/org/jboss/as/server/ServerLogger.java:    @Message(id = 15881, value = "Deployment '%s' has failed services and services missing dependencies\n    Failed services: %s\n    Missing dependencies: %s")

Zanata is misunderstanding that those messages are 2 separated
messsages each, so this creates some invalid entries in Zanata and
original English entries are truncated.

We have to fix those messages.

https://issues.jboss.org/browse/AS7-4785
                
      was (Author: tkimura):
    We almost finished first step of fixing Japanese translation.

There are 3 remaining tasks:


1. Sync with latest

It looks like messages in Zanata is not up to date. For example:

In 7.1.2, ClusteringApiLogger has only 2 messages:

https://github.com/jbossas/jboss-as/blob/master/clustering/api/src/main/java/org/jboss/as/clustering/ClusteringApiLogger.java

In Zanata, it has 10 messages:

https://translate.jboss.org/webtrans/Application.html?project=jboss_as&iteration=master&localeId=ja&locale=en#view:doc;doc:org.jboss.as/jboss-as-clustering-api/org/jboss/as/clustering/ClusteringApiLogger.i18n;filter:ClusteringApiLogger

And there are others which have gap like this.


2. Validate Japanese messages

We want to perform quick validations like below:

# Prints multiple parameters, need to add index
find . -name '*_ja.properties' | grep -v LocalDescription | sort | xargs grep '%' | grep -E '%[sdfb].*%[sdfb]'
# Prints possible typos
find . -name '*_ja.properties' | grep -v LocalDescription | sort | xargs grep '%' | grep -vE '%([0-9]\$)?[sdfbn]'
# Prints lines which have trailing space
find . -name '*_ja.properties' | grep -v LocalDescription | sort | xargs grep -E ' $'
# Prints lines which have leading space
find . -name '*_ja.properties' | grep -v LocalDescription | sort | xargs grep -E '=\\ '
# Prints bad string contains '%' char
find . -name '*_ja.properties' | grep -v LocalDescription | sort | xargs grep -E '%[0-9]\$[^sdfbn]'

This cannot be done in Zanata. We need to pull latest properties files
out from Zanata.


3. '\n' issue in Zanata

Currently Zanata cannot handle '\n' char in messages, and there are some messages containing '\n':

$ find . -name '*Messages.java' -or -name '*Logger.java' | xargs grep '\\n'
./ejb3/src/main/java/org/jboss/as/ejb3/EjbMessages.java:    @Message(id = 14368, value = "Component %s with component class: %s\n isn't a %s component")
./ejb3/src/main/java/org/jboss/as/ejb3/EjbMessages.java:    @Message(id = 14393, value = "<role-name> cannot be null or empty in <security-role-ref>\nfor bean: %s")
./ejb3/src/main/java/org/jboss/as/ejb3/EjbMessages.java:    @Message(id = 14405, value = "Could not determine type of corresponding implied EJB 2.x local interface (see EJB 3.1 21.4.5)\n due to multiple create* methods with different return types on home %s")
./ejb3/src/main/java/org/jboss/as/ejb3/EjbMessages.java:    @Message(id = 14438, value = "Timer service with timedObjectId: %s\n is already registered")
./ejb3/src/main/java/org/jboss/as/ejb3/EjbMessages.java:    @Message(id = 14508, value = "EJB component for address %s is in \n state %s, must be in state %s")
./server/src/main/java/org/jboss/as/server/ServerMessages.java:    @Message(id = 15817, value = "\n        %s is missing: %s")
./server/src/main/java/org/jboss/as/server/ServerLogger.java:    @Message(id = 15879, value = "Deployment '%s' has failed services\n    Failed services: %s")
./server/src/main/java/org/jboss/as/server/ServerLogger.java:    @Message(id = 15880, value = "Deployment '%s' has services missing dependencies\n    Missing dependencies: %s")
./server/src/main/java/org/jboss/as/server/ServerLogger.java:    @Message(id = 15881, value = "Deployment '%s' has failed services and services missing dependencies\n    Failed services: %s\n    Missing dependencies: %s")

Zanata is misunderstanding that those messages are 2 separated
messsages each, so this creates some invalid entries in Zanata and
original English entries are truncated.

We have to fix those messages.

https://issues.jboss.org/browse/AS7-4785
                  
> Missing parameter index in Japanese message resource files
> ----------------------------------------------------------
>
>                 Key: AS7-4735
>                 URL: https://issues.jboss.org/browse/AS7-4735
>             Project: Application Server 7
>          Issue Type: Bug
>    Affects Versions: 7.1.2.Final (EAP)
>            Reporter: Takayoshi Kimura
>            Assignee: Takayoshi Kimura
>
> {quote}
> commit 27b56ae78a60f42139d615b289efa32c21aecc69
> Author: James Perkins <jperkins at redhat.com>
> Date:   2012-04-30 12:59:48 -0700
>     Added translations properties files.
> {quote}
> In this commit, Japanese message resource properties are added, but most of them don't specify parameter index properly. We need to rework on these properties files.
> For example,
> English: "%s is %d"
> Japanese: "%d は %s" (Wrong format, this causes parameter format error)
> Japanese: "%2$d は %1$s" (Correct format)
> In Japanese environment, users cannot read log because it's filled up with bunch of format errors and incorrect logs.
> Stack trace from "serverStopped" log:
> {quote}
> 15:26:28,100 ERROR [stderr] java.util.logging.ErrorManager: 5: Formatting error
> 15:26:28,100 ERROR [stderr] java.util.IllegalFormatConversionException: d != java.lang.String
> 15:26:28,101 ERROR [stderr] 	at java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:3999)
> (snip)
> 15:26:28,106 ERROR [stderr] 	at org.jboss.logging.Logger.logf(Logger.java:2112)
> 15:26:28,107 ERROR [stderr] 	at org.jboss.as.server.ServerLogger_$logger.serverStopped(ServerLogger_$logger.java:114)
> 15:26:28,107 ERROR [stderr] 	at org.jboss.as.server.ApplicationServerService.stop(ApplicationServerService.java:182)
> {quote}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

       



More information about the jboss-jira mailing list