###############################################################################
# Copyright (c) 2004 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
# 
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
Templates.jspscriptlet.name=Scriplet JSP
Templates.jspscriptlet.desc=Scriplet JSP <%..%>
Templates.jspscriptlet.content=<% ${cursor} %>
Templates.jsphiddencomment.name=Commentaire JSP masqu\u00e9
Templates.jsphiddencomment.desc=Commentaire JSP masqu\u00e9 <%-- --%>
Templates.jsphiddencomment.content=<%-- ${cursor} --%>
Templates.jspdeclaration.name=D\u00e9claration(s) JSP
Templates.jspdeclaration.desc=D\u00e9claration(s) JSP <%!..%>
Templates.jspdeclaration.content=<%! ${cursor} %>
Templates.jspexpression.name=Expression JSP
Templates.jspexpression.desc=Expression JSP <%=..%>
Templates.jspexpression.content=<%= ${cursor} %>
Templates.jspincludedirective.name=Instruction JSP include
Templates.jspincludedirective.desc=Instruction JSP include
Templates.jspincludedirective.content=<%@ include file="${cursor}" %>
Templates.jsppagedirective.name=Instruction JSP page
Templates.jsppagedirective.desc=Instruction JSP page
Templates.jsppagedirective.content=<%@ page contentType="text/html; charset=${encoding}" ${cursor}%>
Templates.jsptaglibdirective.name=Instruction JSP taglib
Templates.jsptaglibdirective.desc=Instruction JSP taglib
Templates.jsptaglibdirective.content=<%@ taglib uri="" prefix="${cursor}" %>
Templates.jspcomment.name=Commentaire JSP
Templates.jspcomment.desc=Commentaire JSP <!-- -->
Templates.jspcomment.content=<!-- ${cursor} -->
