###############################################################################
# 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.comment.name=comment
Templates.comment.desc=comment
Templates.ul.name=ul
Templates.ul.desc=ul     (plantilla)
Templates.ul.content=<ul>\n  <li> Elemento uno </li>\n  <li> Elemento dos </li>\n</ul>\n
Templates.dl.name=dl
Templates.dl.desc=dl     (plantilla)
Templates.dl.content=<dl>\n  <dt> Primera definici\u00f3n  <dd> Primera explicaci\u00f3n\n  <dt> Segunda definici\u00f3n  <dd> Segunda explicaci\u00f3n\n</dl>\n
Templates.table.name=table
Templates.table.desc=table     (plantilla)
Templates.table.content=<table border>\n  <tr>\n    <th>Cabecera de columna 1</th>\n    <th>Cabecera de columna 2</th>\n  </tr>\n  <tr>\n    <td>Fila 1: Col 1</td>\n    <td>Fila 1: Col 2</td>\n  </tr>\n</table>\n
Templates.ol.name=ol
Templates.ol.desc=ol     (plantilla)
Templates.ol.content=<ol>\n  <li> Elemento uno </li>\n  <li> Elemento dos </li>\n</ol>\n
Templates.html.name=html
Templates.html.desc=html    (plantilla)
Templates.html.content=<html>\n<head>\n<title>Insertar t\u00edtulo aqu\u00ed</title>\n</head>\n<body>\n${cursor}\n</body>\n</html>
Templates.script.name=script
Templates.script.desc=script     (comentado)
Templates.script.content=<script type=\"${cursor}text/javascript\">\n<!--\n\n//-->\n</script>
Templates.style.name=style
Templates.style.desc=style     (comentado)
Templates.style.content=<style>\n<!--\n${cursor}\n-->\n</style>
Templates.imgmap.name=img
Templates.imgmap.desc=img     (mapa)
