<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Latest posts for the topic "[v2.1.8][新增功能]語系切換"]]></title>
		<link>https://forum.andowson.com/posts/list/7.page</link>
		<description><![CDATA[Latest messages posted in the topic "[v2.1.8][新增功能]語系切換"]]></description>
		<generator>JForum - http://www.jforum.net</generator>
			<item>
				<title>[v2.1.8][新增功能]語系切換</title>
				<description><![CDATA[ 功能需求：讓匿名訪客不用登入前也可以選擇自己偏好的語言。 
<br>
<br>
設計： 
<br>
1.在header.htm上新增一個超連結到/user/changeLang.page。 
<br>
2.按下/user/changeLang.page時JForum內部呼叫UserAction.java的changeLang()來顯示選擇語言畫面(user_lang.htm)。 
<br>
3.按下送出後JForum呼叫UserAction.java的changeLangDone()來修改UserSession中的語言設定。 
<br>
<br>
參考作法： 
<br>
1.修改WEB-INF/config/urlPattern.properties，增加兩個keys: 
<br>
[code]user.changeLang.0 = 
<br>
user.changeLangDone.0 =[/code] 
<br>
<br>
2.修改WEB-INF/config/templatesMapping.properties，增加一個key: 
<br>
[code]user.changeLang = user_lang.htm[/code] 
<br>
<br>
3.修改templates/default/user_forum.htm，將跟語言無關的欄位刪除，另存新檔為user_lang.htm。 
<br>
<br>
4.修改templates/default/header.htm，加上超連結，例如我選擇在原本登入的後面加上。 
<br>
<br>
5.修改net/jforum/view/forum/UserAction.java，加上以下兩個methods: 
<br>
[code] public void changeLang() 
<br>
 { 
<br>
 int userId = SessionFacade.getUserSession().getUserId(); 
<br>
 UserDAO um = DataAccessDriver.getInstance().newUserDAO(); 
<br>
 User u = um.selectById(userId); 
<br>
 this.context.put("u", u); 
<br>
 this.context.put("action", "changeLangDone"); 
<br>
 this.context.put("pageTitle", I18n.getMessage("UserProfile.profileFor") + " " + u.getUsername()); 
<br>
 this.setTemplateName(TemplateKeys.USER_CHANGE_LANG); 
<br>
 } 
<br>
<br>
 public void changeLangDone() 
<br>
 { 
<br>
 SessionFacade.getUserSession().setLang(request.getParameter("language")); 
<br>
 this.context.put("editDone", true); 
<br>
 this.changeLang(); 
<br>
 }[/code] 
<br>
<br>
6.修改net/jforum/util/preferences/TemplateKeys.java，增加一個key: 
<br>
[code] public static final String USER_CHANGE_LANG = "user.changeLang";[/code] 
<br>
<br>
7.編譯程式 
<br>
<br>
8.重新載入JForum，測試是否正常。 
<br>
<br>
大功告成！]]></description>
				<guid isPermaLink="true">https://forum.andowson.com/posts/preList/223/339.page</guid>
				<link>https://forum.andowson.com/posts/preList/223/339.page</link>
				<pubDate><![CDATA[Sat, 1 Mar 2008 12:16:16]]> GMT</pubDate>
				<author><![CDATA[ andowson]]></author>
			</item>
	</channel>
</rss>