# NLS_MESSAGEFORMAT_VAR

# ==============================================================================
# Do not change the properties between this line and the last line containing:
# %%% END OF TRANSLATED PROPERTIES %%%
# Instead, either redefine an existing property, or create a new property,
# append it to the end of the file, and change the code to use the new name.
# ==============================================================================

# about.properties
# contains externalized strings for about.ini
# java.io.Properties file (ISO 8859-1 with "\" escapes)
# fill-ins are supplied by about.mappings
# This file should be translated.

featureName=Agent Modeling Platform SDK (Incubation)

featureText=Agent Modeling Platform SDK (Incubation)\n\
Version: {featureVersion}\n\
Build id: {0}\n\
\n\
(c) Copyright 2007-2010 Metascape LLC, Copyright 2006-2007 Argonne National Laboratory. Copyright 2009 Other Eclipse contributors. All rights reserved.\n\
\n\
Agent Modeling Platform, including Agent Modeling Framework, Agent eXecution Framework, Agent Graphics and Visualization Framework, and Escape.\n\
\n\
Visit http://www.eclipse.org/amp

# ==============================================================================
# %%% END OF TRANSLATED PROPERTIES %%%
# The above properties have been shipped for translation.
# ==============================================================================
