You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by sh...@apache.org on 2006/02/08 14:15:00 UTC
svn commit: r375955 - in /portals/jetspeed-2/trunk: applications/j2-admin/
applications/j2-admin/src/java/org/apache/jetspeed/portlets/registration/
applications/j2-admin/src/webapp/WEB-INF/
applications/j2-admin/src/webapp/WEB-INF/view/userreg/ applic...
Author: shinsuke
Date: Wed Feb 8 05:14:56 2006
New Revision: 375955
URL: http://svn.apache.org/viewcvs?rev=375955&view=rev
Log:
template fallback mechanism for email on User Registration and Forgotten Password portlet
Added:
portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/userreg/email/
portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/userreg/email/forgottenPasswdEmail.vm
- copied unchanged from r375113, portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/userreg/forgottenPasswdEmail.vm
portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/userreg/email/html/
portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/userreg/email/html/en/
portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/userreg/email/html/en/forgottenPasswdEmail.vm
- copied unchanged from r375113, portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/userreg/forgottenPasswdEmail_en.vm
portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/userreg/email/html/en/userRegistrationEmail.vm
- copied unchanged from r375113, portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/userreg/userRegistrationEmail_en.vm
portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/userreg/email/html/ja/
portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/userreg/email/html/ja/forgottenPasswdEmail.vm
portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/userreg/email/html/ja/userRegistrationEmail.vm
portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/userreg/email/userRegistrationEmail.vm
- copied unchanged from r375113, portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/userreg/userRegistrationEmail.vm
Removed:
portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/userreg/forgottenPasswdEmail.vm
portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/userreg/forgottenPasswdEmail_en.vm
portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/userreg/userRegistrationEmail.vm
portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/userreg/userRegistrationEmail_en.vm
Modified:
portals/jetspeed-2/trunk/applications/j2-admin/project.xml
portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/registration/ForgottenPasswordPortlet.java
portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/registration/UserRegistrationPortlet.java
portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/portlet.xml
portals/jetspeed-2/trunk/layout-portlets/src/webapp/WEB-INF/portlet.xml
Modified: portals/jetspeed-2/trunk/applications/j2-admin/project.xml
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/project.xml?rev=375955&r1=375954&r2=375955&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/project.xml (original)
+++ portals/jetspeed-2/trunk/applications/j2-admin/project.xml Wed Feb 8 05:14:56 2006
@@ -84,6 +84,14 @@
<war.bundle>true</war.bundle>
</properties>
</dependency>
+ <dependency>
+ <id>org.apache.portals.jetspeed-2:jetspeed-locator</id>
+ <version>${jetspeed.version}</version>
+ <type>jar</type>
+ <properties>
+ <war.bundle>true</war.bundle>
+ </properties>
+ </dependency>
<!-- Portals Bridges -->
<dependency>
Modified: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/registration/ForgottenPasswordPortlet.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/registration/ForgottenPasswordPortlet.java?rev=375955&r1=375954&r2=375955&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/registration/ForgottenPasswordPortlet.java (original)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/registration/ForgottenPasswordPortlet.java Wed Feb 8 05:14:56 2006
@@ -15,7 +15,7 @@
*/
package org.apache.jetspeed.portlets.registration;
-import java.io.File;
+import java.io.FileNotFoundException;
import java.io.IOException;
import java.security.Principal;
import java.util.ArrayList;
@@ -40,8 +40,14 @@
import javax.portlet.RenderResponse;
import org.apache.jetspeed.CommonPortletServices;
+import org.apache.jetspeed.PortalReservedParameters;
import org.apache.jetspeed.administration.AdministrationEmailException;
import org.apache.jetspeed.administration.PortalAdministration;
+import org.apache.jetspeed.locator.JetspeedTemplateLocator;
+import org.apache.jetspeed.locator.LocatorDescriptor;
+import org.apache.jetspeed.locator.TemplateDescriptor;
+import org.apache.jetspeed.locator.TemplateLocatorException;
+import org.apache.jetspeed.request.RequestContext;
import org.apache.jetspeed.security.PasswordCredential;
import org.apache.jetspeed.security.SecurityException;
import org.apache.jetspeed.security.User;
@@ -60,7 +66,6 @@
*/
public class ForgottenPasswordPortlet extends AbstractVelocityMessagingPortlet
{
-
private PortalAdministration admin;
private UserManager userManager;
@@ -90,13 +95,21 @@
private static final String IP_RETURN_URL = "returnURL";
- private static final String IP_TEMPLATE = "emailTemplate";
+ private static final String IP_TEMPLATE_LOCATION = "emailTemplateLocation";
+
+ private static final String IP_TEMPLATE_NAME = "emailTemplateName";
// Resource Bundle
private static final String RB_EMAIL_SUBJECT = "email.subject.forgotten.password";
+ private static final String PATH_SEPARATOR = "/";
+
/** email template to use for merging */
- private String template;
+ private String templateLocation;
+
+ private String templateName;
+
+ private JetspeedTemplateLocator templateLocator;
/** servlet path of the return url to be printed and href'd in email template */
private String returnUrlPath;
@@ -121,12 +134,31 @@
this.returnUrlPath = config.getInitParameter(IP_RETURN_URL);
this.redirectPath = config.getInitParameter(IP_REDIRECT_PATH);
- this.template = config.getInitParameter(IP_TEMPLATE);
-
- List l = new ArrayList();
- l.add(config.getInitParameter(IP_TEMPLATE));
- String appRoot = "root";
+ this.templateLocation = config.getInitParameter(IP_TEMPLATE_LOCATION);
+ if (templateLocation == null)
+ {
+ templateLocation = "/WEB-INF/view/userreg/";
+ }
+ templateLocation = getPortletContext().getRealPath(templateLocation);
+ this.templateName = config.getInitParameter(IP_TEMPLATE_NAME);
+ if (templateName == null)
+ {
+ templateName = "forgottenPasswdEmail.vm";
+ }
+ ArrayList roots = new ArrayList(1);
+ roots.add(templateLocation);
+
+ try
+ {
+ templateLocator = new JetspeedTemplateLocator(roots, "email", getPortletContext().getRealPath("/"));
+ templateLocator.start();
+ }
+ catch (FileNotFoundException e)
+ {
+ throw new PortletException("Could not start the template locator.", e);
+ }
+
}
@@ -267,44 +299,7 @@
userAttributes.put(CTX_NEW_PASSWORD, newPassword);
userAttributes.put(CTX_USER_NAME, userName);
-
-/* this code is my first attempt to get things working with a template locator... it's not going to work given the way things are partitioned in the jetspeed
-
-
- TemplateLocator templateLocator;
-
- templateLocator = (TemplateLocator) Jetspeed.getComponentManager().getComponent("TemplateLocator");
-
- List l = new ArrayList();
- String appRoot = "/WEB-INF/view/userreg/";
- templateLocator = (TemplateLocator) getPortletContext().getAttribute("TemplateLocator");
-
- LocatorDescriptor ld = templateLocator.createLocatorDescriptor(null);
- RequestContext requestContext = (RequestContext) request.getAttribute(PortalReservedParameters.REQUEST_CONTEXT_ATTRIBUTE);
-
- CapabilityMap capabilityMap = requestContext.getCapabilityMap();
- ld.setMediaType(capabilityMap.getPreferredMediaType().getName());
-
- //Locale locale = requestContext.getLocale();
- ld.setCountry(locale.getCountry());
- ld.setLanguage(locale.getLanguage());
-
- TemplateDescriptor td = templateLocator.locateTemplate( ld);
-
- this.template = td.getAbsolutePath();
-*/
-
- String language = locale.getLanguage();
- String templ = this.template;
- int period = templ.lastIndexOf(".");
- if (period > 0)
- {
- String fixedTempl = templ.substring(0, period) + "_" + language + "." + templ.substring(period + 1);
- if (new File(getPortletContext().getRealPath(fixedTempl)).exists())
- {
- templ = fixedTempl;
- }
- }
+ String templ = getTemplatePath(request, response);
if (templ == null)
{
@@ -415,6 +410,34 @@
List errors = new LinkedList();
errors.add(msg);
return errors;
+ }
+
+ protected String getTemplatePath(ActionRequest request, ActionResponse response)
+ {
+ if (templateLocator == null)
+ {
+ return templateLocation + PATH_SEPARATOR + templateName;
+ }
+
+ RequestContext requestContext = (RequestContext) request
+ .getAttribute(PortalReservedParameters.REQUEST_CONTEXT_ATTRIBUTE);
+ Locale locale = request.getLocale();
+
+ try
+ {
+ LocatorDescriptor locator = templateLocator.createLocatorDescriptor("email");
+ locator.setName(templateName);
+ locator.setMediaType(requestContext.getMediaType());
+ locator.setLanguage(locale.getLanguage());
+ locator.setCountry(locale.getCountry());
+ TemplateDescriptor template = templateLocator.locateTemplate(locator);
+
+ return template.getAppRelativePath();
+ }
+ catch (TemplateLocatorException e)
+ {
+ return templateLocation + PATH_SEPARATOR + templateName;
+ }
}
}
Modified: portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/registration/UserRegistrationPortlet.java
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/registration/UserRegistrationPortlet.java?rev=375955&r1=375954&r2=375955&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/registration/UserRegistrationPortlet.java (original)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/registration/UserRegistrationPortlet.java Wed Feb 8 05:14:56 2006
@@ -16,6 +16,7 @@
package org.apache.jetspeed.portlets.registration;
import java.io.File;
+import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
@@ -38,8 +39,14 @@
import javax.portlet.RenderResponse;
import org.apache.jetspeed.CommonPortletServices;
+import org.apache.jetspeed.PortalReservedParameters;
import org.apache.jetspeed.administration.AdministrationEmailException;
import org.apache.jetspeed.administration.PortalAdministration;
+import org.apache.jetspeed.locator.JetspeedTemplateLocator;
+import org.apache.jetspeed.locator.LocatorDescriptor;
+import org.apache.jetspeed.locator.TemplateDescriptor;
+import org.apache.jetspeed.locator.TemplateLocatorException;
+import org.apache.jetspeed.request.RequestContext;
import org.apache.jetspeed.security.SecurityException;
import org.apache.jetspeed.security.User;
import org.apache.jetspeed.security.UserManager;
@@ -77,7 +84,9 @@
private static final String IP_GROUPS = "groups"; // comma separated
- private static final String IP_EMAIL_TEMPLATE = "emailTemplate";
+ private static final String IP_TEMPLATE_LOCATION = "emailTemplateLocation";
+
+ private static final String IP_TEMPLATE_NAME = "emailTemplateName";
private static final String IP_RULES_NAMES = "rulesNames";
@@ -112,10 +121,16 @@
// Resource Bundle
private static final String RB_EMAIL_SUBJECT = "email.subject.registration";
+
+ private static final String PATH_SEPARATOR = "/";
/** email template to use for merging */
- private String emailTemplate;
+ private String templateLocation;
+ private String templateName;
+
+ private JetspeedTemplateLocator templateLocator;
+
/** localized emailSubject */
private String emailSubject = null;
@@ -174,8 +189,31 @@
rules.put(names.get(ix), values.get(ix));
}
- this.emailTemplate = config.getInitParameter(IP_EMAIL_TEMPLATE);
+ this.templateLocation = config.getInitParameter(IP_TEMPLATE_LOCATION);
+ if (templateLocation == null)
+ {
+ templateLocation = "/WEB-INF/view/userreg/";
+ }
+ templateLocation = getPortletContext().getRealPath(templateLocation);
+ this.templateName = config.getInitParameter(IP_TEMPLATE_NAME);
+ if (templateName == null)
+ {
+ templateName = "userRegistrationEmail.vm";
+ }
+
+ ArrayList roots = new ArrayList(1);
+ roots.add(templateLocation);
+ try
+ {
+ templateLocator = new JetspeedTemplateLocator(roots, "email", getPortletContext().getRealPath("/"));
+ templateLocator.start();
+ }
+ catch (FileNotFoundException e)
+ {
+ throw new PortletException("Could not start the template locator.", e);
+ }
+
// user attributes ?
this.optionForceEmailsToBeSystemUnique = Boolean.valueOf(
@@ -627,21 +665,7 @@
userInfo.put(CTX_RETURN_URL, generateReturnURL(actionRequest,
actionResponse, urlGUID));
- Locale locale = actionRequest.getLocale();
-
- String language = locale.getLanguage();
- String templ = this.emailTemplate;
- int period = templ.lastIndexOf(".");
- if (period > 0)
- {
- String fixedTempl = templ.substring(0, period) + "_"
- + language + "." + templ.substring(period + 1);
- if (new File(getPortletContext().getRealPath(fixedTempl))
- .exists())
- {
- this.emailTemplate = fixedTempl;
- }
- }
+ String templ = getTemplatePath(actionRequest, actionResponse);
if (templ == null) { throw new Exception(
"email template not available"); }
@@ -730,5 +754,33 @@
{
return admin.getPortalURL(request, response, this.redirectPath);
}
+
+ protected String getTemplatePath(ActionRequest request, ActionResponse response)
+ {
+ if (templateLocator == null)
+ {
+ return templateLocation + PATH_SEPARATOR + templateName;
+ }
+
+ RequestContext requestContext = (RequestContext) request
+ .getAttribute(PortalReservedParameters.REQUEST_CONTEXT_ATTRIBUTE);
+ Locale locale = request.getLocale();
+
+ try
+ {
+ LocatorDescriptor locator = templateLocator.createLocatorDescriptor("email");
+ locator.setName(templateName);
+ locator.setMediaType(requestContext.getMediaType());
+ locator.setLanguage(locale.getLanguage());
+ locator.setCountry(locale.getCountry());
+ TemplateDescriptor template = templateLocator.locateTemplate(locator);
+
+ return template.getAppRelativePath();
+ }
+ catch (TemplateLocatorException e)
+ {
+ return templateLocation + PATH_SEPARATOR + templateName;
+ }
+ }
}
Modified: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/portlet.xml
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/portlet.xml?rev=375955&r1=375954&r2=375955&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/portlet.xml (original)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/portlet.xml Wed Feb 8 05:14:56 2006
@@ -877,11 +877,16 @@
<name>ViewPage</name>
<value>/WEB-INF/view/userreg/forgottenPasswd.vm</value>
</init-param>
- <init-param>
- <description>This parameter sets the template used to send the Email for Forgotten password</description>
- <name>emailTemplate</name>
- <value>/WEB-INF/view/userreg/forgottenPasswdEmail.vm</value>
- </init-param>
+ <init-param>
+ <description>This parameter sets the template used to send the Email for Forgotten password</description>
+ <name>emailTemplateLocation</name>
+ <value>/WEB-INF/view/userreg/</value>
+ </init-param>
+ <init-param>
+ <description>This parameter sets the template used to send the Email for Forgotten password</description>
+ <name>emailTemplateName</name>
+ <value>forgottenPasswdEmail.vm</value>
+ </init-param>
<init-param>
<description>This parameter sets the url to which folks will return after they receive an email</description>
<name>returnURL</name>
@@ -977,10 +982,15 @@
<init-param>
<description>This is the template in which you setup an email to be sent after user exists</description>
- <name>emailTemplate</name>
- <value>/WEB-INF/view/userreg/userRegistrationEmail.vm</value>
+ <name>emailTemplateLocation</name>
+ <value>/WEB-INF/view/userreg/</value>
</init-param>
+ <init-param>
+ <description>This is the template in which you setup an email to be sent after user exists</description>
+ <name>emailTemplateName</name>
+ <value>userRegistrationEmail.vm</value>
+ </init-param>
<portlet-name>UserRegistrationPortlet</portlet-name>
Added: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/userreg/email/html/ja/forgottenPasswdEmail.vm
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/userreg/email/html/ja/forgottenPasswdEmail.vm?rev=375955&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/userreg/email/html/ja/forgottenPasswdEmail.vm (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/userreg/email/html/ja/forgottenPasswdEmail.vm Wed Feb 8 05:14:56 2006
@@ -0,0 +1,15 @@
+ããã«ã¡ã¯ã$!{map.get("user.name.family")} $!{map.get("user.name.given")} ãã
+
+ãå©ç¨ã®ã¢ã«ã¦ã³ãã«é¢ããæ°è¦ãã¹ã¯ã¼ãä½æä¾é ¼ãåãä»ãã¾ããã
+ã¢ã«ã¦ã³ãã¦ã¼ã¶ã¼å: $!{map.get("username")}
+æ°è¦ãã¹ã¯ã¼ã: $!{map.get("password")}
+æ°è¦ãã¹ã¯ã¼ããæå¹ã«ããããã«ã¯ã以ä¸ã®ãªã³ã¯ãã¯ãªãã¯ãã¦ãã ããã
+$!{map.get("returnURL")}
+ãããè¬ã£ã¦ãã®ã¡ã¼ã«ãåãåã£ãå ´åãããã¹ã¯ã¼ããæ´æ°ããããªãå ´åã¯ã
+ä¸ã®ãªã³ã¯ãã¯ãªãã¯ããªãã§ãã ãããã¯ãªãã¯ããªããã°ããå©ç¨ã®ã¢ã«ã¦ã³ãã§
+ç¾å¨ã®ãã¹ã¯ã¼ããä¿æããã¾ãã
+
+以ä¸ããããããé¡ããããã¾ãã
+
+Jetspeed ãã¼ã
+
Added: portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/userreg/email/html/ja/userRegistrationEmail.vm
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/userreg/email/html/ja/userRegistrationEmail.vm?rev=375955&view=auto
==============================================================================
--- portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/userreg/email/html/ja/userRegistrationEmail.vm (added)
+++ portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/userreg/email/html/ja/userRegistrationEmail.vm Wed Feb 8 05:14:56 2006
@@ -0,0 +1,16 @@
+ããã«ã¡ã¯ã$!{map.get("user.name.family")} $!{map.get("user.name.given")} ãã
+
+Jetspeed ã¸ãããã!
+ç»é²ãã¦ããã ããããã¨ããããã¾ããJetspeed 㯠JSR 168 ã«åæ ¼ãã
+å¼·åãªã³ã³ãã¼ãã³ããã¼ã¹ã®ãã¼ã¿ã«ã³ã³ããã·ã¹ãã ã§ãã
+
+ã¦ã¼ã¶ã¼å: $!{map.get("user.name")}
+ãã¹ã¯ã¼ã: $!{map.get("password")}
+
+ãã¹ã¯ã¼ãã¯ããã°ã¤ã³ãã¦å¤æ´ã§ãã¾ãã
+以ä¸ã®ãªã³ã¯ã§ãã°ã¤ã³ãã¦ãã ããã
+$!{map.get("returnURL")}
+
+以ä¸ããããããé¡ããããã¾ãã
+
+Jetspeed ãã¼ã
Modified: portals/jetspeed-2/trunk/layout-portlets/src/webapp/WEB-INF/portlet.xml
URL: http://svn.apache.org/viewcvs/portals/jetspeed-2/trunk/layout-portlets/src/webapp/WEB-INF/portlet.xml?rev=375955&r1=375954&r2=375955&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/layout-portlets/src/webapp/WEB-INF/portlet.xml (original)
+++ portals/jetspeed-2/trunk/layout-portlets/src/webapp/WEB-INF/portlet.xml Wed Feb 8 05:14:56 2006
@@ -20,6 +20,8 @@
<portlet-name>VelocityOneColumn</portlet-name>
<display-name>One Column Layout Using Velocity</display-name>
<display-name xml:lang="ja">Velocityãå©ç¨ãã 1 åã¬ã¤ã¢ã¦ã</display-name>
+ <display-name xml:lang="zh">使ç¨Velocityçååå¸å±</display-name>
+ <display-name xml:lang="zh_TW">使ç¨Velocityçå®åä½å±</display-name>
<init-param>
<name>ViewPage</name>
<value>columns</value>
@@ -59,6 +61,8 @@
<portlet-name>VelocityOneColumnTable</portlet-name>
<display-name>One Column Layout Using Velocity And Tables</display-name>
<display-name xml:lang="ja">Velocity ã¨ãã¼ãã«ãå©ç¨ãã 1 åã¬ã¤ã¢ã¦ã</display-name>
+ <display-name xml:lang="zh">使ç¨Velocityè¡¨æ ¼çååå¸å±</display-name>
+ <display-name xml:lang="zh_TW">使ç¨Velocityè¡¨æ ¼çå®åä½å±</display-name>
<init-param>
<name>ViewPage</name>
<value>tcolumns</value>
@@ -98,6 +102,8 @@
<portlet-name>VelocityTwoColumns</portlet-name>
<display-name>Two Columns Layout Using Velocity</display-name>
<display-name xml:lang="ja">Velocity ãå©ç¨ãã 2 åã¬ã¤ã¢ã¦ã</display-name>
+ <display-name xml:lang="zh">使ç¨Velocityçååå¸å±</display-name>
+ <display-name xml:lang="zh_TW">使ç¨Velocityçéåä½å±</display-name>
<init-param>
<name>ViewPage</name>
<value>columns</value>
@@ -137,6 +143,8 @@
<portlet-name>VelocityTwoColumnsSmallLeft</portlet-name>
<display-name>Two Columns with a small Left column for navigation controls using Velocity</display-name>
<display-name xml:lang="ja">Velocity ãå©ç¨ããå·¦å´ã«ããã²ã¼ã·ã§ã³ã³ã³ããã¼ã«ç¨ã®å°ããªåãæ㤠2 å</display-name>
+ <display-name xml:lang="zh">使ç¨Velocityï¼å¯¼èªæ è¾çªçååå¸å±</display-name>
+ <display-name xml:lang="zh_TW">使ç¨Velocityï¼å°èªæ¬è¼çªçéåä½å±</display-name>
<init-param>
<name>ViewPage</name>
<value>columns</value>
@@ -177,6 +185,8 @@
<portlet-name>VelocityThreeColumns</portlet-name>
<display-name>Three Columns Layout Using Velocity</display-name>
<display-name xml:lang="ja">Velocity ãå©ç¨ãã 3 åã¬ã¤ã¢ã¦ã</display-name>
+ <display-name xml:lang="zh">使ç¨Velocityç3åå¸å±</display-name>
+ <display-name xml:lang="zh_TW">使ç¨Velocityç3åä½å±</display-name>
<init-param>
<name>ViewPage</name>
<value>columns</value>
@@ -216,6 +226,8 @@
<portlet-name>VelocityThreeColumnsTable</portlet-name>
<display-name>Three Columns Layout Using Velocity And Tables</display-name>
<display-name xml:lang="ja">Velocity ã¨ãã¼ãã«ãå©ç¨ãã 3 åã¬ã¤ã¢ã¦ã</display-name>
+ <display-name xml:lang="zh">使ç¨Velocityè¡¨æ ¼ç3åå¸å±</display-name>
+ <display-name xml:lang="zh_TW">使ç¨Velocityè¡¨æ ¼ç3åä½å±</display-name>
<init-param>
<name>ViewPage</name>
<value>tcolumns</value>
@@ -255,6 +267,8 @@
<portlet-name>VelocityOneColumnNoActions</portlet-name>
<display-name>One Column Layout Using Velocity with No Page Actions allowed</display-name>
<display-name xml:lang="ja">ãã¼ã¸ã¢ã¯ã·ã§ã³ã®ãªã Velocity ãå©ç¨ãã 1 åã¬ã¤ã¢ã¦ã</display-name>
+ <display-name xml:lang="zh">没æ页é¢ç¶æã使ç¨Velocityçååå¸å±</display-name>
+ <display-name xml:lang="zh_TW">æ²æé é¢çæ
ã使ç¨Velocityçå®åä½å±</display-name>
<init-param>
<name>ViewPage</name>
<value>columns</value>
@@ -292,6 +306,8 @@
<portlet-name>VelocityTwoColumnsNoActions</portlet-name>
<display-name>Two Columns Layout Using Velocity with No Page Actions allowed</display-name>
<display-name xml:lang="ja">ãã¼ã¸ã¢ã¯ã·ã§ã³ã®ãªã Velocity ãå©ç¨ãã 2 åã¬ã¤ã¢ã¦ã</display-name>
+ <display-name xml:lang="zh">没æ页é¢ç¶æã使ç¨Velocityçååå¸å±</display-name>
+ <display-name xml:lang="zh_TW">æ²æé é¢çæ
ã使ç¨Velocityçéåä½å±</display-name>
<init-param>
<name>ViewPage</name>
<value>columns</value>
@@ -329,6 +345,8 @@
<portlet-name>VelocityThreeColumnsNoActions</portlet-name>
<display-name>Three Columns Layout Using Velocity with No Actions allowed</display-name>
<display-name xml:lang="ja">ãã¼ã¸ã¢ã¯ã·ã§ã³ã®ãªã Velocity ãå©ç¨ãã 3 åã¬ã¤ã¢ã¦ã</display-name>
+ <display-name xml:lang="zh">没æ页é¢ç¶æã使ç¨Velocityç3åå¸å±</display-name>
+ <display-name xml:lang="zh_TW">æ²æé é¢çæ
ã使ç¨Velocityç3åä½å±</display-name>
<init-param>
<name>ViewPage</name>
<value>columns</value>
@@ -365,6 +383,8 @@
<portlet-name>VelocityTwoColumns2575NoActions</portlet-name>
<display-name>Two Columns Layout Using Velocity with No Page Actions allowed</display-name>
<display-name xml:lang="ja">ãã¼ã¸ã¢ã¯ã·ã§ã³ã®ãªã Velocity ãå©ç¨ãã 2 åã¬ã¤ã¢ã¦ã</display-name>
+ <display-name xml:lang="zh">没æ页é¢ç¶æã使ç¨Velocityçååå¸å±</display-name>
+ <display-name xml:lang="zh_TW">æ²æé é¢çæ
ã使ç¨Velocityçéåä½å±</display-name>
<init-param>
<name>ViewPage</name>
<value>columns</value>
@@ -402,6 +422,8 @@
<portlet-name>VelocityTwoColumns2575</portlet-name>
<display-name>25/75 Two Columns Layout Using Velocity</display-name>
<display-name xml:lang="ja">Velocity ãå©ç¨ãã 25/75 ã® 2 åã¬ã¤ã¢ã¦ã</display-name>
+ <display-name xml:lang="zh">使ç¨Velocityçååå¸å±</display-name>
+ <display-name xml:lang="zh_TW">使ç¨Velocityçéåä½å±</display-name>
<init-param>
<name>ViewPage</name>
<value>columns</value>
@@ -441,6 +463,8 @@
<portlet-name>VelocityTwoColumnsSmallLeftNoActions</portlet-name>
<display-name>Two Columns with a small Left column for navigation controls using Velocity and No Actions</display-name>
<display-name xml:lang="ja">ã¢ã¯ã·ã§ã³ã®ãªã Velocity ãå©ç¨ããå·¦å´ã«ããã²ã¼ã·ã§ã³ã³ã³ããã¼ã«ç¨ã®å°ããªåãæ㤠2 å</display-name>
+ <display-name xml:lang="zh">没æ页é¢ç¶æã使ç¨Velocityï¼å¯¼èªæ è¾çªçååå¸å±</display-name>
+ <display-name xml:lang="zh_TW">æ²æé é¢çæ
ã使ç¨Velocityï¼å°èªæ¬è¼çªçéåä½å±</display-name>
<init-param>
<name>ViewPage</name>
<value>columns</value>
@@ -478,6 +502,8 @@
<portlet-name>FrameLayoutPortlet</portlet-name>
<display-name>Frame Layout Portlet</display-name>
<display-name xml:lang="ja">ãã¬ã¼ã ã¬ã¤ã¢ã¦ããã¼ãã¬ãã</display-name>
+ <display-name xml:lang="zh">æ¡æ¶å¸å±Portlet</display-name>
+ <display-name xml:lang="zh_TW">æ¡æ¶ä½å±Portlet</display-name>
<init-param>
<name>ViewPage</name>
<value>frames</value>
@@ -515,6 +541,8 @@
<portlet-name>VelocityTwoColumnsTable</portlet-name>
<display-name>Two Columns Layout Using Velocity And Tables</display-name>
<display-name xml:lang="ja">Velocity ã¨ãã¼ãã«ãå©ç¨ãã 2 åã¬ã¤ã¢ã¦ã</display-name>
+ <display-name xml:lang="zh">使ç¨Velocityè¡¨æ ¼çååå¸å±</display-name>
+ <display-name xml:lang="zh_TW">使ç¨Velocityè¡¨æ ¼çéåä½å±</display-name>
<init-param>
<name>ViewPage</name>
<value>tcolumns</value>
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org