###############################################################################
# Copyright (c) 2001, 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
#     Jens Lukowski/Innoopract - initial renaming/restructuring
#     
###############################################################################
A_model's_id_can_not_be_nu_EXC_=A model's id can not be null
Program_Error__ModelManage_EXC_=Program Error: ModelManagerImpl::saveModel. Model should be in the cache
Original_Error__UI_=Original Error:
ModelPlugin.0=Structured Builder
StructuredDocumentBuilder.0=Updating builders
Text_Change_UI_=Text Change
###############################################################################
Unkown_internal_scanner_er_ERROR_=Unkown internal scanner error
Internal_error__unknown_st_ERROR_=Internal error: unknown state
Error__could_not_match_inp_ERROR_=Error: could not match input
Error__pushback_value_was__ERROR_=Error: pushback value was too large
An_I/O_error_occured_while_EXC_=An I/O error occured while scanning :
3concat=File not found : \"{0}\"
5concat=Error opening file \"{0}\"
ul_____(template)_UI_=ul     (template)
<ul>_n__<li>_Item_one_</li_UI_=<ul>\n  <li> Item one </li>\n  <li> Item two </li>\n</ul>\n
dl_____(template)_UI_=dl     (template)
<dl>_n__<dt>_First_definit_UI_=<dl>\n  <dt> First definition  <dd>  First explanation\n  <dt> Second definition <dd> Second explanation\n</dl>\n
table_____(template)_UI_=table     (template)
<table_border>_n__<tr>_n___UI_=<table border>\n  <tr>\n    <th>Column 1 Heading</th>\n    <th>Column 2 Heading</th>\n  </tr>\n  <tr>\n    <td>Row 1: Col 1</td>\n    <td>Row 1: Col 2</td>\n  </tr>\n</table>\n
ol_____(template)_UI_=ol     (template)
<ol>_n__<li>_Item_one_</li_UI_=<ol>\n  <li> Item one </li>\n  <li> Item two </li>\n</ol>\n
html____(template)_UI_=html    (template)
<html>_n<head>_n<title>Ins_UI_=<html>\n<head>\n<title>Insert title here</title>\n</head>\n<body>\n<|c>\n</body>\n</html>
script_____(commented)_UI_=script     (commented)
style_____(commented)_UI_=style     (commented)
img_____(map)_UI=img     (map)
Usage___java_HTMLTokenizer_EXC_=Usage : java HTMLTokenizer <inputfile>
## on the following line, just translate: "place title here" and "place content here"
__>_n_t_t<TITLE><|c>place__UI_=\">\n\t\t<TITLE><|c>place title here</TITLE>\n\t</HEAD>\n\t<BODY>\n\t\tplace content here\n\t</BODY>\n</HTML>
Flatmodel_constructor_doesn__t_know_how_to_deal_with_non-string_4=Flatmodel constructor doesn\'t know how to deal with non-string
unexpected_ModelManager_Impl_1=unexpected ModelManager Impl
continuous_1=continuous
paged_2=paged
visual_3=visual
aural_4=aural
tactile_5=tactile
grid_6=grid
bitmap_7=bitmap
interactive_8=interactive
static_9=static
all_10=all
Cleaning_up_element_{0}=Cleaning up element \"{0}\"
Uppercasing_attribute_name_{0}=Uppercasing attribute name \"{0}\"
Lowercasing_attribute_name_{0}=Lowercasing attribute name \"{0}\"
Uppercasing_tag_name_{0}=Uppercasing tag name \"{0}\"
Lowercasing_tag_name_{0}=Lowercasing tag name \"{0}\"
Inserting_missing_end_tag_{0}=Inserting missing end tag \"{0}\"
Inserting_missing_start_tag_{0}=Inserting missing start tag \"{0}\"
Inserting_default_attribute_value_{0}=Inserting default attribute value \"{0}\"
Quoting_attribute_value_{0}=Quoting attribute value \"{0}\"
Formatting_start_tag_of_element_{0}=Formatting start tag of element \"{0}\"
Formatting_end_tag_of_element_{0}=Formatting end tag of element \"{0}\"
Formatting_element_{0}=Formatting element \"{0}\"
Formatting_indentation_before_element_{0}=Formatting indentation before element \"{0}\"
Formatting_indentation_after_element_{0}=Formatting indentation after element \"{0}\"
Formatting_element_{0}=Formatting element \"{0}\"
