#-------------------------------------------------------------------------------
# Copyright (c) 2000, 2007 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 implementation
#-------------------------------------------------------------------------------
# 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=\u0645\u0637\u0628\u0648\u0639\u0627\u062a EPF \u0627\u0644\u0641\u0646\u064a\u0629

featureText=\u0645\u0637\u0628\u0648\u0639\u0627\u062a EPF \u0627\u0644\u0641\u0646\u064a\u0629\n\
\n\
\u0627\u0644\u0646\u0633\u062e\u0629: {1} \n\
\u062a\u0633\u0645\u064a\u0629 \u0627\u0644\u0628\u0646\u0627\u0621: {0}\n\
\n\
(c) \u062d\u0642\u0648\u0642 \u0627\u0644\u0646\u0634\u0631 \u0644\u0634\u0631\u0643\u0627\u0621 Eclipse \u0648\u0622\u062e\u0631\u064a\u0646 2000\u060c 2007.  \u062c\u0645\u064a\u0639 \u0627\u0644\u062d\u0642\u0648\u0642 \u0645\u062d\u0641\u0648\u0638\u0629.\n\
\n
# ==============================================================================
# %%% END OF TRANSLATED PROPERTIES %%%
# The above properties have been shipped for translation.
# ==============================================================================
