我有三个页面,有三个不同的标题标题。
第1页标题标题名称第一页:您好:您好
第2页标题标题名称:第二页:您好:您好
第3页标题标题名称第3页:您好:您好
哪个更好,实施和最佳实践明智:
在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
然后在jsp
中每个页面的标题标签内第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>
第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>
第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
在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
然后在jsp中每个页面的标题标签内:
第1页:
<title><s:text name="tab.title.page.one"/></title>
第2页:
<title><s:text name="tab.title.page.two"/></title>
第3页:
<title><s:text name="tab.title.page.three"/></title>
我的合作开发者辩称,Hello
,Hi
,:
可以重复使用。但它只是静态文本。它没有变化。哪个更好用于实现,编码标准,性能方面(LOL)?谢谢!
答案 0 :(得分:2)
以下是我对完全i18n应用程序的体验。 您不应该尽可能多地为相同的值定义不同的键。
考虑您要为user name
定义标签。
你可以这样做
lable.username=User Name
OR
lable.inputform.username=User Name
lable.registeration.form.username=User Name
lable.activate.form.username=User Name
第一种方法要好得多,因为你在资源包中做得更少。 UserName
在整个应用程序中仅为User Name
,如果您想要更改它,那么一个更改就足够了。
请考虑大量资源包,难以维护并需要更多内存。资源包将很快变得巨大:)
我还建议不要通过添加键来构建句子:
例如
lable.please+ lable.add + lable.your + lable.username
将其设为:
form.message= Please add your user name
它使你的jsp或动作非常复杂,你不会获得很多。
所以我普遍同意你的观点,但是你的大学方法应该考虑可重复使用的价值!
答案 1 :(得分:2)
几个想法太长,不适合评论:
I18N冒号没有任何意义:它会改变吗?不太可能。如果可能,请考虑使用自定义标记/等。包装视图级静态文本。
在密钥本身中使用非I18N文本有点奇怪,例如,使用.greeting
代替.hello
。
page.number.one
似乎不必要地冗长,而是page.one
或page1
。或者不是直接将其固定到选项卡,因为您可能希望将其重新用于实际页面标题或标题,只需page1.title
。
Nutshell:我完全可以重用,但IMO属性文件对于您展示的很多内容来说都是错误的。使用自定义标记或实用程序方法来访问需要更改的实际属性。
(我实际上很喜欢在I18N数据库中保留这样的内容而不是属性文件;他们使用简单的前端更容易处理,并且使用适当的缓存同样快。)