//------------------------------------------------------------------------------
// 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 = "Udvid alle afsnit";
this.collapseAllText = "Skjul alle afsnit";
this.backToTopText = "Tilbage til top";

this.expandAllSubSectionsText = "Udvid alle trin";
this.collapseAllSubSectionsText = "Skjul alle trin";

this.toolbar_bookmark = "Sæt bogmærke ved denne side";
this.toolbar_back = "Tilbage";
this.toolbar_forward = "Frem";
this.toolbar_expand_all = "Udvid alle";
this.toolbar_collapse_all = "Skjul alle";
this.toolbar_print = "Udskriv";

this.expandText = "Udvid"
this.collapseText = "Skjul"
this.checkedAltText = "Ja"	

};

