# WizardMessages.properties
#
#/*******************************************************************************
# * Copyright (c) 2006 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
# *******************************************************************************/

# Graph Wizard
NGraphWiz.wizard_title=Neue Grafik
NGraphWiz.page_title=Graph
NGraphWiz.page_description=Neuen STEM Graph in einem Projekt erstellen
NGraphWiz.DC_DESCRIPTION=Graph "{0}"
NGGWiz.DC_DESCRIPTION=Erstellter Graph
NGGWiz.DC_TITLE=Erstellter Graph
NGGWiz.DC_SOURCE=Erstellt


# Graph Generators
GGDC.0=Quelle
GGDC.2=Klasse
GGDC.3=Problem beim Erstellen von Graph-Generator-Instanz
YES=Ja
NO=Nein



# Lattice graph generator
xSize=X-Gr\u00f6\u00dfe
ySize=Y-Gr\u00f6\u00dfe
xSizeUNIT=Einheiten
ySizeUNIT=Einheiten
xSizeTT=Anzahl der Gitter entlang der X-Achse
ySizeTT=Anzahl der Gitter entlang der Y-Achse
useNearestNeighbors=N\u00e4chste Nachbarn
useNearestNeighborsUNIT=
useNearestNeighborsTT=Gitter verbinden mit \u201eN\u00e4chste Nachbarn\u201c-Kanten
useNextNearestNeighbors=N\u00e4chste N\u00e4chste Nachbarn
useNextNearestNeighborsUNIT=
useNextNearestNeighborsTT=Gitter verbinden mithilfe \u201eN\u00e4chste Nachbarn\u201c-Kanten
periodicBoundaries=Periodische Grenzen
periodicBoundariesUNIT=
periodicBoundariesTT=Periodische Grenzen benutzen
area=Fl\u00e4che
areaUNIT=km^2
areaTT=Die Fl\u00e4che (in km ^ 2) eines einzelnen Gitters

#PlateCarree generator
angularStep=Winkelinterval
angularStepUNIT=Grad
angularStepTT=Konstanter Winkelschritt (Ganzzahlig in Grad)

radius=Radius der Kugel
radiusUNIT=km
radiusTT=z.B. Erdradius

#Migration edge generator
location=Ort
migrationRate=Migrationsrate
migrationRateUNIT=Bruchteil der Bev\u00f6lkerung / TP
migrationRateTT=Migrationsrate f\u00fcr die erzeugten Kanten angeben
population=Bev\u00f6lkerung
populationUNIT=
populationTT=Die migrierende Bev\u00f6lkerung

#PajekNet generator
dataFile_net=Pajek Datei
dataFile_netTT=Datei in Pajek Format w\u00e4hlen
area=Standardwert f\u00fcr Gebiet
areaTT=Standardwert f\u00fcr Gebiet der einzelnen Knoten, wenn nicht definiert
areaUNIT=km^2
colArea=Fl\u00e4che
colAreaTT=Feld, dass den Bereich f\u00fcr jeden Knoten definiert. Wenn fehlend wird der Standard-Bereich verwendet. Der Wert muss gr\u00f6\u00dfer als 4 sein, da die ersten vier Spalten vorgegeben sind.
colAreaUNIT=
container=Enth\u00e4lt Ort
containerTT=Knoten angeben, welcher PAJEK Knoten enth\u00e4lt
scalingFactor=Skalierungsfaktor
scalingFactorTT=Vergr\u00f6\u00dferung des PAJEK Koordinaten angeben
scalingFactorUNIT=
fit=in beinhaltende Fl\u00e4che anpassen
fitUNIT=
enforceContainment=Containment-Kanten ziehen von \noutlying Knoten
enforceContainmentTT=
enforceContainmentUNIT=
#Errors
NGGWizErr1=X-Gr\u00f6\u00dfe darf nicht leer sein
NGGWizErr2=Ung\u00fcltiger XSize Wert
NGGWizErr3=Y-Gr\u00f6\u00dfe darf nicht leer sein
NGGWizErr4=Ung\u00fcltiger YSize Wert
NGGWizErr5=Bev\u00f6lkerungsbezeichner fehlt.
NGGWizErr6=Ung\u00fcltige Rate
NGGWizErr7=Rate muss gr\u00f6\u00dfer als 0 sein
NGGWizErr8=Fl\u00e4che erforderlich
NGGWizErr9=Ung\u00fcltiger Bereich
NGGWizErr10=Die gesamte Fl\u00e4che des Graphen zu gro\u00df ist, reduzieren Sie die Gr\u00f6\u00dfe oder Fl\u00e4che
NGGWizErr11=Ung\u00fcltiger Nichtnull Integer Wert
NGGWizErr12=Ung\u00fcltiger Nichtnull Double Wert
NGGWizErr13=Datei kann nicht gefunden werden
NGGWizErr14=Standardwert f\u00fcr Gebiet erforderlich



