# about.ini
# contains information about a feature
# java.io.Properties file (ISO 8859-1 with "\" escapes)
# "%key" are externalized strings defined in about.properties
# This file does not need to be translated.

# Property "aboutText" contains blurb for "About" dialog (translated)
# Maximum 15 lines and 75 characters per line.
aboutText=%blurb

# Property "windowImage" contains path to window icon (16x16)
windowImage=eclipse.gif

# Property "featureImage" contains path to feature image (32x32)
featureImage=eclipse32.gif

# Property "aboutImage" contains path to product image.
# Full-sized product image: no larger than 500x330 pixels
# Half-sized product image: no larger than 250x330 pixels
# A full-sized product image is shown without the "aboutText" blurb.
# A half-sized product image is shown with the "aboutText" blurb beside it.
aboutImage=eclipse_lg.gif

# Property "appName" contains name of the application (translated)
appName=%appName

# Property "welcomePage" contains path to welcome page (special XML-based format)
# ($nl$/ prefix to permit locale-specific translations of entire file)
welcomePage=$nl$/welcome.xml

# Property "welcomePerspective" contains the id of the perspective in which the
# welcome page is to be opened.
# optional

