I have three pages with three different tab titles.
Page 1 tab title name: Page One : Hello : Hi
Page 2 tab title name: Page Two : Hello : Hi
Page 3 tab title name: Page Three : Hello : Hi
Which is better to do, implementation and best practice wise:
Inside global.properties
tab.title.page.number.one = Page One
tab.title.page.number.two = Page Two
tab.title.page.number.three = Page Three
tab.title.colon = :
tab.title.hello = Hello
tab.title.hi = Hi
Then inside the title tag for each page in jsp
Page 1:
<title> <s:text name="tab.title.page.number.one"/> <s:text name="tab.title.colon"/> <s:text name="tab.title.hello"/> <s:text name="tab.title.colon"/> <s:text name="tab.title.hi"/> </title>
Page 2:
<title> <s:text name="tab.title.page.number.two"/> <s:text name="tab.title.colon"/> <s:text name="tab.title.hello"/> <s:text name="tab.title.colon"/> <s:text name="tab.title.hi"/> </title>
Page 3:
<title> <s:text name="tab.title.page.number.three"/> <s:text name="tab.title.colon"/> <s:text name="tab.title.hello"/> <s:text name="tab.title.colon"/> <s:text name="tab.title.hi"/> </title>
OR
Inside global.properties
tab.title.page.one = Page One : Hello : Hi
tab.title.page.two = Page Two : Hello : Hi
tab.title.page.three = Page Three : Hello : Hi
Then inside the title tag for each page in jsp:
Page 1:
<title><s:text name="tab.title.page.one"/></title>
Page 2:
<title><s:text name="tab.title.page.two"/></title>
Page 3:
<title><s:text name="tab.title.page.three"/></title>
My co-developer argues so that the Hello
, Hi
, :
are reusable. But it's only static text. It's not changing. Which is better to use implementation, coding standard, performance-wise(LOL)? Thanks!
Here is my experience for a fully i18n application. You should not define different keys for same values as much as you can.
Consider you want to define a label for user name
.
You can do is as
lable.username=User Name
OR
lable.inputform.username=User Name
lable.registeration.form.username=User Name
lable.activate.form.username=User Name
The first approach is much better as you do less in resource bundle. UserName
is only User Name
in whole application, if you want to change it is quite logical that one change should be enough.
Please consider that huge resource bundle,is harder to maintain and needs more memory. Resource bundle will become huge in no time :)
I also recommend not to build sentences by adding keys:
For example
lable.please+ lable.add + lable.your + lable.username
Make it as:
form.message= Please add your user name
It make your jsp or action very complicated, and you will not gain a lot.
So I generally agree with you, but your college approach should be consider for reusable values!