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

# Stem Polygon
# Nothing, all common

# Internal Map View
IMView.MRefresh=\u591a\u8fb9\u5f62\u5237\u65b0
IMView.MProp=\u73b0\u5728\u663e\u793a
IMView.Edges=\u8fb9

# Map Canvas context menu messages
MapMenu.Reset=\u91cd\u7f6e\u5730\u56fe
MapMenu.GainFactor=\u589e\u76ca\u56e0\u5b50
MapMenu.Logrithmic_Scaling=\u5bf9\u6570\u7ea7
MapMenu.Gain=Gain
MapMenu.LogScale=Log Scale
MapMenu.LinScale=Linear Scale
MapMenu.Polygon_Borders=\u7ed8\u5236\u591a\u8fb9\u5f62\u8fb9\u6846
MapMenu.Polygon_Centers=\u8fde\u63a5\u591a\u8fb9\u5f62\u4e2d\u5fc3
MapMenu.Reports_Select=\u9009\u62e9\u62a5\u544a
