# 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
# *******************************************************************************/

# Chart Canvas
CC.title=Relativer Wert

# Phase Space
PH.title=Phasenraum

# Time Series and Aggregate Time Series
TS.TIMELABEL=Zeit

# Axis labels
XAXISDEF.title=X-Achse
YAXISDEF.title=Y-Achse

# Context menu entries
ContextMenu.LinearTimeScale=Lineare Skalierung
ContextMenu.LogTimeScale=Log-Skala
ContextMenu.LinearScaling=Lineare Skalierung
ContextMenu.LogScaling=Log-Skala
ContextMenu.ShowLegend=Show Legend
ContextMenu.HideLegend=Legende ausblenden
ContextMenu.Clear=Entfernen

# labels
REPORTVIEW.SELECTREFENCEFOLDER=Referenzordner w\u00e4hlen

