###############################################################################
# Copyright (c) 2014, 2015 1C-Soft LLC 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:
#     Vladimir Piskarev (1C) - initial API and implementation
###############################################################################
# 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.

blurb=Handly Examples (Incubation)\n\
Version: {featureVersion}\n\
\n\
(c) Copyright 1C-Soft LLC and others 2014, 2015.  All rights reserved.\n\
\n\
Handly, a technology project at Eclipse, provides basic building blocks that help developers\n\
create handle-based models similar in design principles to the JDT Java model. The uniform API\n\
makes it possible to develop common IDE components dealing with such models.\n\
\n\
Visit http://www.eclipse.org/handly
