You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ofbiz.apache.org by Bruno Busco <br...@gmail.com> on 2008/03/03 00:12:28 UTC

Multiple UiLabels definitions

Hi,
while testing ecommerce application i have found that selecting the ITalian
language, some labels are displayed still in english.
I was convinced that this was because of a missing translation but the
reason was a little different:

Some labels are defined in more than one resource file. For example
"CommonQuickAdd" is both in EcommerceUiLabels.xml and in
CommonUiLabels.xmlfiles.
But while the CommonUiLabels.xml is complete, in the
EcommerceUiLabels.xmlfile there is no italian label.

So what I think that could happen is that OFBiz tries to have an IT string
from the EcommerceUiLabels.xml file (the first one), this is not found and
so it falls back to what is specified in (locale.properties.fallback=en)
BEFORE checking if the IT string is present in other resource files.

I tryed to delete the incomplete <property key="CommonQuickAdd"> from the
EcommerceUiLabels.xml and now the italian string is correctly displayed
(because no fallback).
Also defining (locale.properties.fallback=it) it works because now, even the
CommonUiLabels.xml is looked for an italian string.

I see four options for me to solve the problem:
1) Add all italian strings to EcommerceUiLabels.xml even if they are already
present in CommonUiLabels.xml (I don't like because of redundancy)
2) Remove all the Common*** labels from EcommerceUiLabels.xml (any
drawbacks?)
3) Change to (locale.properties.fallback=it)
4) Change the way OFBiz scans for the locale strings in such a way that it
first merges all the files and THEN looks for the desired localization and
THEN if not found falls to the fallback (unluckly i am not able)

Any idea about this?

Re: Server Security

Posted by Christian Geisert <ch...@isu-gmbh.de>.
skip@thedevers schrieb:
> This is a bit off topic, but I am betting someone can offer some advice.
> 
> My newly installed servers for my first ofbiz installation are getting
> hammered with SSH login requests and probably others I do not know about.  I
> need to expose SSH on at least one to allow me to manage the servers

First simple measure: change the ssh port (hey I  said simple)
Then configure ssh to use public key authentication only.

> remotely.  I am also concerned that someone will eventually guess the
> password to one of the ofbiz accounts (I am getting one login request every
> 10 seconds).  I am also concerned about the bandwidth being consumed by
> these pirates.

It depends on who needs access to the OFBiz management apps - if you do
it from a fixed ip then allow access to port 8443 only from this ip
(with mod_access for example) or through an ssh tunnel.

Christian

RE: Server Security

Posted by "skip@thedevers" <sk...@thedevers.org>.
Manuel

Thanks a load.  This is perfect.  Along with changing the ssh port, this
should solve the problem completely.

Skip

-----Original Message-----
From: Manuel Desdin [mailto:mdesdin@iguanait.com]
Sent: Friday, March 07, 2008 4:51 PM
To: user@ofbiz.apache.org
Subject: Re: Server Security


hi skip,
if using linux, try this http://denyhosts.sourceforge.net/
regards,
manuel.

On 08/03/2008, at 1:49, skip@thedevers wrote:

> Thanks Vince
>
> I have a firewall, but not the best and the apache server is on the
> dmz.  Can't figure out (if it is possible) to blacklist IPs on the
> dmz.
>
> This is a fairly sophisticated operation with money to spend on
> security appliances.
>
> Skip
>
> -----Original Message-----
> From: Vince M. Clark [mailto:vclark@globalera.com]
> Sent: Friday, March 07, 2008 1:00 PM
> To: user@ofbiz.apache.org
> Subject: Re: Server Security
>
>
> I'm no network guru, but here are some ideas.
>
> 1) Fairly cheap and easy solution - If you have a spare server on
> your network, or if you have one virtualized and can create a
> virtual server for ssh access from the outside, then you could
> restrict ssh on your OfBiz server to only accept connections from
> internal IP's. So from the outside you would connect to your
> dedicated ssh box and then ssh from there to your OfBiz server.
>
> 2) A bit more sophisticated solution - I think a good firewall will
> have some penetration detection capabilities. So for example, you
> could configure your firewall to blacklist IP's after a certain
> number of attempts to connect to your server over ssh. If a firewall
> can't do this I'm sure there are other network appliances or
> software you could install on the server to perform intrusion
> detection.
>
> ----- Original Message -----
> From: "skip@thedevers" <sk...@thedevers.org>
> To: user@ofbiz.apache.org, "Jacques Le Roux" <jacques.le.roux@les7arts.com
> >
> Sent: Friday, March 7, 2008 1:55:02 PM (GMT-0700) America/Denver
> Subject: Server Security
>
> This is a bit off topic, but I am betting someone can offer some
> advice.
>
> My newly installed servers for my first ofbiz installation are getting
> hammered with SSH login requests and probably others I do not know
> about. I
> need to expose SSH on at least one to allow me to manage the servers
> remotely. I am also concerned that someone will eventually guess the
> password to one of the ofbiz accounts (I am getting one login
> request every
> 10 seconds). I am also concerned about the bandwidth being consumed by
> these pirates.
>
> I am considering requiring ssl certificates to any who want to use
> SSH or
> https to the backoffice apps, but can't find any good books on the
> topic.
>
> Can anyone offer any advice on a direction or in particular, a good
> book on
> the topic. I am configured with an apache server fronting an ofbiz
> server,
> with the ofbiz server having NAT internet access for address lookups
> and
> freight charge lookups. The apache/mail server is the one currently
> getting
> hammered. I have temporarily shut down apache and ssh till I get the
> issue
> resolved.
>
> Skip
> No virus found in this outgoing message.
> Checked by AVG Free Edition.
> Version: 7.5.516 / Virus Database: 269.21.4/1313 - Release Date:
> 3/5/2008
> 9:50 AM
>
>
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.5.516 / Virus Database: 269.21.4/1313 - Release Date:
> 3/5/2008 9:50 AM
>
>
> No virus found in this outgoing message.
> Checked by AVG Free Edition.
> Version: 7.5.516 / Virus Database: 269.21.4/1313 - Release Date:
> 3/5/2008 9:50 AM
>
>


No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.516 / Virus Database: 269.21.4/1313 - Release Date: 3/5/2008
9:50 AM

No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.5.516 / Virus Database: 269.21.4/1313 - Release Date: 3/5/2008
9:50 AM


Re: Server Security

Posted by Manuel Desdin <md...@iguanait.com>.
hi skip,
if using linux, try this http://denyhosts.sourceforge.net/
regards,
manuel.

On 08/03/2008, at 1:49, skip@thedevers wrote:

> Thanks Vince
>
> I have a firewall, but not the best and the apache server is on the  
> dmz.  Can't figure out (if it is possible) to blacklist IPs on the  
> dmz.
>
> This is a fairly sophisticated operation with money to spend on  
> security appliances.
>
> Skip
>
> -----Original Message-----
> From: Vince M. Clark [mailto:vclark@globalera.com]
> Sent: Friday, March 07, 2008 1:00 PM
> To: user@ofbiz.apache.org
> Subject: Re: Server Security
>
>
> I'm no network guru, but here are some ideas.
>
> 1) Fairly cheap and easy solution - If you have a spare server on  
> your network, or if you have one virtualized and can create a  
> virtual server for ssh access from the outside, then you could  
> restrict ssh on your OfBiz server to only accept connections from  
> internal IP's. So from the outside you would connect to your  
> dedicated ssh box and then ssh from there to your OfBiz server.
>
> 2) A bit more sophisticated solution - I think a good firewall will  
> have some penetration detection capabilities. So for example, you  
> could configure your firewall to blacklist IP's after a certain  
> number of attempts to connect to your server over ssh. If a firewall  
> can't do this I'm sure there are other network appliances or  
> software you could install on the server to perform intrusion  
> detection.
>
> ----- Original Message -----
> From: "skip@thedevers" <sk...@thedevers.org>
> To: user@ofbiz.apache.org, "Jacques Le Roux" <jacques.le.roux@les7arts.com 
> >
> Sent: Friday, March 7, 2008 1:55:02 PM (GMT-0700) America/Denver
> Subject: Server Security
>
> This is a bit off topic, but I am betting someone can offer some  
> advice.
>
> My newly installed servers for my first ofbiz installation are getting
> hammered with SSH login requests and probably others I do not know  
> about. I
> need to expose SSH on at least one to allow me to manage the servers
> remotely. I am also concerned that someone will eventually guess the
> password to one of the ofbiz accounts (I am getting one login  
> request every
> 10 seconds). I am also concerned about the bandwidth being consumed by
> these pirates.
>
> I am considering requiring ssl certificates to any who want to use  
> SSH or
> https to the backoffice apps, but can't find any good books on the  
> topic.
>
> Can anyone offer any advice on a direction or in particular, a good  
> book on
> the topic. I am configured with an apache server fronting an ofbiz  
> server,
> with the ofbiz server having NAT internet access for address lookups  
> and
> freight charge lookups. The apache/mail server is the one currently  
> getting
> hammered. I have temporarily shut down apache and ssh till I get the  
> issue
> resolved.
>
> Skip
> No virus found in this outgoing message.
> Checked by AVG Free Edition.
> Version: 7.5.516 / Virus Database: 269.21.4/1313 - Release Date:  
> 3/5/2008
> 9:50 AM
>
>
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.5.516 / Virus Database: 269.21.4/1313 - Release Date:  
> 3/5/2008 9:50 AM
>
>
> No virus found in this outgoing message.
> Checked by AVG Free Edition.
> Version: 7.5.516 / Virus Database: 269.21.4/1313 - Release Date:  
> 3/5/2008 9:50 AM
>
>


RE: Server Security

Posted by "skip@thedevers" <sk...@thedevers.org>.
Thanks Vince

I have a firewall, but not the best and the apache server is on the dmz.  Can't figure out (if it is possible) to blacklist IPs on the dmz.

This is a fairly sophisticated operation with money to spend on security appliances.

Skip

-----Original Message-----
From: Vince M. Clark [mailto:vclark@globalera.com]
Sent: Friday, March 07, 2008 1:00 PM
To: user@ofbiz.apache.org
Subject: Re: Server Security


I'm no network guru, but here are some ideas. 

1) Fairly cheap and easy solution - If you have a spare server on your network, or if you have one virtualized and can create a virtual server for ssh access from the outside, then you could restrict ssh on your OfBiz server to only accept connections from internal IP's. So from the outside you would connect to your dedicated ssh box and then ssh from there to your OfBiz server. 

2) A bit more sophisticated solution - I think a good firewall will have some penetration detection capabilities. So for example, you could configure your firewall to blacklist IP's after a certain number of attempts to connect to your server over ssh. If a firewall can't do this I'm sure there are other network appliances or software you could install on the server to perform intrusion detection. 

----- Original Message ----- 
From: "skip@thedevers" <sk...@thedevers.org> 
To: user@ofbiz.apache.org, "Jacques Le Roux" <ja...@les7arts.com> 
Sent: Friday, March 7, 2008 1:55:02 PM (GMT-0700) America/Denver 
Subject: Server Security 

This is a bit off topic, but I am betting someone can offer some advice. 

My newly installed servers for my first ofbiz installation are getting 
hammered with SSH login requests and probably others I do not know about. I 
need to expose SSH on at least one to allow me to manage the servers 
remotely. I am also concerned that someone will eventually guess the 
password to one of the ofbiz accounts (I am getting one login request every 
10 seconds). I am also concerned about the bandwidth being consumed by 
these pirates. 

I am considering requiring ssl certificates to any who want to use SSH or 
https to the backoffice apps, but can't find any good books on the topic. 

Can anyone offer any advice on a direction or in particular, a good book on 
the topic. I am configured with an apache server fronting an ofbiz server, 
with the ofbiz server having NAT internet access for address lookups and 
freight charge lookups. The apache/mail server is the one currently getting 
hammered. I have temporarily shut down apache and ssh till I get the issue 
resolved. 

Skip 
No virus found in this outgoing message. 
Checked by AVG Free Edition. 
Version: 7.5.516 / Virus Database: 269.21.4/1313 - Release Date: 3/5/2008 
9:50 AM 


No virus found in this incoming message.
Checked by AVG Free Edition. 
Version: 7.5.516 / Virus Database: 269.21.4/1313 - Release Date: 3/5/2008 9:50 AM
 

No virus found in this outgoing message.
Checked by AVG Free Edition. 
Version: 7.5.516 / Virus Database: 269.21.4/1313 - Release Date: 3/5/2008 9:50 AM
 


Re: Server Security

Posted by "Vince M. Clark" <vc...@globalera.com>.
I'm no network guru, but here are some ideas. 

1) Fairly cheap and easy solution - If you have a spare server on your network, or if you have one virtualized and can create a virtual server for ssh access from the outside, then you could restrict ssh on your OfBiz server to only accept connections from internal IP's. So from the outside you would connect to your dedicated ssh box and then ssh from there to your OfBiz server. 

2) A bit more sophisticated solution - I think a good firewall will have some penetration detection capabilities. So for example, you could configure your firewall to blacklist IP's after a certain number of attempts to connect to your server over ssh. If a firewall can't do this I'm sure there are other network appliances or software you could install on the server to perform intrusion detection. 

----- Original Message ----- 
From: "skip@thedevers" <sk...@thedevers.org> 
To: user@ofbiz.apache.org, "Jacques Le Roux" <ja...@les7arts.com> 
Sent: Friday, March 7, 2008 1:55:02 PM (GMT-0700) America/Denver 
Subject: Server Security 

This is a bit off topic, but I am betting someone can offer some advice. 

My newly installed servers for my first ofbiz installation are getting 
hammered with SSH login requests and probably others I do not know about. I 
need to expose SSH on at least one to allow me to manage the servers 
remotely. I am also concerned that someone will eventually guess the 
password to one of the ofbiz accounts (I am getting one login request every 
10 seconds). I am also concerned about the bandwidth being consumed by 
these pirates. 

I am considering requiring ssl certificates to any who want to use SSH or 
https to the backoffice apps, but can't find any good books on the topic. 

Can anyone offer any advice on a direction or in particular, a good book on 
the topic. I am configured with an apache server fronting an ofbiz server, 
with the ofbiz server having NAT internet access for address lookups and 
freight charge lookups. The apache/mail server is the one currently getting 
hammered. I have temporarily shut down apache and ssh till I get the issue 
resolved. 

Skip 
No virus found in this outgoing message. 
Checked by AVG Free Edition. 
Version: 7.5.516 / Virus Database: 269.21.4/1313 - Release Date: 3/5/2008 
9:50 AM 


Server Security

Posted by "skip@thedevers" <sk...@thedevers.org>.
This is a bit off topic, but I am betting someone can offer some advice.

My newly installed servers for my first ofbiz installation are getting
hammered with SSH login requests and probably others I do not know about.  I
need to expose SSH on at least one to allow me to manage the servers
remotely.  I am also concerned that someone will eventually guess the
password to one of the ofbiz accounts (I am getting one login request every
10 seconds).  I am also concerned about the bandwidth being consumed by
these pirates.

I am considering requiring ssl certificates to any who want to use SSH or
https to the backoffice apps, but can't find any good books on the topic.

Can anyone offer any advice on a direction or in particular, a good book on
the topic.  I am configured with an apache server fronting an ofbiz server,
with the ofbiz server having NAT internet access for address lookups and
freight charge lookups.  The apache/mail server is the one currently getting
hammered.  I have temporarily shut down apache and ssh till I get the issue
resolved.

Skip
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.5.516 / Virus Database: 269.21.4/1313 - Release Date: 3/5/2008
9:50 AM


Re: Multiple UiLabels definitions

Posted by Jacques Le Roux <ja...@les7arts.com>.
From: "Jacques Le Roux" <ja...@les7arts.com>
> From: "Bruno Busco" <br...@gmail.com>
>> Fine,
>> thank you for the explanation (why not include this in the on-line
>> documentation?)
>
> Yes true, I will write something, thanks for suggestion

It's done in http://docs.ofbiz.org/display/OFBIZ/Tips+for+translation. It's an adaptation of Adrian's previous comment. Please 
review
and comment if needed.

Jacques

> Jacques
>
>> So i have moved away from the xxUiLabels file the CommonLabels already
>> defined (with the same content) in the CommonUiLabels file and submitted a
>> patch with the issue: https://issues.apache.org/jira/browse/OFBIZ-1691
>>
>> I limited only to Common Labels because CommonUiLabels, if i have
>> understood, is the "base" that should always be included.
>> For a deeper action (to reduce cross-application label definition) i think
>> there should be a label naming convention policy to refer to (maybe it is
>> already somewhere?)
>>
>> Bruno
>>
>>
>> 2008/3/4, Adrian Crum <ad...@hlmksw.com>:
>>>
>>> The best approach to follow will be easy to see if you understand how
>>> the UI labels system works.
>>>
>>> The basic concept of the multiple UI label property files is this: start
>>> off with the most generic, most often used labels, then build upon that
>>> with application-specific labels. The CommonUiLabels.xml file contains
>>> labels common to all components. The EcommerceUiLabels.xml file contains
>>> labels specific to the eCommerce component. Doing things this way
>>> reduces redundancy and it allows an application to redefine labels found
>>> in the common (or shared) label files.
>>>
>>> If a specific label appears in more than one property file, it is
>>> because the label is being redefined. If you find a duplicate label that
>>> doesn't change anything, then that is probably an oversight. The label
>>> should be removed from the application-specific property file.
>>>
>>> If a specific label appears in more than one property file because it is
>>> redefining a label in a shared property file, then the best thing to do
>>> is add the missing language to the label in the application-specific
>>> property file.
>>>
>>> In the EcommerceYourShoppingCartEmpty label example, it probably appears
>>> in more than one file so that there won't be an inter-application
>>> dependency. In other words, having that label present in
>>> OrderUiLabels.xml eliminates the need for the Order Manager component to
>>> load/use the ECommerceUiLabels.xml file. I'm only guessing here -
>>> sometimes it is hard to tell what the original intention was.
>>>
>>> The bottom line is, it is better to add translations to property files
>>> than it is to delete labels. Deleting duplicate labels makes sense at
>>> first glance, but problems could come up if there was a specific reason
>>> the duplication was needed.
>>>
>>> -Adrian
>>>
>>>
>>> Bruno Busco wrote:
>>> > 2008/3/3, Adrian Crum <ad...@hlmksw.com>:
>>> >> Bruno Busco wrote:
>>> >>> Hi,
>>> >>> while testing ecommerce application i have found that selecting the
>>> >> ITalian
>>> >>> language, some labels are displayed still in english.
>>> >>> I was convinced that this was because of a missing translation but the
>>> >>> reason was a little different:
>>> >>>
>>> >>> Some labels are defined in more than one resource file. For example
>>> >>> "CommonQuickAdd" is both in EcommerceUiLabels.xml and in
>>> >>> CommonUiLabels.xmlfiles.
>>> >>> But while the CommonUiLabels.xml is complete, in the
>>> >>> EcommerceUiLabels.xmlfile there is no italian label.
>>> >>> So what I think that could happen is that OFBiz tries to have an IT
>>> >> string
>>> >>> from the EcommerceUiLabels.xml file (the first one), this is not found
>>> >> and
>>> >>> so it falls back to what is specified in (
>>> locale.properties.fallback=en)
>>> >>> BEFORE checking if the IT string is present in other resource files.
>>> >>>
>>> >>> I tryed to delete the incomplete <property key="CommonQuickAdd"> from
>>> >> the
>>> >>> EcommerceUiLabels.xml and now the italian string is correctly
>>> displayed
>>> >>> (because no fallback).
>>> >>> Also defining (locale.properties.fallback=it) it works because now,
>>> even
>>> >> the
>>> >>> CommonUiLabels.xml is looked for an italian string.
>>> >>>
>>> >>> I see four options for me to solve the problem:
>>> >>> 1) Add all italian strings to EcommerceUiLabels.xml even if they are
>>> >> already
>>> >>> present in CommonUiLabels.xml (I don't like because of redundancy)
>>> >>> 2) Remove all the Common*** labels from EcommerceUiLabels.xml (any
>>> >>> drawbacks?)
>>> >>> 3) Change to (locale.properties.fallback=it)
>>> >>
>>> >> #3 will generate "resource not found" errors. In effect you would be
>>> >> saying "If you can't find the IT label, then fall back to the IT
>>> label."
>>> >>
>>> >>
>>> >> -Adrian
>>> >>
>>> >
>>> > OK. I have removed all Common* labels that are defined in
>>>
>>> > CommonUiLabels.xmlfile from all the other files and it seems to work
>>>
>>> > now.
>>> > But this is not enough because for instance
>>> EcommerceYourShoppingCartEmpty
>>> > label is present both in ECommerceUiLabels.xml AND in OrderUiLabels.xml.
>>> > Should I remove the occurrence of this label from OrderUiLabels.xml ?
>>> > In other words what is the naming convention to be observed?
>>> > Could I follow the rule that all the labels that starts with AppName
>>> must be
>>> > only defined in the AppNameUiLabels.xml file?
>>> >
>>> > Bruno
>>> >
>>>
>>
>
>


Re: Multiple UiLabels definitions

Posted by Jacques Le Roux <ja...@les7arts.com>.
From: "Bruno Busco" <br...@gmail.com>
> Fine,
> thank you for the explanation (why not include this in the on-line
> documentation?)

Yes true, I will write something, thanks for suggestion 

Jacques
 
> So i have moved away from the xxUiLabels file the CommonLabels already
> defined (with the same content) in the CommonUiLabels file and submitted a
> patch with the issue: https://issues.apache.org/jira/browse/OFBIZ-1691
> 
> I limited only to Common Labels because CommonUiLabels, if i have
> understood, is the "base" that should always be included.
> For a deeper action (to reduce cross-application label definition) i think
> there should be a label naming convention policy to refer to (maybe it is
> already somewhere?)
> 
> Bruno
> 
> 
> 2008/3/4, Adrian Crum <ad...@hlmksw.com>:
>>
>> The best approach to follow will be easy to see if you understand how
>> the UI labels system works.
>>
>> The basic concept of the multiple UI label property files is this: start
>> off with the most generic, most often used labels, then build upon that
>> with application-specific labels. The CommonUiLabels.xml file contains
>> labels common to all components. The EcommerceUiLabels.xml file contains
>> labels specific to the eCommerce component. Doing things this way
>> reduces redundancy and it allows an application to redefine labels found
>> in the common (or shared) label files.
>>
>> If a specific label appears in more than one property file, it is
>> because the label is being redefined. If you find a duplicate label that
>> doesn't change anything, then that is probably an oversight. The label
>> should be removed from the application-specific property file.
>>
>> If a specific label appears in more than one property file because it is
>> redefining a label in a shared property file, then the best thing to do
>> is add the missing language to the label in the application-specific
>> property file.
>>
>> In the EcommerceYourShoppingCartEmpty label example, it probably appears
>> in more than one file so that there won't be an inter-application
>> dependency. In other words, having that label present in
>> OrderUiLabels.xml eliminates the need for the Order Manager component to
>> load/use the ECommerceUiLabels.xml file. I'm only guessing here -
>> sometimes it is hard to tell what the original intention was.
>>
>> The bottom line is, it is better to add translations to property files
>> than it is to delete labels. Deleting duplicate labels makes sense at
>> first glance, but problems could come up if there was a specific reason
>> the duplication was needed.
>>
>> -Adrian
>>
>>
>> Bruno Busco wrote:
>> > 2008/3/3, Adrian Crum <ad...@hlmksw.com>:
>> >> Bruno Busco wrote:
>> >>> Hi,
>> >>> while testing ecommerce application i have found that selecting the
>> >> ITalian
>> >>> language, some labels are displayed still in english.
>> >>> I was convinced that this was because of a missing translation but the
>> >>> reason was a little different:
>> >>>
>> >>> Some labels are defined in more than one resource file. For example
>> >>> "CommonQuickAdd" is both in EcommerceUiLabels.xml and in
>> >>> CommonUiLabels.xmlfiles.
>> >>> But while the CommonUiLabels.xml is complete, in the
>> >>> EcommerceUiLabels.xmlfile there is no italian label.
>> >>> So what I think that could happen is that OFBiz tries to have an IT
>> >> string
>> >>> from the EcommerceUiLabels.xml file (the first one), this is not found
>> >> and
>> >>> so it falls back to what is specified in (
>> locale.properties.fallback=en)
>> >>> BEFORE checking if the IT string is present in other resource files.
>> >>>
>> >>> I tryed to delete the incomplete <property key="CommonQuickAdd"> from
>> >> the
>> >>> EcommerceUiLabels.xml and now the italian string is correctly
>> displayed
>> >>> (because no fallback).
>> >>> Also defining (locale.properties.fallback=it) it works because now,
>> even
>> >> the
>> >>> CommonUiLabels.xml is looked for an italian string.
>> >>>
>> >>> I see four options for me to solve the problem:
>> >>> 1) Add all italian strings to EcommerceUiLabels.xml even if they are
>> >> already
>> >>> present in CommonUiLabels.xml (I don't like because of redundancy)
>> >>> 2) Remove all the Common*** labels from EcommerceUiLabels.xml (any
>> >>> drawbacks?)
>> >>> 3) Change to (locale.properties.fallback=it)
>> >>
>> >> #3 will generate "resource not found" errors. In effect you would be
>> >> saying "If you can't find the IT label, then fall back to the IT
>> label."
>> >>
>> >>
>> >> -Adrian
>> >>
>> >
>> > OK. I have removed all Common* labels that are defined in
>>
>> > CommonUiLabels.xmlfile from all the other files and it seems to work
>>
>> > now.
>> > But this is not enough because for instance
>> EcommerceYourShoppingCartEmpty
>> > label is present both in ECommerceUiLabels.xml AND in OrderUiLabels.xml.
>> > Should I remove the occurrence of this label from OrderUiLabels.xml ?
>> > In other words what is the naming convention to be observed?
>> > Could I follow the rule that all the labels that starts with AppName
>> must be
>> > only defined in the AppNameUiLabels.xml file?
>> >
>> > Bruno
>> >
>>
>

Re: Multiple UiLabels definitions

Posted by Bruno Busco <br...@gmail.com>.
Fine,
thank you for the explanation (why not include this in the on-line
documentation?)

So i have moved away from the xxUiLabels file the CommonLabels already
defined (with the same content) in the CommonUiLabels file and submitted a
patch with the issue: https://issues.apache.org/jira/browse/OFBIZ-1691

I limited only to Common Labels because CommonUiLabels, if i have
understood, is the "base" that should always be included.
For a deeper action (to reduce cross-application label definition) i think
there should be a label naming convention policy to refer to (maybe it is
already somewhere?)

Bruno


2008/3/4, Adrian Crum <ad...@hlmksw.com>:
>
> The best approach to follow will be easy to see if you understand how
> the UI labels system works.
>
> The basic concept of the multiple UI label property files is this: start
> off with the most generic, most often used labels, then build upon that
> with application-specific labels. The CommonUiLabels.xml file contains
> labels common to all components. The EcommerceUiLabels.xml file contains
> labels specific to the eCommerce component. Doing things this way
> reduces redundancy and it allows an application to redefine labels found
> in the common (or shared) label files.
>
> If a specific label appears in more than one property file, it is
> because the label is being redefined. If you find a duplicate label that
> doesn't change anything, then that is probably an oversight. The label
> should be removed from the application-specific property file.
>
> If a specific label appears in more than one property file because it is
> redefining a label in a shared property file, then the best thing to do
> is add the missing language to the label in the application-specific
> property file.
>
> In the EcommerceYourShoppingCartEmpty label example, it probably appears
> in more than one file so that there won't be an inter-application
> dependency. In other words, having that label present in
> OrderUiLabels.xml eliminates the need for the Order Manager component to
> load/use the ECommerceUiLabels.xml file. I'm only guessing here -
> sometimes it is hard to tell what the original intention was.
>
> The bottom line is, it is better to add translations to property files
> than it is to delete labels. Deleting duplicate labels makes sense at
> first glance, but problems could come up if there was a specific reason
> the duplication was needed.
>
> -Adrian
>
>
> Bruno Busco wrote:
> > 2008/3/3, Adrian Crum <ad...@hlmksw.com>:
> >> Bruno Busco wrote:
> >>> Hi,
> >>> while testing ecommerce application i have found that selecting the
> >> ITalian
> >>> language, some labels are displayed still in english.
> >>> I was convinced that this was because of a missing translation but the
> >>> reason was a little different:
> >>>
> >>> Some labels are defined in more than one resource file. For example
> >>> "CommonQuickAdd" is both in EcommerceUiLabels.xml and in
> >>> CommonUiLabels.xmlfiles.
> >>> But while the CommonUiLabels.xml is complete, in the
> >>> EcommerceUiLabels.xmlfile there is no italian label.
> >>> So what I think that could happen is that OFBiz tries to have an IT
> >> string
> >>> from the EcommerceUiLabels.xml file (the first one), this is not found
> >> and
> >>> so it falls back to what is specified in (
> locale.properties.fallback=en)
> >>> BEFORE checking if the IT string is present in other resource files.
> >>>
> >>> I tryed to delete the incomplete <property key="CommonQuickAdd"> from
> >> the
> >>> EcommerceUiLabels.xml and now the italian string is correctly
> displayed
> >>> (because no fallback).
> >>> Also defining (locale.properties.fallback=it) it works because now,
> even
> >> the
> >>> CommonUiLabels.xml is looked for an italian string.
> >>>
> >>> I see four options for me to solve the problem:
> >>> 1) Add all italian strings to EcommerceUiLabels.xml even if they are
> >> already
> >>> present in CommonUiLabels.xml (I don't like because of redundancy)
> >>> 2) Remove all the Common*** labels from EcommerceUiLabels.xml (any
> >>> drawbacks?)
> >>> 3) Change to (locale.properties.fallback=it)
> >>
> >> #3 will generate "resource not found" errors. In effect you would be
> >> saying "If you can't find the IT label, then fall back to the IT
> label."
> >>
> >>
> >> -Adrian
> >>
> >
> > OK. I have removed all Common* labels that are defined in
>
> > CommonUiLabels.xmlfile from all the other files and it seems to work
>
> > now.
> > But this is not enough because for instance
> EcommerceYourShoppingCartEmpty
> > label is present both in ECommerceUiLabels.xml AND in OrderUiLabels.xml.
> > Should I remove the occurrence of this label from OrderUiLabels.xml ?
> > In other words what is the naming convention to be observed?
> > Could I follow the rule that all the labels that starts with AppName
> must be
> > only defined in the AppNameUiLabels.xml file?
> >
> > Bruno
> >
>

Re: Multiple UiLabels definitions

Posted by Adrian Crum <ad...@hlmksw.com>.
The best approach to follow will be easy to see if you understand how 
the UI labels system works.

The basic concept of the multiple UI label property files is this: start 
off with the most generic, most often used labels, then build upon that 
with application-specific labels. The CommonUiLabels.xml file contains 
labels common to all components. The EcommerceUiLabels.xml file contains 
labels specific to the eCommerce component. Doing things this way 
reduces redundancy and it allows an application to redefine labels found 
in the common (or shared) label files.

If a specific label appears in more than one property file, it is 
because the label is being redefined. If you find a duplicate label that 
doesn't change anything, then that is probably an oversight. The label 
should be removed from the application-specific property file.

If a specific label appears in more than one property file because it is 
redefining a label in a shared property file, then the best thing to do 
is add the missing language to the label in the application-specific 
property file.

In the EcommerceYourShoppingCartEmpty label example, it probably appears 
in more than one file so that there won't be an inter-application 
dependency. In other words, having that label present in 
OrderUiLabels.xml eliminates the need for the Order Manager component to 
load/use the ECommerceUiLabels.xml file. I'm only guessing here - 
sometimes it is hard to tell what the original intention was.

The bottom line is, it is better to add translations to property files 
than it is to delete labels. Deleting duplicate labels makes sense at 
first glance, but problems could come up if there was a specific reason 
the duplication was needed.

-Adrian

Bruno Busco wrote:
> 2008/3/3, Adrian Crum <ad...@hlmksw.com>:
>> Bruno Busco wrote:
>>> Hi,
>>> while testing ecommerce application i have found that selecting the
>> ITalian
>>> language, some labels are displayed still in english.
>>> I was convinced that this was because of a missing translation but the
>>> reason was a little different:
>>>
>>> Some labels are defined in more than one resource file. For example
>>> "CommonQuickAdd" is both in EcommerceUiLabels.xml and in
>>> CommonUiLabels.xmlfiles.
>>> But while the CommonUiLabels.xml is complete, in the
>>> EcommerceUiLabels.xmlfile there is no italian label.
>>> So what I think that could happen is that OFBiz tries to have an IT
>> string
>>> from the EcommerceUiLabels.xml file (the first one), this is not found
>> and
>>> so it falls back to what is specified in (locale.properties.fallback=en)
>>> BEFORE checking if the IT string is present in other resource files.
>>>
>>> I tryed to delete the incomplete <property key="CommonQuickAdd"> from
>> the
>>> EcommerceUiLabels.xml and now the italian string is correctly displayed
>>> (because no fallback).
>>> Also defining (locale.properties.fallback=it) it works because now, even
>> the
>>> CommonUiLabels.xml is looked for an italian string.
>>>
>>> I see four options for me to solve the problem:
>>> 1) Add all italian strings to EcommerceUiLabels.xml even if they are
>> already
>>> present in CommonUiLabels.xml (I don't like because of redundancy)
>>> 2) Remove all the Common*** labels from EcommerceUiLabels.xml (any
>>> drawbacks?)
>>> 3) Change to (locale.properties.fallback=it)
>>
>> #3 will generate "resource not found" errors. In effect you would be
>> saying "If you can't find the IT label, then fall back to the IT label."
>>
>>
>> -Adrian
>>
> 
> OK. I have removed all Common* labels that are defined in
> CommonUiLabels.xmlfile from all the other files and it seems to work
> now.
> But this is not enough because for instance EcommerceYourShoppingCartEmpty
> label is present both in ECommerceUiLabels.xml AND in OrderUiLabels.xml.
> Should I remove the occurrence of this label from OrderUiLabels.xml ?
> In other words what is the naming convention to be observed?
> Could I follow the rule that all the labels that starts with AppName must be
> only defined in the AppNameUiLabels.xml file?
> 
> Bruno
> 

Re: Multiple UiLabels definitions

Posted by Bruno Busco <br...@gmail.com>.
2008/3/3, Adrian Crum <ad...@hlmksw.com>:
>
> Bruno Busco wrote:
> > Hi,
> > while testing ecommerce application i have found that selecting the
> ITalian
> > language, some labels are displayed still in english.
> > I was convinced that this was because of a missing translation but the
> > reason was a little different:
> >
> > Some labels are defined in more than one resource file. For example
> > "CommonQuickAdd" is both in EcommerceUiLabels.xml and in
> > CommonUiLabels.xmlfiles.
> > But while the CommonUiLabels.xml is complete, in the
>
> > EcommerceUiLabels.xmlfile there is no italian label.
>
> >
> > So what I think that could happen is that OFBiz tries to have an IT
> string
> > from the EcommerceUiLabels.xml file (the first one), this is not found
> and
> > so it falls back to what is specified in (locale.properties.fallback=en)
> > BEFORE checking if the IT string is present in other resource files.
> >
> > I tryed to delete the incomplete <property key="CommonQuickAdd"> from
> the
> > EcommerceUiLabels.xml and now the italian string is correctly displayed
> > (because no fallback).
> > Also defining (locale.properties.fallback=it) it works because now, even
> the
> > CommonUiLabels.xml is looked for an italian string.
> >
> > I see four options for me to solve the problem:
> > 1) Add all italian strings to EcommerceUiLabels.xml even if they are
> already
> > present in CommonUiLabels.xml (I don't like because of redundancy)
> > 2) Remove all the Common*** labels from EcommerceUiLabels.xml (any
> > drawbacks?)
> > 3) Change to (locale.properties.fallback=it)
>
>
> #3 will generate "resource not found" errors. In effect you would be
> saying "If you can't find the IT label, then fall back to the IT label."
>
>
> -Adrian
>

OK. I have removed all Common* labels that are defined in
CommonUiLabels.xmlfile from all the other files and it seems to work
now.
But this is not enough because for instance EcommerceYourShoppingCartEmpty
label is present both in ECommerceUiLabels.xml AND in OrderUiLabels.xml.
Should I remove the occurrence of this label from OrderUiLabels.xml ?
In other words what is the naming convention to be observed?
Could I follow the rule that all the labels that starts with AppName must be
only defined in the AppNameUiLabels.xml file?

Bruno

Re: Multiple UiLabels definitions

Posted by Adrian Crum <ad...@hlmksw.com>.
Bruno Busco wrote:
> Hi,
> while testing ecommerce application i have found that selecting the ITalian
> language, some labels are displayed still in english.
> I was convinced that this was because of a missing translation but the
> reason was a little different:
> 
> Some labels are defined in more than one resource file. For example
> "CommonQuickAdd" is both in EcommerceUiLabels.xml and in
> CommonUiLabels.xmlfiles.
> But while the CommonUiLabels.xml is complete, in the
> EcommerceUiLabels.xmlfile there is no italian label.
> 
> So what I think that could happen is that OFBiz tries to have an IT string
> from the EcommerceUiLabels.xml file (the first one), this is not found and
> so it falls back to what is specified in (locale.properties.fallback=en)
> BEFORE checking if the IT string is present in other resource files.
> 
> I tryed to delete the incomplete <property key="CommonQuickAdd"> from the
> EcommerceUiLabels.xml and now the italian string is correctly displayed
> (because no fallback).
> Also defining (locale.properties.fallback=it) it works because now, even the
> CommonUiLabels.xml is looked for an italian string.
> 
> I see four options for me to solve the problem:
> 1) Add all italian strings to EcommerceUiLabels.xml even if they are already
> present in CommonUiLabels.xml (I don't like because of redundancy)
> 2) Remove all the Common*** labels from EcommerceUiLabels.xml (any
> drawbacks?)
> 3) Change to (locale.properties.fallback=it)

#3 will generate "resource not found" errors. In effect you would be 
saying "If you can't find the IT label, then fall back to the IT label."

-Adrian

Re: Multiple UiLabels definitions

Posted by Jacques Le Roux <ja...@les7arts.com>.
From: "Bruno Busco" <br...@gmail.com>
> Hi,
> while testing ecommerce application i have found that selecting the ITalian
> language, some labels are displayed still in english.
> I was convinced that this was because of a missing translation but the
> reason was a little different:
>
> Some labels are defined in more than one resource file. For example
> "CommonQuickAdd" is both in EcommerceUiLabels.xml and in
> CommonUiLabels.xmlfiles.
> But while the CommonUiLabels.xml is complete, in the
> EcommerceUiLabels.xmlfile there is no italian label.
>
> So what I think that could happen is that OFBiz tries to have an IT string
> from the EcommerceUiLabels.xml file (the first one), this is not found and
> so it falls back to what is specified in (locale.properties.fallback=en)
> BEFORE checking if the IT string is present in other resource files.
>
> I tryed to delete the incomplete <property key="CommonQuickAdd"> from the
> EcommerceUiLabels.xml and now the italian string is correctly displayed
> (because no fallback).

It seems to be that it's an opportunity to remove duplicates from higher files (EcommerceUiLabels is higher in in the stack than 
CommonUiLabels). Of course this is more work (than 3. for instance) but it will ends with a cleaner OFBiz. An algo could certainly 
be used
So generalisation of your point 2 has my preferences, I can see no drawbacks

Jacques

> Also defining (locale.properties.fallback=it) it works because now, even the
> CommonUiLabels.xml is looked for an italian string.
>
> I see four options for me to solve the problem:
> 1) Add all italian strings to EcommerceUiLabels.xml even if they are already
> present in CommonUiLabels.xml (I don't like because of redundancy)
> 2) Remove all the Common*** labels from EcommerceUiLabels.xml (any
> drawbacks?)
> 3) Change to (locale.properties.fallback=it)
> 4) Change the way OFBiz scans for the locale strings in such a way that it
> first merges all the files and THEN looks for the desired localization and
> THEN if not found falls to the fallback (unluckly i am not able)
>
> Any idea about this?
>