//------------------------------------------------------------------------------
// 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 = "Développer toutes les sections";
this.collapseAllText = "Condenser toutes les sections";
this.backToTopText = "Haut de page";

this.expandAllSubSectionsText = "Développer toutes les étapes";
this.collapseAllSubSectionsText = "Condenser toutes les étapes";

this.toolbar_bookmark = "Marquer cette page";
this.toolbar_back = "Retour";
this.toolbar_forward = "Suivant";
this.toolbar_expand_all = "Développer tout";
this.toolbar_collapse_all = "Réduire tout";
this.toolbar_print = "Imprimer";

this.expandText = "Développer"
this.collapseText = "Réduire"
this.checkedAltText = "Oui"	

};

