#
# /*******************************************************************
#  * Copyright (c) 2006, 2008 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
#  ******************************************************************/

# ====================================================================
# To code developer:
#   Do NOT change the properties between this line and the
#   "%%% END OF TRANSLATED PROPERTIES %%%" line.
#   Make a new property name, append to the end of the file and change
#   the code to use the new property.
# ====================================================================
# ====================================================================
# %%% END OF TRANSLATED PROPERTIES %%%
# ====================================================================

pluginName=STEM \uc790\ub3d9 \uc2e4\ud5d8 \ub3c4\uad6c
providerName=Eclipse.org
AE_View=\uc790\ub3d9\ud654\ub41c \uc2e4\ud5d8

# product name
_UI_Product_Name=STEM

# Common Keys
_UI_STEM=STEM
_UI_Decorators=\uc7a5\uc2dd\uc790\ub4e4
_UI_Experiments=\uc2e4\ud5d8
_UI_Graphs=\uadf8\ub798\ud504
_UI_Identifiables=\uc2dd\ubcc4\uac00\ub2a5\ud568
_UI_Models=\ubaa8\ub378
_UI_Modifiers=\uc218\uc815\uc790
_UI_Predicates=\uc220\uc5b4
_UI_Scenarios=\uc2dc\ub098\ub9ac\uc624
_UI_Sequencers=\uc2dc\ud000\uc11c
_UI_Triggers=\ud2b8\ub9ac\uac70



# Perspectives
_UI_AutomaticExperiment_Perspective=\uc790\ub3d9\ud654\ub41c \uc2e4\ud5d8


_UI_AutomaticExperiment_type=\uc790\ub3d9\ud654\ub41c \uc2e4\ud5d8
_UI_ModifiableParameter_type=\uc218\uc815 \uac00\ub2a5 \ubcc0\uc218
_UI_Unknown_type=\uac1c\uccb4

_UI_Unknown_datatype=\uac12

_UI_AutomaticExperiment_baseScenario_feature=\uae30\ubcf8 \uc2dc\ub098\ub9ac\uc624
_UI_AutomaticExperiment_parameters_feature=\ub9e4\uac1c \ubcc0\uc218
_UI_AutomaticExperiment_errorAnalysisAlgorithm_feature=\uc624\ub958 \ubd84\uc11d \uc54c\uace0\ub9ac\uc998
_UI_AutomaticExperiment_errorFunction_feature=\uc624\ub958 \ud568\uc218
_UI_AutomaticExperiment_tolerance_feature=\ub0b4\uc5f0\uc131
_UI_AutomaticExperiment_referanceDataDir_feature=\ucc38\uc870 \ub370\uc774\ud130 \ub514\ub809\ud1a0\ub9ac
_UI_AutomaticExperiment_maximumNumberOfIterations_feature=\ubc18\ubcf5 \ucd5c\ub300 \uc778\uc6d0
_UI_ModifiableParameter_initialValue_feature=\ucd08\uae30\uac12
_UI_ModifiableParameter_feature_feature=\uae30\ub2a5
_UI_ModifiableParameter_step_feature=\ub2e8\uacc4
_UI_ModifiableParameter_featureName_feature=\uae30\ub2a5 \uc774\ub984
_UI_Unknown_feature=\uc9c0\uc815\ub418\uc9c0 \uc54a\uc74c


_UI_AutomaticexperimentEditor_menu=&Automaticexperiment Editor

_UI_AutomaticexperimentModelWizard_label=\uc790\ub3d9\ud654\ub41c\uc2e4\ud5d8 \ubaa8\ub378
_UI_AutomaticexperimentModelWizard_description=\uc0c8\ub85c\uc6b4 \uc790\ub3d9\ud654\ub41c\uc2e4\ud5d8 \ubaa8\ub378 \ub9cc\ub4e4\uae30

_UI_AutomaticexperimentEditor_label=\uc790\ub3d9\ud654\ub41c\uc2e4\ud5d8 \ubaa8\ub378 \ud3b8\uc9d1\uae30

_UI_AutomaticexperimentEditorFilenameDefaultBase=\ub098\uc758
_UI_AutomaticexperimentEditorFilenameExtensions=\uc790\ub3d9\ud654\ub41c\uc2e4\ud5d8


_UI_ModifiableParameter_lowerBound_feature=\ud558\uc704 \uacbd\uacc4
_UI_ModifiableParameter_upperBound_feature=\uc0c1\uc704 \ubc94\uc704
_UI_ModifiableParameter_decorator_feature=\uc7a5\uc2dd\uc790
_UI_ModifiableParameter_targetURI_feature=\ub300\uc0c1 URI
_UI_AutomaticExperiment_reInit_feature=\ub2e4\uc2dc \ucd08\uae30\ud654
_UI_CreateChild_text={0}
_UI_CreateChild_text2={1} {0}
_UI_CreateChild_text3={1}
_UI_CreateChild_tooltip={1} \uae30\ub2a5 \ud558\uc5d0 \uc0c8 {0} \ub9cc\ub4e4\uae30
_UI_CreateChild_description=\uc120\ud0dd\ud55c {2}\uc758 {1} \uae30\ub2a5\uc5d0 \ub300\ud55c \ud615\uc2dd {0}\uc758 \uc0c8\ub85c\uc6b4 Child\ub97c \ub9cc\ub4ed\ub2c8\ub2e4.
_UI_CreateSibling_description=\ubd80\ubaa8\uc758 \uc120\ud0dd\ub41c {2}\uc5d0\uc11c {1} \uae30\ub2a5\uc5d0 \ub300\ud55c \ud615\uc2dd {0}\uc758 \uc0c8\ub85c\uc6b4 \ud615\uc81c\ub97c \ub9cc\ub4ed\ub2c8\ub2e4.

_UI_PropertyDescriptor_description={1} \uc911 {0}

_UI_GenericAutomaticExperiment_type=\uc77c\ubc18 \uc790\ub3d9\ud654\ub41c \uc2e4\ud5d8
_UI_CreateChild_menu_item=&New Child
_UI_CreateSibling_menu_item=N&  \ud615\uc81c \uc790\ub9e4

_UI_ShowPropertiesView_menu_item=\ud45c\uc2dc \ubc0f \uc18d\uc131\ubcf4\uae30
_UI_RefreshViewer_menu_item=&Refresh

_UI_SelectionPage_label=\uc120\ud0dd

_UI_NoObjectSelected=\uc544\ubb34\uac83\ub3c4 \uc548 \uc120\ud0dd\ud568
_UI_SingleObjectSelected=\uc120\ud0dd\ud55c \uac1d\uccb4 : {0}
_UI_MultiObjectSelected=\uc120\ud0dd\ub41c {0} \uac1d\uccb4

_UI_OpenEditorError_label=\uc624\ud508 \uc5d0\ub514\ud130

_UI_Wizard_category=\uc608\uc81c EMF \ubaa8\ub378 \uc0dd\uc131 \ub9c8\ubc95\uc0ac

_UI_CreateModelError_message=\ud30c\uc77c '{0} "\uc5d0\uc11c \ubb38\uc81c \ubc1c\uc0dd

_UI_Wizard_label=\uc0c8\ub85c\uc6b4

_WARN_FilenameExtension=\ud30c\uc77c \uc774\ub984\uc740 ".{0}"\ub85c \ub05d\ub098\uc57c\ud568.
_WARN_FilenameExtensions=\ud30c\uc77c \uc774\ub984\uc740 \ub2e4\uc74c \ud655\uc7a5\uc790 \uc911 \ud558\ub098\ub97c \uac00\uc838\uc57c\ud568 : {0}

_UI_ModelObject=&Model Object
_UI_XMLEncoding=&XML Encoding
_UI_XMLEncodingChoices=UTF - 8 ASCII UTF - 16 UTF - 16BE UTF - 16LE ISO - 8859 - 1
_UI_Wizard_initial_object_description=\uc0dd\uc131\ud560 \ubaa8\ub378 \uac1c\uccb4 \uc120\ud0dd

_UI_FileConflict_label=\ud30c\uc77c \ucda9\ub3cc
_WARN_FileConflict=\uc800\uc7a5\ub418\uc9c0 \uc54a\uc740 \uc0ac\ud56d\ub4e4\uc774 \ud3b8\uc9d1\uae30 \uc678\ubd80\uc758 \ubcc0\uacbd \uc0ac\ud56d\ub4e4\uacfc \ucda9\ub3cc\ud568. \uc774 \ud3b8\uc9d1\uae30\uc758 \ubcc0\uacbd \uc0ac\ud56d\ub4e4\uc744 \ucde8\uc18c \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?


_UI_Algorithm_type=\uc54c\uace0\ub9ac\uc998
_UI_ErrorFunction_type=\uc624\ub958 \ud568\uc218
_UI_ThresholdErrorFunction_type=\uc784\uacc4\uac12 \uc5d0\ub7ec \ud568\uc218
_UI_ReferenceScenarioDataMap_type=\ucc38\uc870 \uc2dc\ub098\ub9ac\uc624 \ub370\uc774\ud130\uc9c0\ub3c4
_UI_SimpleErrorFunction_type=\uac04\ub2e8\ud55c \uc5d0\ub7ec \ud568\uc218
_UI_ErrorResult_type=\uc624\ub958 \uacb0\uacfc
_UI_AutomaticExperiment_errorFunc_feature=\uc624\ub958 FUNC
_UI_ErrorResult_errorByTimeStep_feature=\uc2dc\uac04 \ub2e8\uacc4\uc5d0\uc11c \uc624\ub958 \ubc1c\uc0dd
_UI_ErrorResult_error_feature=\uc624\ub958
_UI_ErrorResult_referenceByTime_feature=\uc2dc\uac04 \ub300\ube44 \ucc38\uc870
_UI_ErrorResult_modelByTime_feature=\uc2dc\uac04\uc5d0 \ub530\ub978 \ubaa8\ub378
_UI_ErrorResult_validationError_feature=\uc720\ud6a8\uc131 \uac80\uc0ac \uc624\ub958
_UI_AnalysisEditor_menu=&Analysis Editor

_UI_ParentPage_label=\ubd80\ubaa8
_UI_ListPage_label=\ubaa9\ub85d
_UI_TreePage_label=\ub098\ubb34
_UI_TablePage_label=\ud14c\uc774\ube14
_UI_TreeWithColumnsPage_label=\ub098\ubb34\uc640 \uc5f4
_UI_ObjectColumn_label=\uac1c\uccb4
_UI_SelfColumn_label=\uc140\ud504

_UI_AnalysisModelWizard_label=\ubd84\uc11d \ubaa8\ub378
_UI_AnalysisModelWizard_description=\uc0c8\ub85c\uc6b4 \ubd84\uc11d \ubaa8\ub378\uc744 \uc791\uc131

_UI_AnalysisEditor_label=\ubd84\uc11d \ubaa8\ub378 \ud3b8\uc9d1\uae30

_UI_AnalysisEditorFilenameDefaultBase=\ub098\uc758
_UI_AnalysisEditorFilenameExtensions=\ubd84\uc11d


_UI_OptimizerAlgorithm_type=\ucd5c\uc801\ud654 \uc54c\uace0\ub9ac\uc998
