//------------------------------------------------------------------------------
// 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 = "Да "	

};

