# messages.properties
#
# /*******************************************************************************
# * Copyright (c) 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 API and implementation
# *******************************************************************************/

MapVPPage.Viz=Karteseinstellungen


MapVPPage.bgc=&Background Color
MapVPPage.fgc=&Foreground Color
MapVPPage.fgrvzeroc=&Zero Relative Value Color
MapVPPage.bc=&Borders Color
MapVPPage.drawpolyborders=&Polygongrenzen zeichnen
MapVPPage.multicolordisplay=&Mehrfarbenanzeige aktivieren
MapVPPage.ScolorWeight=&S Color Weight
MapVPPage.EcolorWeight=&E Color Weight
MapVPPage.IcolorWeight=&I Color Weight
MapVPPage.RcolorWeight=&R Color Weight
MapVPPage.logscale=Logarithmische Skalierung benutzen
MapVPPage.gainf=Zunahme &Faktor
MapVPPage.gsf=&GUI Scaling Factor
MapVPPage.xt=Initiale &X Translation
MapVPPage.yt=Initiale &Y Translation
MapVPPage.zrsf=&Zoom Ruler Scaling Factor
MapVPPage.iss=Initiale &Skalierungsauswahl ({0} - {1})
MapVPPage.numErr=Das Feld ist keine g\u00fcltige Nummer.

GFactor.negErr=Der Zuwachs-Faktor muss gr\u00f6\u00dfer als 0.0 sein
GUIScale.negErr=Die GUI-Skalierungsfaktor muss gr\u00f6\u00dfer als 0.0 sein
ZRScale.negErr=Die Zoom-Ma\u00dfstab-Skalierungsfaktor muss gr\u00f6\u00dfer sein als 0,0
