# Copyright (c) 2019 Christian W. Damus and others.
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License 2.0
# which accompanies this distribution, and is available at
# https://www.eclipse.org/legal/epl-2.0/
# 
# SPDX-License-Identifier: EPL-2.0
#
# Contributors:
# Christian W. Damus - initial API and implementation

ValidationServiceImpl_moreProblems=Additional problems are shown on individual form fields that are not rolled up here.
ValidationServiceImpl_limitNegative=Negative diagnostic propagation limit: {0}
ValidationServiceImpl_limitUnknown=Unsupported propagation limit type: {0}
