Freemarker的国际化

来源:互联网 发布:网络13邯大主教楼视频 编辑:程序博客网 时间:2024/05/16 06:08
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
 
原创粉丝点击