<?php
/*******************************************************************************
 * Copyright (c) 2008 Eclipse Foundation 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:
 *    Paul Colton (Aptana)- initial API and implementation
 *    Eclipse Foundation
 *    254432 - Provide bugzilla link to report problems with en-US or translations
*******************************************************************************/

?>
<div>
<br /><center>
	<a target="_blank" href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Babel&component=Server&bug_file_loc=<?= $_SERVER['SCRIPT_NAME'] ?>">Report errors or enhancements for server</a>&nbsp;|&nbsp;
	<a target="_blank" href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Babel&component=EnglishStrings&bug_file_loc=URL_TO_THE_STRING&short_desc=Problem%20with%20KEY_NAME&comment=elaborate_here">Report errors for English strings</a>&nbsp;|&nbsp;
	<a href="https://dev.eclipse.org/mailman/listinfo/babel-translators">Discuss translations on translators mailing list</a>
</center><br />
</div>
<div id="footer">
<ul id="footernav">
<li class="first"><a href="/">Home</a></li>
<li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li>
<li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li>
</ul>
<p>Copyright &copy; <?=date("Y");?> The Eclipse Foundation. All Rights Reserved</p>
</div></body></html>