Freemarker的国际化

FreeMarkerTest:
 1  import  java.io.BufferedWriter;
 2  import  java.io.File;
 3  import  java.io.FileOutputStream;
 4  import  java.io.OutputStreamWriter;
 5  import  java.io.Writer;
 6  import  java.util.HashMap;
 7  import  java.util.Locale;
 8 
 9  import  freemarker.template.Configuration;
10  import  freemarker.template.Template;
11 
12  public   class  FreeMarkerTest {
13 
14       public   static   void  main(String[] args) {
15          FreeMarkerTest test  =   new  FreeMarkerTest();
16          test.getFile();
17          test.getFile(Locale.JAPAN);
18      }
19      
20       public   void  getFile() {
21          Configuration freemarkerCfg  =   new  Configuration();
22          freemarkerCfg.setClassForTemplateLoading( this .getClass(), " / " );
23          freemarkerCfg.setEncoding(Locale.getDefault(), " UTF-8 " );
24          Template template;
25           try  {
26              template  =  freemarkerCfg.getTemplate( " t.ftl " );
27              template.setEncoding( " UTF-8 " );
28              File htmlFile  =   new  File( " t.html " );
29              Writer out  =   new  BufferedWriter( new  OutputStreamWriter(
30                       new  FileOutputStream(htmlFile),  " UTF-8 " ));
31              HashMap propMap  =   new  HashMap();
32              propMap.put( " user " " hermit " );
33              template.process(propMap, out);
34              out.flush();
35          }  catch  (Exception e) {
36              e.printStackTrace();
37          }
38      }
39      
40       public   void  getFile(Locale loc) {
41          Configuration freemarkerCfg  =   new  Configuration();
42          freemarkerCfg.setClassForTemplateLoading( this .getClass(), " / " );
43          freemarkerCfg.setEncoding(Locale.getDefault(), " UTF-8 " );
44          Template template;
45           try  {
46              template  =  freemarkerCfg.getTemplate( " t.ftl " ,loc);
47              template.setEncoding( " UTF-8 " );
48              File htmlFile  =   new  File( " t_ " + loc.getLanguage() + " _ " + loc.getCountry() + " .html " );
49              Writer out  =   new  BufferedWriter( new  OutputStreamWriter(
50                       new  FileOutputStream(htmlFile),  " UTF-8 " ));
51              HashMap propMap  =   new  HashMap();
52              propMap.put( " user " " hermit " );
53              template.process(propMap, out);
54              out.flush();
55          }  catch  (Exception e) {
56              e.printStackTrace();
57          }
58      }
59 
60  }
61 


t.ftl
< html >
< head >
  
< title > Welcome! </< span>title>
  
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
</< span>head>
<body>
  
<h1>Welcome ${user}!</< span>h1>
</< span>body>
</< span>html>  


t_zh_CN.ftl
< html >
< head >
  
< title > 欢迎! </< span>title>
  
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
</< span>head>
<body>
  
<h1>你好 ${user}!</< span>h1>
</< span>body>
</< span>html>  


freemarker支持多语言国际化,只要把模板名称安装资源文件的写法就可以了,也就是name_语言_国家地区.ftl

如果找不到对应的语言,就会用默认语言的模板。

转帖地址: http://www.blogjava.net/vip01/archive/2007/05/08/115959.html
 

猜你喜欢

转载自blog.csdn.net/chinakink/article/details/2156849
今日推荐