//------------------------------------------------------------------------------
// Copyright (c) 2000, 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 implementation
//------------------------------------------------------------------------------

/* resource files for content page javascript 
 * this file should be localized
*/
ContentPageResource = function() {


this.expandAllText = "展开所有部分";
this.collapseAllText = "折叠所有部分";
this.backToTopText = "回到顶部";

this.expandAllSubSectionsText = "展开所有步骤";
this.collapseAllSubSectionsText = "折叠所有步骤";

this.toolbar_bookmark = "将此页面加入书签";
this.toolbar_back = "后退";
this.toolbar_forward = "前进";
this.toolbar_expand_all = "全部展开";
this.toolbar_collapse_all = "全部折叠";
this.toolbar_print = "打印";

this.expandText = "展开"
this.collapseText = "折叠"
this.checkedAltText = "是"	

};

