###############################################################################
# Copyright (c) 2003, 2004 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
###############################################################################
Warning__Could_not_write_b_WARN_=IWAE0008W \u8b66\u544a\uff1a\u7121\u6cd5\u5beb\u56de {0}
Stack_trace_of_nested_exce_ERROR_=IWAE0009E \u5de2\u72c0\u7570\u5e38\u72c0\u6cc1\u7684\u5806\u758a\u8ffd\u8e64\uff1a
Enumeration_UI_=Enumeration
Double_UI_=Double
Float_UI_=Float
Long_UI_=Long
Short_UI_=Short
Boolean_UI_=Boolean
Integer_UI_=Integer
Character_UI_=Character
Byte_UI_=Byte
Failed_to_convert_{0}_to_{_ERROR_=IWAE0014E \u7121\u6cd5\u5c07 {0} \u8f49\u63db\u6210 {1}\u3002
DANGLING_HREF_ERROR_=IWAE0001E \u7121\u6cd5\u89e3\u6790 HREF {0}\u3002\u8acb\u6aa2\u67e5\u63cf\u8ff0\u5b50\u6a94\u6848\uff0c\u4e26\u78ba\u5b9a ID \u662f\u5426\u6709\u6548\u3002

ResourceDependencyRegister_ERROR_0=IWAE0002E ResourceSet \u4e0d\u80fd\u662f\u7a7a\u503c\u3002
