Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring mvc I18n-每个区域设置多个模板或多个区域设置文件_Spring Mvc_Internationalization_Velocity_Tiles2 - Fatal编程技术网

Spring mvc I18n-每个区域设置多个模板或多个区域设置文件

Spring mvc I18n-每个区域设置多个模板或多个区域设置文件,spring-mvc,internationalization,velocity,tiles2,Spring Mvc,Internationalization,Velocity,Tiles2,我正在重新设计一个面向消费者的大型零售网站。想想gap.com 技术堆栈是ApacheTiles、ApacheVelocity和SpringMVC 问题:要正确实现I18N,我应该只为每个语言环境创建多个velocity模板,还是将字符串外部化为属性文件? 使用后一种方法,sort-resourcebundle.getMessage(“website.title”,“en_US”)的velocity模板中会有很多杂乱的内容,而在前面的例子中,我可能会在多个模板中使用重复的逻辑。您不应该使用多个模

我正在重新设计一个面向消费者的大型零售网站。想想gap.com

技术堆栈是ApacheTiles、ApacheVelocity和SpringMVC

问题:要正确实现I18N,我应该只为每个语言环境创建多个velocity模板,还是将字符串外部化为属性文件?
使用后一种方法,sort-resourcebundle.getMessage(“website.title”,“en_US”)的velocity模板中会有很多杂乱的内容,而在前面的例子中,我可能会在多个模板中使用重复的逻辑。

您不应该使用多个模板(每种语言一个)。这将适得其反

此外,还需要定义某种用于翻译文本的包装器。您不希望直接使用区域设置或区域设置标识符(“en_US”),而是需要为会话设置区域设置并使用此对象(可能是隐式的,因此不需要每次调用
getMessage()
,都传递它)

请注意,如果您直接调用
ResourceBundle
class'方法,其中一些方法可能会抛出
MissingResourceException
(这是一种运行时异常,会让事情变得更糟)。你一定要检查一下

顺便说一句,速度定义用于本地化目的。有趣的是,我从未见过有人真正使用它(但老实说,我对速度的经验是相当有限的)