# 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 (not translated)
appName=Eclipse

# 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

# Property "tipsAndTricksHref" contains the Help topic href to a tips and tricks page 
# optional
tipsAndTricksHref=/org.eclipse.platform.doc.user/tips/platform_tips.html

