/*
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
 * 
 * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
 * 
 * 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.  Sun
 * designates this particular file as subject to the "Classpath" exception as
 * provided by Sun 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.
 */

PLATFORM_LONG_NAMES  [0] = "Windows 2000/XP/Vista";
PLATFORM_SHORT_NAMES [0] = "Windows";
PLATFORM_LONG_NAMES  [1] = "Linux (x86/x64)";
PLATFORM_SHORT_NAMES [1] = "Linux";
PLATFORM_LONG_NAMES  [2] = "Solaris (x86/x64)";
PLATFORM_SHORT_NAMES [2] = "Solaris (x86/x64)";
PLATFORM_LONG_NAMES  [3] = "Solaris (sparc)";
PLATFORM_SHORT_NAMES [3] = "Solaris (sparc)";
PLATFORM_LONG_NAMES  [4] = "Mac OS X";
PLATFORM_SHORT_NAMES [4] = "Mac OS X";
PLATFORM_LONG_NAMES  [5] = "OS \u306b\u4f9d\u5b58\u3057\u306a\u3044 Zip";
PLATFORM_SHORT_NAMES [5] = "OS \u306b\u4f9d\u5b58\u3057\u306a\u3044 Zip";
/*
// Commented since NBI installers are not used for now
// Translate these strings as well (if they can be translated) and leave them commented
PLATFORM_LONG_NAMES  [4] = "Mac OS X (intel)";
PLATFORM_SHORT_NAMES [4] = "Mac OS X";

PLATFORM_LONG_NAMES  [5] = "Mac OS X (powerpc)";
PLATFORM_SHORT_NAMES [5] = "Mac OS X";
*/

BUNDLE_SHORT_NAMES[0] = "Java&nbsp;SE";
BUNDLE_SHORT_NAMES[1] = "Java";
BUNDLE_SHORT_NAMES[2] = "Java";
BUNDLE_SHORT_NAMES[3] = "Ruby";
BUNDLE_SHORT_NAMES[4] = "C/C++";
BUNDLE_SHORT_NAMES[5] = "PHP";
BUNDLE_SHORT_NAMES[6] = "";

BUNDLE_LONG_NAMES[0] = "Java&nbsp;SE";
BUNDLE_LONG_NAMES[1] = "JavaFX";
BUNDLE_LONG_NAMES[2] = "Java";
BUNDLE_LONG_NAMES[3] = "Ruby";
BUNDLE_LONG_NAMES[4] = "C/C++";
BUNDLE_LONG_NAMES[5] = "PHP";
BUNDLE_LONG_NAMES[6] = "\u3059\u3079\u3066";

var RELEASE_NOTES_LINK  = "https://netbeans.org/community/releases/65/relnotes_ja.html";
var INSTALL_NOTES_LINK  = "https://netbeans.org/community/releases/65/install_ja.html";
