/*
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
 *
 * Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
 *
 * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
 * Other names may be trademarks of their respective owners.
 *
 * The contents of this file are subject to the terms of either the GNU General
 * Public License Version 2 only ("GPL") or the Common Development and Distribution
 * License("CDDL") (collectively, the "License"). You may not use this file except in
 * compliance with the License. You can obtain a copy of the License at
 * https://netbeans.org/cddl-gplv2.html or nbbuild/licenses/CDDL-GPL-2-CP. See the
 * License for the specific language governing permissions and limitations under the
 * License.  When distributing the software, include this License Header Notice in
 * each file and include the License file at nbbuild/licenses/CDDL-GPL-2-CP.  Oracle
 * designates this particular file as subject to the "Classpath" exception as
 * provided by Oracle in the GPL Version 2 section of the License file that
 * accompanied this code. If applicable, add the following below the License Header,
 * with the fields enclosed by brackets [] replaced by your own identifying
 * information: "Portions Copyrighted [year] [name of copyright owner]"
 * 
 * Contributor(s):
 * 
 * The Original Software is NetBeans. The Initial Developer of the Original Software
 * is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun Microsystems, Inc. All
 * Rights Reserved.
 * 
 * If you wish your version of this file to be governed by only the CDDL or only the
 * GPL Version 2, indicate your decision by adding "[Contributor] elects to include
 * this software in this distribution under the [CDDL or GPL Version 2] license." If
 * you do not indicate a single choice of license, a recipient has the option to
 * distribute your version of this file under either the CDDL, the GPL Version 2 or
 * to extend the choice of license to its licensees as provided above. However, if
 * you add GPL Version 2 code and therefore, elected the GPL Version 2 license, then
 * the option applies only if the new code is made subject to such option by the
 * copyright holder.
 */

var BUNDLED_SERVERS_GROUP_NAME = "\u041f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0435&nbsp;\u0441\u0435\u0440\u0432\u0435\u0440\u044b";
                                                   
var NETBEANS_DOWNLOAD_BUNDLES_MSG = "\u0421\u0431\u043e\u0440\u043a\u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u044b NetBeans";
var NETBEANS_DOWNLOAD_BUNDLES_COMMUNITY_MSG = "\u041f\u0435\u0440\u0435\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e\u043c \u0441\u0431\u043e\u0440\u043a\u0438 \u0441\u0440\u0435\u0434\u044b NetBeans";
var NETBEANS_PACKS_MSG 		  = "\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435&nbsp;\u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438";

var JDK_DOWNLOAD_LINK    = "http://java.sun.com/javase/downloads/index.jsp";
var NBJDK_DOWNLOAD_LINK  = "http://java.sun.com/javase/downloads/widget/jdk_netbeans.jsp";

var JAVA_COM_LINK        = "http://java.com/";

var JDK_NOTE_ALL      = "\u0414\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u0431\u043e\u0440\u043e\u043a NetBeans \u0434\u043b\u044f \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 PHP \u0438 C/C++ \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c Java 6. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c <a href=\"{0}\">\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 Java \u0441 java.com</a>.<br><br>\u0414\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u0431\u043e\u0440\u043e\u043a \u0434\u043b\u044f \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 Java SE, JavaFX, Java, \u0438 \u0434\u043b\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0432\u0441\u0435\u0445 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c JDK 6. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c <a href=\"{1}\">\u043d\u0430\u0431\u043e\u0440 JDK \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e</a> \u0438\u043b\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 <a href=\"{2}\">\u043d\u0430\u0431\u043e\u0440 JDK \u0432\u043c\u0435\u0441\u0442\u0435 \u0441\u043e \u0441\u0440\u0435\u0434\u043e\u0439 NetBeans \u0434\u043b\u044f \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438\u0439 Java</a>.<br><br>";
//var JDK_NOTE_MACOSX   = "JDK 5.0 is required for installing and running the NetBeans IDE.";
var JDK_NOTE_MACOSX   = 'Для установки и запуска пакетов NetBeans на PHP и C/C++ необходимо наличие Java 6.<br><br>Для  установки и запуска Java SE, Java EE и всех пакетов NetBeans необходимо наличие пакета JDK 6.<br><br>Если вам требуется Java 6 или пакет JDK 6, компания Apple предоставляет собственную версию Java. Для проверки актуальности установленной в системе Mac версии Java используйте команду "Обновление программ" (доступна в меню Apple).';

var FREE_SIZE_MESSAGE  = "\u0411\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e, {0}&nbsp;MB";
var NOT_AVAILABLE_SIZE = "--";

var NOTE_PREFIX    = "\u0417\u0430\u043c\u0435\u0447\u0430\u043d\u0438\u0435: ";
var NOTE_AND_SEP   = "{0} \u0438 {1}";
var NOTE_COMMA_SEP = "{0}, {1}";

var SINGLE_NOT_AVAILABLE_ZIP      = "{0} \u043d\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0432 {1}";
var SINGLE_NOT_AVAILABLE_BUNDLE   = "{0} \u043d\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0434\u043b\u044f {1}";
var MULTIPLE_NOT_AVAILABLE_ZIP    = "{0} \u043d\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0432 {1}";
var MULTIPLE_NOT_AVAILABLE_BUNDLE = "{0} \u043d\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0434\u043b\u044f {1}";

var ZIP_FILES_LIST_NAME             = "\u0410\u0440\u0445\u0438\u0432\u044b Zip";
var MODULE_CLUSTERS_FILES_LIST_NAME = "\u041a\u043b\u0430\u0441\u0442\u0435\u0440\u044b \u043c\u043e\u0434\u0443\u043b\u0435\u0439";

var NOTE_SOLARIS = "\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435: Java ME \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f Windows, Linux \u0438 Mac OS X.";
var NOTE_MACOSX  = "\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435: Java ME \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f Windows, Linux \u0438 Mac OS X.";
var NOTE_ZIP     = "\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435: GlassFish \u0438 Apache Tomcat \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u043e-\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0445 \u0441\u0431\u043e\u0440\u043a\u0430\u0445.";
var NOTE_ALL     = "\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435: \u0422\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438, \u043e\u0442\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0435 \u0441\u0435\u0440\u044b\u043c \u0446\u0432\u0435\u0442\u043e\u043c, \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b.";

var MORE_LANGUAGES    = "\u0414\u0440\u0443\u0433\u0438\u0435 \u044f\u0437\u044b\u043a\u0438...";
var COMMUNITY_MESSAGE = "\u0421\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e NetBeans \u0432\u043d\u0435\u0441\u043b\u043e \u0441\u0432\u043e\u0439 \u0432\u043a\u043b\u0430\u0434 \u0432 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u044b NetBeans \u043d\u0430 \u0442\u0435 \u044f\u0437\u044b\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b \u0441 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b. \u041e\u0431\u044a\u0451\u043c \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0442 \u044f\u0437\u044b\u043a\u0430 \u043a \u044f\u0437\u044b\u043a\u0443, \u0441\u043c. <a href=\"http://wiki.netbeans.org/TFL10nCommunityStatus\">\u0441\u0442\u0430\u0442\u0443\u0441 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u0432 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430</a>. \u041f\u0435\u0440\u0435\u0432\u043e\u0434 \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442\u0441\u044f \u0438 \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0441\u0431\u043e\u0440\u043e\u043a, \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430, \u043f\u043e\u0441\u0435\u0442\u0438\u0442\u0435 <a href=\"http://wiki.netbeans.org/TFLocalizationDevelopmentUC\">\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438 \u043f\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043f\u043b\u0430\u0433\u0438\u043d\u0430 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430</a>.";
var COMMUNITY_CONTRIBUTED_SEP    = " -- \u041f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e\u043c-- " ;
var SUN_SUPPORTED_SEP            = " -- \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 Oracle-- " ;

var NETBEANS_DOWNLOAD_PAGE_TITLE       = "\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0441\u0440\u0435\u0434\u044b NetBeans";
var NETBEANS_DOWNLOAD_PAGE_DESCRIPTION = "\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0441\u0440\u0435\u0434\u044b NetBeans";



var NETBEANS_DOWNLOAD_HEADER = "\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0441\u0440\u0435\u0434\u044b NetBeans {0}";
var DEVELOPMENT_TITLE        = "\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430";
var ARCHIVE_TITLE            = "\u0410\u0440\u0445\u0438\u0432";
var EMAIL_LABEL              = "\u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0430\u044f&nbsp;\u043f\u043e\u0447\u0442\u0430&nbsp;(\u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e):&nbsp;";
var SUBSCRIBE_LABEL          = "\u041f\u043e\u0434\u043f\u0438\u0441\u0430\u0442\u044c\u0441\u044f&nbsp;\u043d\u0430&nbsp;\u043d\u043e\u0432\u043e\u0441\u0442\u0438:";
var MONTHLY_LABEL            = "\u0415\u0436\u0435\u043c\u0435\u0441\u044f\u0447\u043d\u044b\u0435&nbsp;&nbsp;&nbsp;";
var WEEKLY_LABEL             = "\u0415\u0436\u0435\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u044b\u0435";
var CONTACT_LABEL            = "NetBeans&nbsp;\u043c\u043e\u0436\u0435\u0442&nbsp;\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c<br>\u0434\u0430\u043d\u043d\u044b\u0439&nbsp;\u0430\u0434\u0440\u0435\u0441&nbsp;\u0434\u043b\u044f&nbsp;\u0441\u0432\u044f\u0437\u0438&nbsp;\u0441\u043e \u043c\u043d\u043e\u0439";
var LANGUAGE_LABEL           = "\u042f\u0437\u044b\u043a IDE:";
var PLATFORM_LABEL           = "\u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430:";
var PLUGIN_MANAGER_LABEL     = "\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b \u043f\u043e\u0437\u0434\u043d\u0435\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0430 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432 \u0441\u0440\u0435\u0434\u044b (Tools | Plugins).<br><br>";
var JAVATOOLSBUNDLE_LABEL    = "\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c NetBeans IDE \u0442\u0430\u043a\u0436\u0435 \u0432 \u0441\u043e\u0441\u0442\u0430\u0432\u0435 <a href=\"http://java.sun.com/javaee/downloads/index.jsp\">Java EE 5 Tools Bundle</a> \u0438\u043b\u0438 <a href=\"http://download.netbeans.org/netbeans/6.1/mysql_bundle/\">MySQL GlassFish Bundle</a>.";
var SOURCE_BINARY_LABEL      = "\u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u043a\u043e\u0434 \u0438 \u0441\u0431\u043e\u0440\u043a\u0438 NetBeans \u0431\u0435\u0437 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043a\u0430\u043a <a id=\"zip_link\" href=\"{0}\">\u0430\u0440\u0445\u0438\u0432\u044b zip</a>. ";
var BUILD_WIKI_LABEL         = "\u0421\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u0442\u0430\u043a\u0436\u0435 <a href=\"http://wiki.netbeans.org/wiki/view/WorkingWithNetBeansSources\">\u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043f\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044e \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u044b \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430</a> \u0438\u043b\u0438 <a href=\"{0}\">\u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043f\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435</a>.";
var PLATFORM_DEV_LABEL       = "\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0447\u0430\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b NetBeans \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0441\u0431\u043e\u0440\u043a\u0443 NetBeans IDE \u0434\u043b\u044f Java SE. \u0423\u0437\u043d\u0430\u0439\u0442\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u043e <a href=\"{0}\">\u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 NetBeans</a>.";
var PLATFORM_INFO_LINK       = "http://platform.netbeans.org/platform-get.html";

var ARCHIVE_BUILDS_LINK      = "http://services.netbeans.org/downloads/dev.php";
var DEVELOPMENT_BUILDS_LINK  = "http://bits.netbeans.org/download/trunk/nightly/latest/";

// TRANSLATE NOTE: change download*.gif to download*_<locale>.gif
var DOWNLOAD_BUTTON_NORMAL    = "download_ru.gif";
var DOWNLOAD_BUTTON_DISABLED  = "download_d_ru.gif";
var DOWNLOAD_BUTTON_HIGHLIGHT = "download_h_ru.gif";

// DO NOT TRANSLATE
var START_PAGE = "start.html";
var ZIP_PAGE   = "zip.html";

