Split Getdown into multiple (Maven) modules.
- core: the main Getdown logic code - tools: code to create digest.txt & patch files - launcher: the standalone launcher/updater app - ant: the Ant task for creating digest.txt files This paves the way for a proper Jigsaw-ification of the Getdown code. I may further factor code out of getdown-launcher and into getdown-core to enable the use-case where an app embeds Getdown completely and does not use the launcher app/UI. That will also make it easier to create a JavaFX UI and retire the old Swing UI. This also moves the obsolete applet code into a separate applet module, which is merely a temporary holding area. It will be deleted in the next commit.
This commit is contained in:
@@ -0,0 +1,180 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>com.threerings</groupId>
|
||||
<artifactId>getdown</artifactId>
|
||||
<version>1.7.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>getdown-launcher</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<name>Getdown Launcher</name>
|
||||
<description>The Getdown app updater/launcher</description>
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>lib-repo</id>
|
||||
<url>file://${basedir}/../lib</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.threerings</groupId>
|
||||
<artifactId>getdown-core</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.threerings</groupId>
|
||||
<artifactId>getdown-tools</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>jregistrykey</groupId>
|
||||
<artifactId>jregistrykey</artifactId>
|
||||
<version>1.0</version>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>com.github.wvengen</groupId>
|
||||
<artifactId>proguard-maven-plugin</artifactId>
|
||||
<version>2.0.14</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>package</phase>
|
||||
<goals><goal>proguard</goal></goals>
|
||||
</execution>
|
||||
</executions>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>net.sf.proguard</groupId>
|
||||
<artifactId>proguard-base</artifactId>
|
||||
<version>6.0.3</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<configuration>
|
||||
<proguardVersion>6.0.3</proguardVersion>
|
||||
<outputDirectory>${project.build.directory}</outputDirectory>
|
||||
<outjar>${project.build.finalName}.jar</outjar>
|
||||
<injar>${project.build.finalName}.jar</injar>
|
||||
<assembly>
|
||||
<inclusions>
|
||||
<inclusion>
|
||||
<groupId>com.threerings</groupId>
|
||||
<artifactId>getdown-core</artifactId>
|
||||
</inclusion>
|
||||
<inclusion>
|
||||
<groupId>com.threerings</groupId>
|
||||
<artifactId>getdown-tools</artifactId>
|
||||
</inclusion>
|
||||
<inclusion>
|
||||
<groupId>com.samskivert</groupId>
|
||||
<artifactId>samskivert</artifactId>
|
||||
<filter>
|
||||
!**/*.java,
|
||||
!**/swing/RuntimeAdjust*,
|
||||
!**/swing/util/ButtonUtil*,
|
||||
!**/util/CalendarUtil*,
|
||||
!**/util/Calendars*,
|
||||
!**/util/Log4JLogger*,
|
||||
!**/util/PrefsConfig*,
|
||||
!**/util/SignalUtil*,
|
||||
com/samskivert/Log.class,
|
||||
**/samskivert/io/**,
|
||||
**/samskivert/swing/**,
|
||||
**/samskivert/text/**,
|
||||
**/samskivert/util/**
|
||||
</filter>
|
||||
</inclusion>
|
||||
<inclusion>
|
||||
<groupId>jregistrykey</groupId>
|
||||
<artifactId>jregistrykey</artifactId>
|
||||
</inclusion>
|
||||
</inclusions>
|
||||
</assembly>
|
||||
<obfuscate>true</obfuscate>
|
||||
<options>
|
||||
<option>-keep public class com.threerings.getdown.** { *; }</option>
|
||||
<option>-keep public class ca.beq.util.win32.registry.** { *; }</option>
|
||||
<option>-keepattributes Exceptions, InnerClasses, Signature</option>
|
||||
</options>
|
||||
<libs>
|
||||
<lib>${rt.jar.path}</lib>
|
||||
</libs>
|
||||
<addMavenDescriptor>false</addMavenDescriptor>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<version>3.1.0</version>
|
||||
<configuration>
|
||||
<archive>
|
||||
<manifest>
|
||||
<mainClass>com.threerings.getdown.launcher.GetdownApp</mainClass>
|
||||
</manifest>
|
||||
<manifestEntries>
|
||||
<Permissions>all-permissions</Permissions>
|
||||
<Application-Name>Getdown</Application-Name>
|
||||
<Codebase>*</Codebase>
|
||||
<Application-Library-Allowable-Codebase>*</Application-Library-Allowable-Codebase>
|
||||
<Caller-Allowable-Codebase>*</Caller-Allowable-Codebase>
|
||||
<Trusted-Library>true</Trusted-Library>
|
||||
</manifestEntries>
|
||||
</archive>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
<profiles>
|
||||
<!-- finagling to find rt.jar -->
|
||||
<profile>
|
||||
<id>non-mac-jre</id>
|
||||
<activation>
|
||||
<file><exists>${java.home}/../lib/rt.jar</exists></file>
|
||||
</activation>
|
||||
<properties>
|
||||
<rt.jar.path>${java.home}/../lib/rt.jar</rt.jar.path>
|
||||
</properties>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>non-mac-jdk</id>
|
||||
<activation>
|
||||
<file><exists>${java.home}/lib/rt.jar</exists></file>
|
||||
</activation>
|
||||
<properties>
|
||||
<rt.jar.path>${java.home}/lib/rt.jar</rt.jar.path>
|
||||
</properties>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>java-9-jdk</id>
|
||||
<activation>
|
||||
<file><exists>${java.home}/jmods/java.base.jmod</exists></file>
|
||||
</activation>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>com.github.wvengen</groupId>
|
||||
<artifactId>proguard-maven-plugin</artifactId>
|
||||
<configuration>
|
||||
<libs>
|
||||
<lib>${java.home}/jmods/java.base.jmod</lib>
|
||||
<lib>${java.home}/jmods/java.desktop.jmod</lib>
|
||||
<lib>${java.home}/jmods/java.logging.jmod</lib>
|
||||
<lib>${java.home}/jmods/jdk.jsobject.jmod</lib>
|
||||
</libs>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
</project>
|
||||
@@ -0,0 +1,100 @@
|
||||
//
|
||||
// Getdown - application installer, patcher and launcher
|
||||
// Copyright (C) 2004-2016 Getdown authors
|
||||
// https://github.com/threerings/getdown/blob/master/LICENSE
|
||||
|
||||
package com.threerings.getdown.launcher;
|
||||
|
||||
import java.awt.Dimension;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
import java.util.MissingResourceException;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
import javax.swing.BorderFactory;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
|
||||
import com.samskivert.swing.GroupLayout;
|
||||
import com.samskivert.swing.Spacer;
|
||||
import com.samskivert.swing.VGroupLayout;
|
||||
import com.samskivert.text.MessageUtil;
|
||||
|
||||
import static com.threerings.getdown.Log.log;
|
||||
|
||||
/**
|
||||
* Displays a confirmation that the user wants to abort installation.
|
||||
*/
|
||||
public class AbortPanel extends JFrame
|
||||
implements ActionListener
|
||||
{
|
||||
public AbortPanel (Getdown getdown, ResourceBundle msgs)
|
||||
{
|
||||
_getdown = getdown;
|
||||
_msgs = msgs;
|
||||
|
||||
setLayout(new VGroupLayout());
|
||||
setResizable(false);
|
||||
setTitle(get("m.abort_title"));
|
||||
|
||||
JLabel message = new JLabel(get("m.abort_confirm"));
|
||||
message.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
|
||||
add(message);
|
||||
add(new Spacer(5, 5));
|
||||
|
||||
JPanel row = GroupLayout.makeButtonBox(GroupLayout.CENTER);
|
||||
JButton button;
|
||||
row.add(button = new JButton(get("m.abort_ok")));
|
||||
button.setActionCommand("ok");
|
||||
button.addActionListener(this);
|
||||
row.add(button = new JButton(get("m.abort_cancel")));
|
||||
button.setActionCommand("cancel");
|
||||
button.addActionListener(this);
|
||||
getRootPane().setDefaultButton(button);
|
||||
add(row);
|
||||
}
|
||||
|
||||
// documentation inherited
|
||||
@Override
|
||||
public Dimension getPreferredSize ()
|
||||
{
|
||||
// this is annoyingly hardcoded, but we can't just force the width
|
||||
// or the JLabel will claim a bogus height thinking it can lay its
|
||||
// text out all on one line which will booch the whole UI's
|
||||
// preferred size
|
||||
return new Dimension(300, 200);
|
||||
}
|
||||
|
||||
// documentation inherited from interface
|
||||
public void actionPerformed (ActionEvent e)
|
||||
{
|
||||
String cmd = e.getActionCommand();
|
||||
if (cmd.equals("ok")) {
|
||||
System.exit(0);
|
||||
} else {
|
||||
setVisible(false);
|
||||
}
|
||||
}
|
||||
|
||||
/** Used to look up localized messages. */
|
||||
protected String get (String key)
|
||||
{
|
||||
// if this string is tainted, we don't translate it, instead we
|
||||
// simply remove the taint character and return it to the caller
|
||||
if (MessageUtil.isTainted(key)) {
|
||||
return MessageUtil.untaint(key);
|
||||
}
|
||||
try {
|
||||
return _msgs.getString(key);
|
||||
} catch (MissingResourceException mre) {
|
||||
log.warning("Missing translation message '" + key + "'.");
|
||||
return key;
|
||||
}
|
||||
}
|
||||
|
||||
protected Getdown _getdown;
|
||||
protected ResourceBundle _msgs;
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,260 @@
|
||||
//
|
||||
// Getdown - application installer, patcher and launcher
|
||||
// Copyright (C) 2004-2016 Getdown authors
|
||||
// https://github.com/threerings/getdown/blob/master/LICENSE
|
||||
|
||||
package com.threerings.getdown.launcher;
|
||||
|
||||
import java.awt.EventQueue;
|
||||
import java.awt.Color;
|
||||
import java.awt.Container;
|
||||
import java.awt.IllegalComponentStateException;
|
||||
import java.awt.Image;
|
||||
import java.awt.event.WindowAdapter;
|
||||
import java.awt.event.WindowEvent;
|
||||
import java.io.BufferedOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.PrintStream;
|
||||
import java.security.cert.Certificate;
|
||||
import java.security.cert.CertificateFactory;
|
||||
import java.security.cert.X509Certificate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import javax.swing.JFrame;
|
||||
import javax.swing.WindowConstants;
|
||||
|
||||
import com.samskivert.swing.util.SwingUtil;
|
||||
import com.samskivert.util.ArrayUtil;
|
||||
import com.samskivert.util.RunAnywhere;
|
||||
import com.samskivert.util.StringUtil;
|
||||
|
||||
import com.threerings.getdown.data.Digest;
|
||||
import com.threerings.getdown.data.SysProps;
|
||||
import static com.threerings.getdown.Log.log;
|
||||
|
||||
/**
|
||||
* The main application entry point for Getdown.
|
||||
*/
|
||||
public class GetdownApp
|
||||
{
|
||||
public static void main (String[] argv)
|
||||
{
|
||||
try {
|
||||
start(argv);
|
||||
} catch (Exception e) {
|
||||
log.warning("main() failed.", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Runs Getdown as an application, using the arguments supplie as {@code argv}.
|
||||
* @return the {@code Getdown} instance that is running. {@link Getdown#start} will have been
|
||||
* called on it.
|
||||
* @throws Exception if anything goes wrong starting Getdown.
|
||||
*/
|
||||
public static Getdown start (String[] argv) throws Exception {
|
||||
int aidx = 0;
|
||||
List<String> args = Arrays.asList(argv);
|
||||
|
||||
// check for app dir in a sysprop and then via argv
|
||||
String adarg = SysProps.appDir();
|
||||
if (StringUtil.isBlank(adarg)) {
|
||||
if (args.isEmpty()) {
|
||||
System.err.println("Usage: java -jar getdown.jar app_dir [app_id] [app args]");
|
||||
System.exit(-1);
|
||||
}
|
||||
adarg = args.get(aidx++);
|
||||
}
|
||||
|
||||
// check for an app identifier in a sysprop and then via argv
|
||||
String appId = SysProps.appId();
|
||||
if (StringUtil.isBlank(appId) && aidx < args.size()) {
|
||||
appId = args.get(aidx++);
|
||||
}
|
||||
|
||||
// pass along anything after that as app args
|
||||
String[] appArgs = (aidx >= args.size()) ? null :
|
||||
args.subList(aidx, args.size()).toArray(ArrayUtil.EMPTY_STRING);
|
||||
|
||||
// ensure a valid directory was supplied
|
||||
File appDir = new File(adarg);
|
||||
if (!appDir.exists() || !appDir.isDirectory()) {
|
||||
log.warning("Invalid app_dir '" + adarg + "'.");
|
||||
System.exit(-1);
|
||||
}
|
||||
|
||||
// load X.509 certificate if it exists
|
||||
File crtFile = new File(appDir, Digest.digestFile(Digest.VERSION) + ".crt");
|
||||
List<Certificate> crts = new ArrayList<>();
|
||||
if (crtFile.exists()) {
|
||||
try (FileInputStream fis = new FileInputStream(crtFile)) {
|
||||
X509Certificate certificate = (X509Certificate)
|
||||
CertificateFactory.getInstance("X.509").generateCertificate(fis);
|
||||
crts.add(certificate);
|
||||
} catch (Exception e) {
|
||||
log.warning("Certificate error: " + e.getMessage());
|
||||
System.exit(-1);
|
||||
}
|
||||
}
|
||||
|
||||
// pipe our output into a file in the application directory
|
||||
if (!SysProps.noLogRedir()) {
|
||||
File logFile = new File(appDir, "launcher.log");
|
||||
try {
|
||||
PrintStream logOut = new PrintStream(
|
||||
new BufferedOutputStream(new FileOutputStream(logFile)), true);
|
||||
System.setOut(logOut);
|
||||
System.setErr(logOut);
|
||||
} catch (IOException ioe) {
|
||||
log.warning("Unable to redirect output to '" + logFile + "': " + ioe);
|
||||
}
|
||||
}
|
||||
|
||||
// record a few things for posterity
|
||||
log.info("------------------ VM Info ------------------");
|
||||
log.info("-- OS Name: " + System.getProperty("os.name"));
|
||||
log.info("-- OS Arch: " + System.getProperty("os.arch"));
|
||||
log.info("-- OS Vers: " + System.getProperty("os.version"));
|
||||
log.info("-- Java Vers: " + System.getProperty("java.version"));
|
||||
log.info("-- Java Home: " + System.getProperty("java.home"));
|
||||
log.info("-- User Name: " + System.getProperty("user.name"));
|
||||
log.info("-- User Home: " + System.getProperty("user.home"));
|
||||
log.info("-- Cur dir: " + System.getProperty("user.dir"));
|
||||
log.info("---------------------------------------------");
|
||||
|
||||
Getdown app = new Getdown(appDir, appId, crts, null, appArgs) {
|
||||
@Override
|
||||
protected Container createContainer () {
|
||||
// create our user interface, and display it
|
||||
String title = StringUtil.isBlank(_ifc.name) ? "" : _ifc.name;
|
||||
if (_frame == null) {
|
||||
_frame = new JFrame(title);
|
||||
_frame.addWindowListener(new WindowAdapter() {
|
||||
@Override
|
||||
public void windowClosing (WindowEvent evt) {
|
||||
handleWindowClose();
|
||||
}
|
||||
});
|
||||
_frame.setUndecorated(_ifc.hideDecorations);
|
||||
try {
|
||||
_frame.setBackground(_ifc.background);
|
||||
} catch (UnsupportedOperationException e) {
|
||||
log.warning("Failed to set background", e);
|
||||
} catch (IllegalComponentStateException e) {
|
||||
log.warning("Failed to set background", e);
|
||||
}
|
||||
_frame.setResizable(false);
|
||||
} else {
|
||||
_frame.setTitle(title);
|
||||
_frame.getContentPane().removeAll();
|
||||
}
|
||||
|
||||
if (_ifc.iconImages != null) {
|
||||
ArrayList<Image> icons = new ArrayList<>();
|
||||
for (String path : _ifc.iconImages) {
|
||||
Image img = loadImage(path);
|
||||
if (img == null) {
|
||||
log.warning("Error loading icon image", "path", path);
|
||||
} else {
|
||||
icons.add(img);
|
||||
}
|
||||
}
|
||||
if (icons.isEmpty()) {
|
||||
log.warning("Failed to load any icons", "iconImages", _ifc.iconImages);
|
||||
} else {
|
||||
_frame.setIconImages(icons);
|
||||
}
|
||||
}
|
||||
|
||||
_frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
|
||||
return _frame.getContentPane();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void showContainer () {
|
||||
if (_frame != null) {
|
||||
_frame.pack();
|
||||
SwingUtil.centerWindow(_frame);
|
||||
_frame.setVisible(true);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void disposeContainer () {
|
||||
if (_frame != null) {
|
||||
_frame.dispose();
|
||||
_frame = null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void showDocument (String url) {
|
||||
String[] cmdarray;
|
||||
if (RunAnywhere.isWindows()) {
|
||||
String osName = System.getProperty("os.name", "");
|
||||
if (osName.indexOf("9") != -1 || osName.indexOf("Me") != -1) {
|
||||
cmdarray = new String[] {
|
||||
"command.com", "/c", "start", "\"" + url + "\"" };
|
||||
} else {
|
||||
cmdarray = new String[] {
|
||||
"cmd.exe", "/c", "start", "\"\"", "\"" + url + "\"" };
|
||||
}
|
||||
} else if (RunAnywhere.isMacOS()) {
|
||||
cmdarray = new String[] { "open", url };
|
||||
} else { // Linux, Solaris, etc.
|
||||
cmdarray = new String[] { "firefox", url };
|
||||
}
|
||||
try {
|
||||
Runtime.getRuntime().exec(cmdarray);
|
||||
} catch (Exception e) {
|
||||
log.warning("Failed to open browser.", "cmdarray", cmdarray, e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void exit (int exitCode) {
|
||||
// if we're running the app in the same JVM, don't call System.exit, but do
|
||||
// make double sure that the download window is closed.
|
||||
if (invokeDirect()) {
|
||||
disposeContainer();
|
||||
} else {
|
||||
System.exit(exitCode);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void fail (String message) {
|
||||
super.fail(message);
|
||||
// super.fail causes the UI to be created (if needed) on the next UI tick, so we
|
||||
// want to wait until that happens before we attempt to redecorate the window
|
||||
EventQueue.invokeLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
// if the frame was set to be undecorated, make window decoration available
|
||||
// to allow the user to close the window
|
||||
if (_frame != null && _frame.isUndecorated()) {
|
||||
_frame.dispose();
|
||||
Color bg = _frame.getBackground();
|
||||
if (bg != null && bg.getAlpha() < 255) {
|
||||
// decorated windows do not allow alpha backgrounds
|
||||
_frame.setBackground(
|
||||
new Color(bg.getRed(), bg.getGreen(), bg.getBlue()));
|
||||
}
|
||||
_frame.setUndecorated(false);
|
||||
showContainer();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
protected JFrame _frame;
|
||||
};
|
||||
app.start();
|
||||
return app;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
//
|
||||
// Getdown - application installer, patcher and launcher
|
||||
// Copyright (C) 2004-2016 Getdown authors
|
||||
// https://github.com/threerings/getdown/blob/master/LICENSE
|
||||
|
||||
package com.threerings.getdown.launcher;
|
||||
|
||||
import java.awt.Image;
|
||||
|
||||
/**
|
||||
* Abstracts away the process of loading an image so that it can be done differently in the app and
|
||||
* applet.
|
||||
*/
|
||||
public interface ImageLoader
|
||||
{
|
||||
/** Loads and returns the image with the supplied path. */
|
||||
public Image loadImage (String path);
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
//
|
||||
// Getdown - application installer, patcher and launcher
|
||||
// Copyright (C) 2004-2016 Getdown authors
|
||||
// https://github.com/threerings/getdown/blob/master/LICENSE
|
||||
|
||||
package com.threerings.getdown.launcher;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* Thrown when it's detected that multiple instances of the same getdown installer are running.
|
||||
*/
|
||||
public class MultipleGetdownRunning extends IOException
|
||||
{
|
||||
public MultipleGetdownRunning ()
|
||||
{
|
||||
super("m.another_getdown_running");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,144 @@
|
||||
//
|
||||
// Getdown - application installer, patcher and launcher
|
||||
// Copyright (C) 2004-2016 Getdown authors
|
||||
// https://github.com/threerings/getdown/blob/master/LICENSE
|
||||
|
||||
package com.threerings.getdown.launcher;
|
||||
|
||||
import java.awt.BorderLayout;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
|
||||
import java.util.MissingResourceException;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
import javax.swing.BorderFactory;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JTextField;
|
||||
|
||||
import com.samskivert.swing.GroupLayout;
|
||||
import com.samskivert.swing.Spacer;
|
||||
import com.samskivert.swing.VGroupLayout;
|
||||
import com.samskivert.text.MessageUtil;
|
||||
|
||||
import static com.threerings.getdown.Log.log;
|
||||
|
||||
/**
|
||||
* Displays an interface with which the user can configure their proxy
|
||||
* settings.
|
||||
*/
|
||||
public class ProxyPanel extends JPanel
|
||||
implements ActionListener
|
||||
{
|
||||
public ProxyPanel (Getdown getdown, ResourceBundle msgs)
|
||||
{
|
||||
_getdown = getdown;
|
||||
_msgs = msgs;
|
||||
|
||||
setLayout(new VGroupLayout());
|
||||
setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
|
||||
add(new JLabel(get("m.configure_proxy")));
|
||||
add(new Spacer(5, 5));
|
||||
|
||||
JPanel row = new JPanel(new BorderLayout(5, 5));
|
||||
row.add(new JLabel(get("m.proxy_host")), BorderLayout.WEST);
|
||||
row.add(_host = new SaneTextField());
|
||||
add(row);
|
||||
|
||||
row = new JPanel(new BorderLayout(5, 5));
|
||||
row.add(new JLabel(get("m.proxy_port")), BorderLayout.WEST);
|
||||
row.add(_port = new SaneTextField());
|
||||
add(row);
|
||||
|
||||
add(new Spacer(5, 5));
|
||||
add(new JLabel(get("m.proxy_extra")));
|
||||
|
||||
row = GroupLayout.makeButtonBox(GroupLayout.CENTER);
|
||||
JButton button;
|
||||
row.add(button = new JButton(get("m.proxy_ok")));
|
||||
button.setActionCommand("ok");
|
||||
button.addActionListener(this);
|
||||
row.add(button = new JButton(get("m.proxy_cancel")));
|
||||
button.setActionCommand("cancel");
|
||||
button.addActionListener(this);
|
||||
add(row);
|
||||
|
||||
// set up any existing proxy defaults
|
||||
String host = System.getProperty("http.proxyHost");
|
||||
if (host != null) {
|
||||
_host.setText(host);
|
||||
}
|
||||
String port = System.getProperty("http.proxyPort");
|
||||
if (port != null) {
|
||||
_port.setText(port);
|
||||
}
|
||||
}
|
||||
|
||||
// documentation inherited
|
||||
@Override
|
||||
public void addNotify ()
|
||||
{
|
||||
super.addNotify();
|
||||
_host.requestFocusInWindow();
|
||||
}
|
||||
|
||||
// documentation inherited
|
||||
@Override
|
||||
public Dimension getPreferredSize ()
|
||||
{
|
||||
// this is annoyingly hardcoded, but we can't just force the width
|
||||
// or the JLabel will claim a bogus height thinking it can lay its
|
||||
// text out all on one line which will booch the whole UI's
|
||||
// preferred size
|
||||
return new Dimension(500, 350);
|
||||
}
|
||||
|
||||
// documentation inherited from interface
|
||||
public void actionPerformed (ActionEvent e)
|
||||
{
|
||||
String cmd = e.getActionCommand();
|
||||
if (cmd.equals("ok")) {
|
||||
// communicate this info back to getdown
|
||||
_getdown.configureProxy(_host.getText(), _port.getText());
|
||||
|
||||
} else {
|
||||
// they canceled, we're outta here
|
||||
System.exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
/** Used to look up localized messages. */
|
||||
protected String get (String key)
|
||||
{
|
||||
// if this string is tainted, we don't translate it, instead we
|
||||
// simply remove the taint character and return it to the caller
|
||||
if (MessageUtil.isTainted(key)) {
|
||||
return MessageUtil.untaint(key);
|
||||
}
|
||||
try {
|
||||
return _msgs.getString(key);
|
||||
} catch (MissingResourceException mre) {
|
||||
log.warning("Missing translation message '" + key + "'.");
|
||||
return key;
|
||||
}
|
||||
}
|
||||
|
||||
protected static class SaneTextField extends JTextField
|
||||
{
|
||||
@Override
|
||||
public Dimension getPreferredSize () {
|
||||
Dimension d = super.getPreferredSize();
|
||||
d.width = Math.max(d.width, 150);
|
||||
return d;
|
||||
}
|
||||
}
|
||||
|
||||
protected Getdown _getdown;
|
||||
protected ResourceBundle _msgs;
|
||||
|
||||
protected JTextField _host;
|
||||
protected JTextField _port;
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
//
|
||||
// Getdown - application installer, patcher and launcher
|
||||
// Copyright (C) 2004-2016 Getdown authors
|
||||
// https://github.com/threerings/getdown/blob/master/LICENSE
|
||||
|
||||
package com.threerings.getdown.launcher;
|
||||
|
||||
import java.awt.Image;
|
||||
|
||||
import static com.threerings.getdown.Log.log;
|
||||
|
||||
public class RotatingBackgrounds
|
||||
{
|
||||
|
||||
/**
|
||||
* Creates a placeholder if there are no images. Just returns null from getImage every time.
|
||||
*/
|
||||
public RotatingBackgrounds ()
|
||||
{
|
||||
makeEmpty();
|
||||
}
|
||||
|
||||
/** Creates a single image background. */
|
||||
public RotatingBackgrounds (Image background)
|
||||
{
|
||||
percentages = new int[] { 0 };
|
||||
minDisplayTime = new int[] { 0 };
|
||||
images = new Image[] { background };
|
||||
errorImage = images[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a sequence of images to be rotated through from <code>backgrounds</code>.
|
||||
*
|
||||
* Each String in backgrounds should be the path to the image, a semicolon, and the minimum
|
||||
* amount of time to display the image in seconds. Each image will be active for an equal
|
||||
* percentage of the download process, unless one hasn't been active for its minimum display
|
||||
* time when the next should be shown. In that case, it's left up until its been there for its
|
||||
* minimum display time and then the next one gets to come up.
|
||||
*/
|
||||
public RotatingBackgrounds (String[] backgrounds, String errorBackground, ImageLoader loader)
|
||||
{
|
||||
percentages = new int[backgrounds.length];
|
||||
minDisplayTime = new int[backgrounds.length];
|
||||
images = new Image[backgrounds.length];
|
||||
for (int ii = 0; ii < backgrounds.length; ii++) {
|
||||
String[] pieces = backgrounds[ii].split(";");
|
||||
if (pieces.length != 2) {
|
||||
log.warning("Unable to parse background image '" + backgrounds[ii] + "'");
|
||||
makeEmpty();
|
||||
return;
|
||||
}
|
||||
images[ii] = loader.loadImage(pieces[0]);
|
||||
try {
|
||||
minDisplayTime[ii] = Integer.parseInt(pieces[1]);
|
||||
} catch (NumberFormatException e) {
|
||||
log.warning("Unable to parse background image display time '" +
|
||||
backgrounds[ii] + "'");
|
||||
makeEmpty();
|
||||
return;
|
||||
}
|
||||
percentages[ii] = (int)((ii/(float)backgrounds.length) * 100);
|
||||
}
|
||||
if (errorBackground == null) {
|
||||
errorImage = images[0];
|
||||
} else {
|
||||
errorImage = loader.loadImage(errorBackground);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the image to display at the given progress or null if there aren't any.
|
||||
*/
|
||||
public Image getImage (int progress)
|
||||
{
|
||||
if (images.length == 0) {
|
||||
return null;
|
||||
}
|
||||
long now = System.currentTimeMillis();
|
||||
if (current != images.length - 1
|
||||
&& (current == -1 || (progress >= percentages[current + 1] &&
|
||||
(now - currentDisplayStart) / 1000 > minDisplayTime[current]))) {
|
||||
current++;
|
||||
currentDisplayStart = now;
|
||||
}
|
||||
return images[current];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the image to display if an error has caused getdown to fail.
|
||||
*/
|
||||
public Image getErrorImage ()
|
||||
{
|
||||
return errorImage;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the number of images in this RotatingBackgrounds
|
||||
*/
|
||||
public int getNumImages() {
|
||||
return images.length;
|
||||
}
|
||||
|
||||
protected void makeEmpty ()
|
||||
{
|
||||
percentages = new int[] {};
|
||||
minDisplayTime = new int[] {};
|
||||
images = new Image[] {};
|
||||
}
|
||||
|
||||
/** Time at which the currently displayed image was first displayed in millis. */
|
||||
protected long currentDisplayStart;
|
||||
|
||||
/** The index of the currently displayed image or -1 if we haven't displayed any. */
|
||||
protected int current = -1;
|
||||
|
||||
protected Image[] images;
|
||||
|
||||
/** The image to display if getdown has failed due to an error. */
|
||||
protected Image errorImage;
|
||||
|
||||
/** Percentage at which each image should be displayed. */
|
||||
protected int[] percentages;
|
||||
|
||||
/** Time to show each image in seconds. */
|
||||
protected int[] minDisplayTime;
|
||||
}
|
||||
@@ -0,0 +1,396 @@
|
||||
//
|
||||
// Getdown - application installer, patcher and launcher
|
||||
// Copyright (C) 2004-2016 Getdown authors
|
||||
// https://github.com/threerings/getdown/blob/master/LICENSE
|
||||
|
||||
package com.threerings.getdown.launcher;
|
||||
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Font;
|
||||
import java.awt.Graphics;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Image;
|
||||
import java.awt.Rectangle;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.image.ImageObserver;
|
||||
import java.text.MessageFormat;
|
||||
import java.util.MissingResourceException;
|
||||
import java.util.ResourceBundle;
|
||||
|
||||
import javax.swing.JComponent;
|
||||
import javax.swing.Timer;
|
||||
|
||||
import com.samskivert.swing.Label;
|
||||
import com.samskivert.swing.LabelStyleConstants;
|
||||
import com.samskivert.swing.util.SwingUtil;
|
||||
import com.samskivert.text.MessageUtil;
|
||||
import com.samskivert.util.StringUtil;
|
||||
import com.samskivert.util.Throttle;
|
||||
|
||||
import com.threerings.getdown.data.Application.UpdateInterface;
|
||||
|
||||
import static com.threerings.getdown.Log.log;
|
||||
|
||||
/**
|
||||
* Displays download and patching status.
|
||||
*/
|
||||
public class StatusPanel extends JComponent
|
||||
implements ImageObserver
|
||||
{
|
||||
public StatusPanel (ResourceBundle msgs)
|
||||
{
|
||||
_msgs = msgs;
|
||||
|
||||
// Add a bit of "throbbing" to the display by updating the number of dots displayed after
|
||||
// our status. This lets users know things are still working.
|
||||
_timer = new Timer(1000,
|
||||
new ActionListener() {
|
||||
public void actionPerformed (ActionEvent event) {
|
||||
if (_status != null && !_displayError) {
|
||||
_statusDots = (_statusDots % 3) + 1; // 1, 2, 3, 1, 2, 3, etc.
|
||||
updateStatusLabel();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void init (UpdateInterface ifc, RotatingBackgrounds bg, Image barimg)
|
||||
{
|
||||
_ifc = ifc;
|
||||
_bg = bg;
|
||||
Image img = _bg.getImage(_progress);
|
||||
int width = img == null ? -1 : img.getWidth(this);
|
||||
int height = img == null ? -1 : img.getHeight(this);
|
||||
if (width == -1 || height == -1) {
|
||||
Rectangle bounds = ifc.progress.union(ifc.status);
|
||||
// assume the x inset defines the frame padding; add it on the left, right, and bottom
|
||||
_psize = new Dimension(bounds.x + bounds.width + bounds.x,
|
||||
bounds.y + bounds.height + bounds.x);
|
||||
} else {
|
||||
_psize = new Dimension(width, height);
|
||||
}
|
||||
_barimg = barimg;
|
||||
invalidate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean imageUpdate (Image img, int infoflags, int x, int y, int width, int height)
|
||||
{
|
||||
boolean updated = false;
|
||||
if ((infoflags & WIDTH) != 0) {
|
||||
_psize.width = width;
|
||||
updated = true;
|
||||
}
|
||||
if ((infoflags & HEIGHT) != 0) {
|
||||
_psize.height = height;
|
||||
updated = true;
|
||||
}
|
||||
if (updated) {
|
||||
invalidate();
|
||||
setSize(_psize);
|
||||
getParent().setSize(_psize);
|
||||
}
|
||||
return (infoflags & ALLBITS) == 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adjusts the progress display to the specified percentage.
|
||||
*/
|
||||
public void setProgress (int percent, long remaining)
|
||||
{
|
||||
boolean needsRepaint = false;
|
||||
|
||||
// maybe update the progress label
|
||||
if (_progress != percent) {
|
||||
_progress = percent;
|
||||
if (!_ifc.hideProgressText) {
|
||||
String msg = MessageFormat.format(get("m.complete"), percent);
|
||||
_newplab = createLabel(msg, _ifc.progressText);
|
||||
}
|
||||
needsRepaint = true;
|
||||
}
|
||||
|
||||
// maybe update the remaining label
|
||||
if (remaining > 1) {
|
||||
// skip this estimate if it's been less than a second since our last one came in
|
||||
if (!_rthrottle.throttleOp()) {
|
||||
_remain[_ridx++%_remain.length] = remaining;
|
||||
}
|
||||
|
||||
// smooth the remaining time by taking the trailing average of the last four values
|
||||
remaining = 0;
|
||||
int values = Math.min(_ridx, _remain.length);
|
||||
for (int ii = 0; ii < values; ii++) {
|
||||
remaining += _remain[ii];
|
||||
}
|
||||
remaining /= values;
|
||||
|
||||
if (!_ifc.hideProgressText) {
|
||||
// now compute our display value
|
||||
int minutes = (int)(remaining / 60), seconds = (int)(remaining % 60);
|
||||
String remstr = minutes + ":" + ((seconds < 10) ? "0" : "") + seconds;
|
||||
String msg = MessageFormat.format(get("m.remain"), remstr);
|
||||
_newrlab = createLabel(msg, _ifc.statusText);
|
||||
}
|
||||
needsRepaint = true;
|
||||
|
||||
} else if (_rlabel != null || _newrlab != null) {
|
||||
_rthrottle = new Throttle(1, 1000);
|
||||
_ridx = 0;
|
||||
_newrlab = _rlabel = null;
|
||||
needsRepaint = true;
|
||||
}
|
||||
|
||||
if (needsRepaint) {
|
||||
repaint();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays the specified status string.
|
||||
*/
|
||||
public void setStatus (String status, boolean displayError)
|
||||
{
|
||||
_status = xlate(status);
|
||||
_displayError = displayError;
|
||||
updateStatusLabel();
|
||||
}
|
||||
|
||||
/**
|
||||
* Stop the throbbing.
|
||||
*/
|
||||
public void stopThrob ()
|
||||
{
|
||||
_timer.stop();
|
||||
_statusDots = 3;
|
||||
updateStatusLabel();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addNotify ()
|
||||
{
|
||||
super.addNotify();
|
||||
_timer.start();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeNotify ()
|
||||
{
|
||||
_timer.stop();
|
||||
super.removeNotify();
|
||||
}
|
||||
|
||||
// documentation inherited
|
||||
@Override
|
||||
public void paintComponent (Graphics g)
|
||||
{
|
||||
super.paintComponent(g);
|
||||
Graphics2D gfx = (Graphics2D)g;
|
||||
|
||||
// attempt to draw a background image...
|
||||
Image img;
|
||||
if (_displayError) {
|
||||
img = _bg.getErrorImage();
|
||||
} else {
|
||||
img = _bg.getImage(_progress);
|
||||
}
|
||||
if (img != null) {
|
||||
gfx.drawImage(img, 0, 0, this);
|
||||
}
|
||||
|
||||
Object oalias = SwingUtil.activateAntiAliasing(gfx);
|
||||
|
||||
// if we have new labels; lay them out
|
||||
if (_newlab != null) {
|
||||
_newlab.layout(gfx);
|
||||
_label = _newlab;
|
||||
_newlab = null;
|
||||
}
|
||||
if (_newplab != null) {
|
||||
_newplab.layout(gfx);
|
||||
_plabel = _newplab;
|
||||
_newplab = null;
|
||||
}
|
||||
if (_newrlab != null) {
|
||||
_newrlab.layout(gfx);
|
||||
_rlabel = _newrlab;
|
||||
_newrlab = null;
|
||||
}
|
||||
|
||||
if (_barimg != null) {
|
||||
gfx.setClip(_ifc.progress.x, _ifc.progress.y,
|
||||
_progress * _ifc.progress.width / 100,
|
||||
_ifc.progress.height);
|
||||
gfx.drawImage(_barimg, _ifc.progress.x, _ifc.progress.y, null);
|
||||
gfx.setClip(null);
|
||||
} else {
|
||||
gfx.setColor(_ifc.progressBar);
|
||||
gfx.fillRect(_ifc.progress.x, _ifc.progress.y,
|
||||
_progress * _ifc.progress.width / 100,
|
||||
_ifc.progress.height);
|
||||
}
|
||||
|
||||
if (_plabel != null) {
|
||||
int xmarg = (_ifc.progress.width - _plabel.getSize().width)/2;
|
||||
int ymarg = (_ifc.progress.height - _plabel.getSize().height)/2;
|
||||
_plabel.render(gfx, _ifc.progress.x + xmarg, _ifc.progress.y + ymarg);
|
||||
}
|
||||
|
||||
if (_label != null) {
|
||||
_label.render(gfx, _ifc.status.x, getStatusY(_label));
|
||||
}
|
||||
|
||||
if (_rlabel != null) {
|
||||
// put the remaining label at the end of the status area. This could be dangerous
|
||||
// but I think the only time we would display it is with small statuses.
|
||||
int x = _ifc.status.x + _ifc.status.width - _rlabel.getSize().width;
|
||||
_rlabel.render(gfx, x, getStatusY(_rlabel));
|
||||
}
|
||||
|
||||
SwingUtil.restoreAntiAliasing(gfx, oalias);
|
||||
}
|
||||
|
||||
// documentation inherited
|
||||
@Override
|
||||
public Dimension getPreferredSize ()
|
||||
{
|
||||
return _psize;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the status label.
|
||||
*/
|
||||
protected void updateStatusLabel ()
|
||||
{
|
||||
String status = _status;
|
||||
if (!_displayError) {
|
||||
for (int ii = 0; ii < _statusDots; ii++) {
|
||||
status += " .";
|
||||
}
|
||||
}
|
||||
_newlab = createLabel(status, _ifc.statusText);
|
||||
// set the width of the label to the width specified
|
||||
int width = _ifc.status.width;
|
||||
if (width == 0) {
|
||||
// unless we had trouble reading that width, in which case use the entire window
|
||||
width = getWidth();
|
||||
}
|
||||
// but the window itself might not be initialized and have a width of 0
|
||||
if (width > 0) {
|
||||
_newlab.setTargetWidth(width);
|
||||
}
|
||||
repaint();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the y coordinate of a label in the status area.
|
||||
*/
|
||||
protected int getStatusY (Label label)
|
||||
{
|
||||
// if the status region is higher than the progress region, we
|
||||
// want to align the label with the bottom of its region
|
||||
// rather than the top
|
||||
if (_ifc.status.y > _ifc.progress.y) {
|
||||
return _ifc.status.y;
|
||||
}
|
||||
return _ifc.status.y + (_ifc.status.height - label.getSize().height);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a label, taking care of adding the shadow if needed.
|
||||
*/
|
||||
protected Label createLabel (String text, Color color)
|
||||
{
|
||||
Label label = new Label(text, color, FONT);
|
||||
if (_ifc.textShadow != null) {
|
||||
label.setAlternateColor(_ifc.textShadow);
|
||||
label.setStyle(LabelStyleConstants.SHADOW);
|
||||
}
|
||||
return label;
|
||||
}
|
||||
|
||||
/** Used by {@link #setStatus}. */
|
||||
protected String xlate (String compoundKey)
|
||||
{
|
||||
// to be more efficient about creating unnecessary objects, we
|
||||
// do some checking before splitting
|
||||
int tidx = compoundKey.indexOf('|');
|
||||
if (tidx == -1) {
|
||||
return get(compoundKey);
|
||||
|
||||
} else {
|
||||
String key = compoundKey.substring(0, tidx);
|
||||
String argstr = compoundKey.substring(tidx+1);
|
||||
String[] args = StringUtil.split(argstr, "|");
|
||||
// unescape and translate the arguments
|
||||
for (int i = 0; i < args.length; i++) {
|
||||
// if the argument is tainted, do no further translation
|
||||
// (it might contain |s or other fun stuff)
|
||||
if (MessageUtil.isTainted(args[i])) {
|
||||
args[i] = MessageUtil.unescape(MessageUtil.untaint(args[i]));
|
||||
} else {
|
||||
args[i] = xlate(MessageUtil.unescape(args[i]));
|
||||
}
|
||||
}
|
||||
return get(key, args);
|
||||
}
|
||||
}
|
||||
|
||||
/** Used by {@link #setStatus}. */
|
||||
protected String get (String key, Object[] args)
|
||||
{
|
||||
String msg = get(key);
|
||||
return (msg != null) ?
|
||||
MessageFormat.format(MessageUtil.escape(msg), args)
|
||||
: (key + StringUtil.toString(args));
|
||||
}
|
||||
|
||||
/** Used by {@link #setStatus}, and {@link #setProgress}. */
|
||||
protected String get (String key)
|
||||
{
|
||||
// if we have no _msgs that means we're probably recovering from a
|
||||
// failure to load the translation messages in the first place, so
|
||||
// just give them their key back because it's probably an english
|
||||
// string; whee!
|
||||
if (_msgs == null) {
|
||||
return key;
|
||||
}
|
||||
|
||||
// if this string is tainted, we don't translate it, instead we
|
||||
// simply remove the taint character and return it to the caller
|
||||
if (MessageUtil.isTainted(key)) {
|
||||
return MessageUtil.untaint(key);
|
||||
}
|
||||
try {
|
||||
return _msgs.getString(key);
|
||||
} catch (MissingResourceException mre) {
|
||||
log.warning("Missing translation message '" + key + "'.");
|
||||
return key;
|
||||
}
|
||||
}
|
||||
|
||||
protected Image _barimg;
|
||||
protected RotatingBackgrounds _bg;
|
||||
protected Dimension _psize;
|
||||
|
||||
protected ResourceBundle _msgs;
|
||||
|
||||
protected int _progress = -1;
|
||||
protected String _status;
|
||||
protected int _statusDots = 1;
|
||||
protected boolean _displayError;
|
||||
protected Label _label, _newlab;
|
||||
protected Label _plabel, _newplab;
|
||||
protected Label _rlabel, _newrlab;
|
||||
|
||||
protected UpdateInterface _ifc;
|
||||
protected Timer _timer;
|
||||
|
||||
protected long[] _remain = new long[4];
|
||||
protected int _ridx;
|
||||
protected Throttle _rthrottle = new Throttle(1, 1000L);
|
||||
|
||||
protected static final Font FONT = new Font("SansSerif", Font.BOLD, 12);
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Getdown translation messages
|
||||
|
||||
m.abort_title = Abort installation?
|
||||
m.abort_confirm = <html>Are you sure you want to stop installation? \
|
||||
You can resume at a later time by running the application again.</html>
|
||||
m.abort_ok = Quit
|
||||
m.abort_cancel = Continue installation
|
||||
|
||||
m.detecting_proxy = Trying to auto-detect proxy settings
|
||||
|
||||
m.configure_proxy = <html>We were unable to connect to our servers to download data. \
|
||||
<ul><li> If Windows Firewall or Norton Internet Security was instructed \
|
||||
to block <code>javaw.exe</code> we cannot download the data. You will need \
|
||||
to allow <code>javaw.exe</code> to access the internet. You can try \
|
||||
running the app again, but you may need to clear javaw.exe from your \
|
||||
firewall configuration ( Start -> Control Panel -> Windows Firewall ).</ul> \
|
||||
<p> Your computer may access the Internet through a proxy and we were \
|
||||
unable to automatically detect your proxy settings. If you know your \
|
||||
proxy settings, you can enter them below.</html>
|
||||
|
||||
m.proxy_extra = <html>If you are sure that you don't use a proxy then \
|
||||
perhaps there is a temporary Internet outage that is preventing us from \
|
||||
communicating with the servers. In this case, you can cancel and try \
|
||||
installing again later.</html>
|
||||
|
||||
m.proxy_host = Proxy IP
|
||||
m.proxy_port = Proxy port
|
||||
m.proxy_ok = OK
|
||||
m.proxy_cancel = Cancel
|
||||
|
||||
m.downloading_java = Downloading Java Virtual Machine
|
||||
m.unpacking_java = Unpacking Java Virtual Machine
|
||||
|
||||
m.resolving = Resolving downloads
|
||||
m.downloading = Downloading data
|
||||
m.failure = Download failed: {0}
|
||||
|
||||
m.checking = Checking for update
|
||||
m.validating = Validating
|
||||
m.patching = Patching
|
||||
m.launching = Launching
|
||||
|
||||
m.patch_notes = Patch Notes
|
||||
m.play_again = Play Again
|
||||
|
||||
m.complete = {0}% complete
|
||||
m.remain = {0} remaining
|
||||
|
||||
m.updating_metadata = Downloading control files
|
||||
|
||||
m.init_failed = Our configuration file is missing or corrupt. Attempting \
|
||||
to download a new copy...
|
||||
|
||||
m.java_download_failed = We were unable to automatically download the \
|
||||
necessary version of Java for your computer.\n\n\
|
||||
Please go to www.java.com and download the latest version of \
|
||||
Java, then try running the application again.
|
||||
|
||||
m.java_unpack_failed = We were unable to unpack an updated version of \
|
||||
Java. Please make sure you have at least 100 MB of free space on your \
|
||||
harddrive and try running the application again.\n\n\
|
||||
If that does not solve the problem, go to www.java.com and download and \
|
||||
install the latest version of Java and try again.
|
||||
|
||||
m.unable_to_repair = We were unable to download the necessary files after \
|
||||
five attempts. You can try running the application again, but if it \
|
||||
fails you may need to uninstall and reinstall.
|
||||
|
||||
m.unknown_error = The application has failed to launch due to some strange \
|
||||
error from which we could not recover. Please visit\n{0} for information on \
|
||||
how to recover.
|
||||
m.init_error = The application has failed to launch due to the following \
|
||||
error:\n{0}\n\nPlease visit\n{1} for \
|
||||
information on how to handle such problems.
|
||||
|
||||
m.readonly_error = The directory in which this application is installed: \
|
||||
\n{0}\nis read-only. Please install the application into a directory where \
|
||||
you have write access.
|
||||
|
||||
m.missing_resource = The application has failed to launch due to a missing \
|
||||
resource:\n{0}\n\nPlease visit\n{1} for information on how to handle such \
|
||||
problems.
|
||||
|
||||
m.insufficient_permissions_error = You did not accept this application's \
|
||||
digital signature. If you want to run the application, you will need to accept \
|
||||
its digital signature.\n\nTo do so, you will need to quit your web browser, \
|
||||
restart it, and return to this web page to relaunch the application. When the \
|
||||
security dialog is shown, click the button to accept the digital signature \
|
||||
and grant this application the privileges it needs to run.
|
||||
|
||||
m.corrupt_digest_signature_error = We couldn't verify the application's digital \
|
||||
signature.\nPlease check that you are launching the application from\nthe \
|
||||
correct website.
|
||||
|
||||
m.default_install_error = the support section of the website
|
||||
|
||||
m.another_getdown_running = Multiple instances of this application's \
|
||||
installer are running. This one will stop and let another complete.
|
||||
|
||||
m.applet_stopped = Getdown's applet was told to stop working.
|
||||
|
||||
# application/digest errors
|
||||
m.missing_appbase = The configuration file is missing the 'appbase'.
|
||||
m.invalid_version = The configuration file specifies an invalid version.
|
||||
m.invalid_appbase = The configuration file specifies an invalid 'appbase'.
|
||||
m.missing_class = The configuration file is missing the application class.
|
||||
m.missing_code = The configuration file specifies no code resources.
|
||||
m.invalid_digest_file = The digest file is invalid.
|
||||
@@ -0,0 +1,122 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Getdown translation messages
|
||||
|
||||
m.abort_title = Installation abbrechen?
|
||||
m.abort_confirm = <html>Bist du sicher, dass du die Installation abbrechen \
|
||||
m\u00f6chtest? \
|
||||
Du kannst sp\u00e4ter fortfahren, indem du die Anwendung erneut \
|
||||
ausf\u00fchrst.</html>
|
||||
m.abort_ok = Beenden
|
||||
m.abort_cancel = Installation fortsetzen
|
||||
|
||||
m.detecting_proxy = Versuche Proxy-Einstellungen automatisch zu ermitteln
|
||||
|
||||
m.configure_proxy = <html>Es war nicht m\u00f6glich, eine Verbindung zu unserem \
|
||||
Server herzustellen, um die Anwendungsdaten herunterzuladen. \
|
||||
<ul><li> Falls Windows Firewall oder Norton Internet Security angewiesen \
|
||||
wurden, <code>javaw.exe</code> zu blockieren, kann die Anwendung nicht \
|
||||
heruntergeladen werden. Du musst <code>javaw.exe</code> erlauben, \
|
||||
Verbindung zum Internet herzustellen. Du kannst nochmals versuchen, die \
|
||||
Anwendung zu starten, aber eventuell musst du javaw.exe aus der \
|
||||
Firewall-Konfiguration entfernen (Start -> Systemsteuerung -> Windows \
|
||||
Firewall). </ul> \
|
||||
<p> Eventuell ist der Computer durch einen Proxy mit dem Internet \
|
||||
verbunden. Es war uns nicht m\u00f6glich, die Proxy-Einstellungen automatisch \
|
||||
zu ermitteln. Falls bekannt, k\u00f6nnen diese unten eingetragen \
|
||||
werden.</html>
|
||||
|
||||
m.proxy_extra = <html>Falls kein Proxy verwendet wird, liegt \
|
||||
m\u00f6glicherweise eine St\u00f6rung in der Internetverbindung zu unserem Server \
|
||||
vor. In diesem Fall bitte abbrechen und sp\u00e4ter noch einmal \
|
||||
versuchen.</html>
|
||||
|
||||
m.proxy_host = Proxy IP
|
||||
m.proxy_port = Proxy port
|
||||
m.proxy_ok = OK
|
||||
m.proxy_cancel = Abbrechen
|
||||
|
||||
m.downloading_java = Lade Java Virtual Machine herunter
|
||||
m.unpacking_java = Entpacke Java Virtual Machine
|
||||
|
||||
m.resolving = Bereite Download vor
|
||||
m.downloading = Lade Daten herunter
|
||||
m.failure = Download fehlgeschlagen: {0}
|
||||
|
||||
m.checking = Suche nach Updates
|
||||
m.validating = Validiere Download
|
||||
m.patching = Patche
|
||||
m.launching = Starte
|
||||
|
||||
m.patch_notes = Patchnotes
|
||||
|
||||
m.complete = {0}% abgeschlossen
|
||||
m.remain = {0} \u00fcbrig
|
||||
|
||||
m.updating_metadata = Lade Steuerungsdateien herunter
|
||||
|
||||
m.init_failed = Unsere Konfigurationsdatei fehlt oder ist besch\u00e4digt. \
|
||||
Versuche, eine neue Kopie herunterzuladen...
|
||||
|
||||
m.java_download_failed = Wir konnten die notwendige Javaversion f\u00fcr deinen \
|
||||
Computer nicht automatisch herunterladen. \n\n \
|
||||
Bitte auf www.java.com die aktuelle Javaversion herunterladen und dann die \
|
||||
Anwendung erneut starten.
|
||||
|
||||
m.java_unpack_failed = Wir konnten die aktualisierte Javaversion nicht \
|
||||
entpacken. Bitte stelle sicher, dass wenigstens 100MB Platz auf der \
|
||||
Festplatte frei sind und versuche dann die Anwendung erneut zu \
|
||||
starten.\n\n\ \
|
||||
Falls das das Problem nicht beseitigt, bitte auf www.java.com die aktuelle \
|
||||
Javaversion herunterladen und installieren und dann erneut versuchen.
|
||||
|
||||
m.unable_to_repair = Wir konnten die notwendigen Dateien nach 5 Versuchen \
|
||||
nicht herunterladen. Du kannst versuchen, die Anwendung erneut zu starten, \
|
||||
aber wenn dies erneut fehlschl\u00e4gt, musst du die Anwendung deinstallieren \
|
||||
und erneut installieren.
|
||||
|
||||
m.unknown_error = Die Anwendung konnte wegen eines unbekannten Fehlers \
|
||||
nicht gestartet werden. Bitte auf \n{0} weiterlesen.
|
||||
|
||||
m.init_error = Die Anwendung konnte wegen folgendem Fehler nicht gestartet \
|
||||
werden:\n{0}\n\n Bitte auf \n{1} weiterlesen, um zu erfahren, wie bei \
|
||||
solchen Problemen vorzugehen ist.
|
||||
|
||||
m.readonly_error = Das Verzeichnis, in dem die Anwendung installiert ist: \
|
||||
\n{0}\nist nicht schreibberechtigt. Bitte in ein Verzeichnis mit \
|
||||
Schreibzugriff installieren.
|
||||
|
||||
m.missing_resource = Die Anwendung konnte nicht gestartet werden, da die \
|
||||
folgende Quelle nicht gefunden wurde:\n{0}\n\n\ Bitte auf \n{1} \
|
||||
weiterlesen, um zu erfahren, wie bei solchen Problemen vorzugehen ist.
|
||||
|
||||
m.insufficient_permissions_error = Du hast die digitale Signatur dieser \
|
||||
Anwendung nicht akzeptiert. Falls du diese Anwendung benutzen willst, \
|
||||
musst du ihre digitale Signatur akzeptieren. \n\Um das zu tun, musst du \
|
||||
deinen Browser beenden, neu starten und erneut die Anwendung von dieser \
|
||||
Webseite aus starten. Wenn die Sicherheitsabfrage erscheint, bitte die \
|
||||
digitale Signatur akzeptieren, um der Anwendung die n\u00f6tigen Rechte zu \
|
||||
geben, die sie braucht, um zu laufen.
|
||||
|
||||
m.corrupt_digest_signature_error = Wir konnten die digitale Signatur \
|
||||
dieser Anwendung nicht \u00fcberpr\u00fcfen.\nBitte \u00fcberpr\u00fcfe, ob du die Anwendung \
|
||||
von der richtigen Webseite aus startest.
|
||||
|
||||
m.default_install_error = der Support-Webseite
|
||||
|
||||
m.another_getdown_running = Diese Installationsanwendung l\u00e4uft in mehreren \
|
||||
Instanzen. Diese Instanz wird sich beenden und eine andere Instanz den \
|
||||
Vorgang erledigen lassen.
|
||||
|
||||
m.applet_stopped = Die Anwendung wurde beendet.
|
||||
|
||||
|
||||
# application/digest errors
|
||||
m.missing_appbase = In der Konfigurationsdatei fehlt die 'appbase'.
|
||||
m.invalid_version = In der Konfigurationsdatei steht die falsche Version.
|
||||
m.invalid_appbase = In der Konfigurationsdatei steht die falsche 'appbase'.
|
||||
m.missing_class = In der Konfigurationsdatei fehlt die Anwendungsklasse.
|
||||
m.missing_code = Die Konfigurationsdatei enth\u00e4lt keine Codequellen.
|
||||
m.invalid_digest_file = Die Hashwertedatei ist ung\u00fcltig.
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Getdown translation messages
|
||||
|
||||
m.abort_title = \u00bfCancelar la instalaci\u00f3n?
|
||||
m.abort_confirm = <html>\u00bfEst\u00e1s seguro de querer cancelar la instalaci\u00f3n? \
|
||||
Puedes continuarla despu\u00e9s si corres de nuevo la aplicaci\u00f3n.</html>
|
||||
m.abort_ok = Cancelar
|
||||
m.abort_cancel = Continuar la instalaci\u00f3n
|
||||
|
||||
m.detecting_proxy = Detectando autom\u00e1ticamente la configuraci\u00f3n proxy
|
||||
|
||||
m.configure_proxy = <html>No ha sido posible conectar con nuestros servidores para \
|
||||
descargar los datos del juego. \
|
||||
<ul><li> Si el cortafuegos de Windows o Norton Internet Security tiene instrucciones \
|
||||
de bloquear <code>javaw.exe</code> no podemos descargar el juego. Necesitar\u00e1s \
|
||||
permitir que <code>javaw.exe</code> tenga acceso al Internet. Puedes intentar \
|
||||
correr el juego de nuevo, pero es posible que debas dar permisos a javaw.exe en la \
|
||||
configuraci\u00f3n de tu cortafuegos ( Inicio -> Panel de control -> Firewall de Windows ).</ul> \
|
||||
<p> Es posible que tu computadora tenga acceso al Internet por medio de un proxy por lo que \
|
||||
no ha sido posible detectar autom\u00e1ticamente tu configuraci\u00f3n. Si conoces tu \
|
||||
configuraci\u00f3n proxy, puedes anotarla abajo.</html>
|
||||
|
||||
m.proxy_extra = <html>Si est\u00e1s seguro de que no tienes un proxy entonces \
|
||||
tal vez exista un falla temporal en el Internet que est\u00e1 evitando que podamos \
|
||||
comunicarnos con los servidores. En este caso, puedes cancelar e intentar \
|
||||
instalarla de nuevo m\u00e1s tarde.</html>
|
||||
|
||||
m.proxy_host = IP proxy
|
||||
m.proxy_port = Puerto proxy
|
||||
m.proxy_ok = OK
|
||||
m.proxy_cancel = Cancelar
|
||||
|
||||
m.downloading_java = Descargando Java Virtual Machine
|
||||
m.unpacking_java = Desempacando Java Virtual Machine
|
||||
|
||||
m.resolving = Resolviendo descarga
|
||||
m.downloading = Descargando datos
|
||||
m.failure = Descarga fallida: {0}
|
||||
|
||||
m.checking = Buscando actualizaciones
|
||||
m.validating = Validando
|
||||
m.patching = Parchando
|
||||
m.launching = Lanzando
|
||||
|
||||
m.patch_notes = Notas del parche
|
||||
|
||||
m.complete = {0}% completado
|
||||
m.remain = {0} restante
|
||||
|
||||
m.updating_metadata = Descargando los archivos de control
|
||||
|
||||
m.init_failed = Un archivo de configuraci\u00f3n est\u00e1 faltante o est\u00e1 corrupto. Intentando \
|
||||
descargar una nueva copia...
|
||||
|
||||
m.java_download_failed = No ha sido posible descargar autom\u00e1ticamente la \
|
||||
versi\u00f3n de Java necesaria para tu computadora.\n\n\
|
||||
Por favor ve a www.java.com y descarga la \u00faltima versi\u00f3n de \
|
||||
Java, despu\u00e9s intenta correr de nuevo la aplicaci\u00f3n.
|
||||
|
||||
m.java_unpack_failed = No ha sido posible desempacar una versi\u00f3n actualizada de \
|
||||
Java. Por favor aseg\u00farate de tener al menos 100 MB de espacio libre en tu \
|
||||
disco duro e intenta correr de nuevo la aplicaci\u00f3n.\n\n\
|
||||
Si eso no soluciona el problema, ve a www.java.com y descarga e \
|
||||
instala la \u00faltima versi\u00f3n de Java e intenta de nuevo.
|
||||
|
||||
m.unable_to_repair = No ha sido posible descargar los archivos necesarios despu\u00e9s de \
|
||||
cinco intentos. Puedes intentar correr de nuevo la aplicaci\u00f3n, pero si falla \
|
||||
de nuevo podr\u00edas necesitar desinstalar y reinstalar.
|
||||
|
||||
m.unknown_error = La aplicaci\u00f3n no ha podido iniciar debido a un extra\u00f1o \
|
||||
error del que no se pudo recobrar. Por favor visita\n{0} para ver informaci\u00f3n acerca \
|
||||
de como recuperarla.
|
||||
m.init_error = La aplicaci\u00f3n no ha podido iniciar debido al siguiente \
|
||||
error:\n{0}\n\nPor favor visita\n{1} para \
|
||||
ver informaci\u00f3n acerca de como manejar ese tipo de problemas.
|
||||
|
||||
m.readonly_error = El directorio en el que esta aplicaci\u00f3n est\u00e1 instalada: \
|
||||
\n{0}\nes solo lectura. Por favor instala la aplicaci\u00f3n en un directorio en el cual \
|
||||
tengas acceso de escritura.
|
||||
|
||||
m.missing_resource = La aplicaci\u00f3n no ha podido iniciar debido a un recurso \
|
||||
faltante:\n{0}\n\nPor favor visita\n{1} para informaci\u00f3n acerca de como solucionar \
|
||||
estos problemas.
|
||||
|
||||
m.insufficient_permissions_error = No aceptaste la firma digital de \
|
||||
esta aplicaci\u00f3n. Si quieres correr la aplicaci\u00f3n, necesitas aceptar \
|
||||
su firma digital.\n\nPara hacerlo, necesitas cerrar tu navegador, \
|
||||
reiniciarlo, y regresar a esta p\u00e1gina web para reiniciar la aplicaci\u00f3n. Cuando se muestre \
|
||||
el di\u00e1logo de seguridad, haz clic en el bot\u00f3n para aceptar la firmar digital \
|
||||
y otorgar a esta aplicaci\u00f3n los privilegios que necesita para correr.
|
||||
|
||||
m.corrupt_digest_signature_error = No pudimos verificar la firma digital \
|
||||
de la aplicaci\u00f3n.\nPor favor revisa que est\u00e9s lanzando la aplicaci\u00f3n desde\nel \
|
||||
sitio web correcto.
|
||||
|
||||
m.default_install_error = la secci\u00f3n de asistencia de este sitio web
|
||||
|
||||
m.another_getdown_running = Est\u00e1n corriendo m\u00faltiples instancias de \
|
||||
este instalador. Este se detendr\u00e1 para permitir que otra contin\u00fae.
|
||||
|
||||
m.applet_stopped = Se le dijo al applet de Getdown que dejara de trabajar.
|
||||
|
||||
# application/digest errors
|
||||
m.missing_appbase = Al archivo de configuraci\u00f3n le falta el 'appbase'.
|
||||
m.invalid_version = El archivo de configuraci\u00f3n especifica una versi\u00f3n no v\u00e1lida.
|
||||
m.invalid_appbase = El archivo de configuraci\u00f3n especifica un 'appbase' no v\u00e1lido.
|
||||
m.missing_class = Al archivo de configuraci\u00f3n le falta la clase de aplicaci\u00f3n.
|
||||
m.missing_code = El archivo de configuraci\u00f3n especifica que no hay recursos de c\u00f3digo.
|
||||
m.invalid_digest_file = El archivo digest no es v\u00e1lido.
|
||||
|
||||
@@ -0,0 +1,108 @@
|
||||
#
|
||||
# $Id: messages.properties 485 2012-03-08 22:05:30Z ray.j.greenwell $
|
||||
#
|
||||
# Getdown translation messages
|
||||
|
||||
m.abort_title = Annuler l'installation?
|
||||
m.abort_confirm =<html>\u00cates-vous s\u00fbr de vouloir annuler l'installation? \
|
||||
Vous pourrez reprendre l'installation en ex\u00e9cutant l'application de nouveau.</html>
|
||||
m.abort_ok = Quitter
|
||||
m.abort_cancel = Continuer l'installation
|
||||
|
||||
m.detecting_proxy = D\u00e9tection automatique des r\u00e9glages proxy
|
||||
|
||||
m.configure_proxy =<html>Connexion au serveur impossible. \
|
||||
<ul><li> Veuillez v\u00e9rifier que <code>javaw.exe</code> n'est bloqu\u00e9 \
|
||||
par aucun pare-feu ou antivirus. \
|
||||
Vous pouvez vous rendre sur la configuration du pare-feu windows via \
|
||||
(D\u00e9marrer -> Panneau de Configuration -> Pare-feu Windows ).</ul> \
|
||||
<p> Il est \u00e9galement possible que vous soyez derri\u00e8re un proxy que l'application \
|
||||
est incapable de d\u00e9tecter automatiquement. \
|
||||
Si tel est le cas, veuillez saisir les r\u00e9glages proxy ci-dessous.</html>
|
||||
|
||||
m.proxy_extra =<html>Si vous \u00eates certain de ne pas utiliser de proxy, il est \
|
||||
possible qu'une interruption temporaire de la connexion internet emp\u00fbche la \
|
||||
communication avec les serveurs. Dans ce cas, vous pouvez relancer \
|
||||
l'installation ult\u00e9rieurement.</html>
|
||||
|
||||
m.proxy_host = Proxy IP
|
||||
m.proxy_port = Proxy port
|
||||
m.proxy_ok = OK
|
||||
m.proxy_cancel = Annuler
|
||||
|
||||
m.downloading_java = T\u00e9l\u00e9chargement en cours de la Machine Virtuelle Java
|
||||
m.unpacking_java = D\u00e9compression en cours de la Machine Virtuelle Java
|
||||
|
||||
m.resolving = R\u00e9solution des t\u00e9l\u00e9chargements en cours
|
||||
m.downloading = T\u00e9l\u00e9chargement des donn\u00e9es en cours
|
||||
m.failure = \u00c9chec du t\u00e9l\u00e9chargement: {0}
|
||||
|
||||
m.checking = V\u00e9rification de la mise-\u00e0-jour en cours
|
||||
m.validating = Validation en cours
|
||||
m.patching = Modification en cours
|
||||
m.launching = Lancement en cours
|
||||
|
||||
m.patch_notes = Notes de mise-\u00e0-jour
|
||||
|
||||
m.complete = Complet \u00e0 {0}%
|
||||
m.remain = {0} restant
|
||||
|
||||
m.updating_metadata = T\u00e9l\u00e9chargement des fichiers de contr\u00f4les en cours
|
||||
|
||||
m.init_failed = Notre fichier de configuration est perdu ou corrompu. T\u00e9l\u00e9chargement \
|
||||
d'une nouvelle copie en cours ...
|
||||
|
||||
m.java_download_failed = Impossible de t\u00e9l\u00e9charger automatiquement la \
|
||||
version de Java n\u00e9cessaire.\n\n\
|
||||
Veuillez vous rendre sur www.java.com et t\u00e9l\u00e9charger et installer la version \
|
||||
la plus r\u00e9cente de Java, avant d'ex\u00e9cuter l'application \u00e0 nouveau.
|
||||
|
||||
m.java_unpack_failed = Impossible de d\u00e9compresser la version de \
|
||||
Java n\u00e9cessaire. Veuillez v\u00e9rifier que vous avez au moins 100 MB d'espace libre \
|
||||
sur votre disque dur puis tenter d'ex\u00e9cuter l'application \u00e0 nouveau.\n\n\
|
||||
Si le probl\u00e8me persiste, rendez vous www.java.com et t\u00e9l\u00e9chargez et \
|
||||
installez la version plus r\u00e9cente de Java puis essayez de nouveau.
|
||||
|
||||
m.unable_to_repair = Impossible de t\u00e9l\u00e9charger les fichiers n\u00e9cessaires apr\u00e8s \
|
||||
cinq tentatives. Vous pouvez tenter d'ex\u00e9cuter l'application \u00e0 nouveau, mais il est \
|
||||
possible qu'une d\u00e9sinstallation / r\u00e9installation soit n\u00e9cessaire.
|
||||
|
||||
m.unknown_error = Une erreur inconnue a fait \u00e9chouer le lancement de l'application. \
|
||||
Veuillez visiter\n{0} pour plus d'informations.
|
||||
m.init_error = Le lancement de l'application a \u00e9chou\u00e9 \u00e0 cause de l'erreur \
|
||||
suivante:\n{0}\n\nVeuillez visiter\n{1} pour plus d'informations.
|
||||
|
||||
m.readonly_error = Le r\u00e9pertoire d'installation de cette application: \
|
||||
\n{0}\nest en lecture seule. Veuillez installer l'application dans un r\u00e9pertoire avec \
|
||||
un acc\u00e8s en \u00e9criture.
|
||||
|
||||
m.missing_resource = Le lancement de l'application a \u00e9chou\u00e9 \u00e0 cause d'une \
|
||||
ressource manquante:\n{0}\n\nVeuillez visiter\n{1} pour plus d'informations.
|
||||
|
||||
m.insufficient_permissions_error = Vous n'avez pas accepter la signature \
|
||||
num\u00e9rique de cette application. Si vous souhaitez ex\u00e9cuter cette application, vous \
|
||||
devez accepter sa signature num\u00e9rique.\n\nAfin de le faire, vous devez quitter votre \
|
||||
navigateur, le red\u00e9marrer, retourner \u00e0 cette page puis relancer l'application. \
|
||||
Une fois la bo\u00eete de dialogue de s\u00e9curit\u00e9 affich\u00e9e, cliquez sur le bouton \
|
||||
pour accepter la signature num\u00e9rique et accorder les permissions n\u00e9cessaires au bon \
|
||||
fonctionnement de l'application.
|
||||
|
||||
m.corrupt_digest_signature_error = Nous ne pouvons pas v\u00e9rifier la signature num\u00e9rique \
|
||||
de l'application.\nVeuillez v\u00e9rifier que vous lancez l'application \ndepuis \
|
||||
la bonne adresse internet.
|
||||
|
||||
m.default_install_error = la section de support du site
|
||||
|
||||
m.another_getdown_running = Plusieurs instances d'installation de cette \
|
||||
application sont d\u00e9j\u00e0 en cours d'ex\u00e9cution. Cette instance va s'arr\u00eater \
|
||||
afin de permettre aux autres d'aboutir.
|
||||
|
||||
m.applet_stopped = L'appelet Getdown a \u00e9t\u00e9 stopp\u00e9e.
|
||||
|
||||
# application/digest errors
|
||||
m.missing_appbase = Le fichier de configuration ne contient pas 'appbase'.
|
||||
m.invalid_version = Le fichier de configuration sp\u00e9cifie une version invalide.
|
||||
m.invalid_appbase = Le fichier de configuration sp\u00e9cifie un 'appbase' invalide.
|
||||
m.missing_class = Le fichier de configuration ne contient pas la classe de l'application.
|
||||
m.missing_code = Le fichier de configuration ne sp\u00e9cifie aucune ressource de code.
|
||||
m.invalid_digest_file = Le fichier digest est invalide.
|
||||
@@ -0,0 +1,111 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Getdown translation messages
|
||||
|
||||
m.abort_title = Annullare l'installazione?
|
||||
m.abort_confirm = <html>Sei sicuro di voler annullare l'installazione? \
|
||||
Potrai riprenderla in seguito, riavviando nuovamente l'applicazione.</html>
|
||||
m.abort_ok = Chiudi
|
||||
m.abort_cancel = Continua l'installazione
|
||||
|
||||
m.detecting_proxy = Provo a recuperare le configurazioni del proxy
|
||||
|
||||
m.configure_proxy = <html>Impossibile collegarsi al server per \
|
||||
recuperare i dati. \
|
||||
<ul><li> Se il Firewall di Windows o Norton Internet Security bloccano \
|
||||
<code>javaw.exe</code> non si possono scaricare i dati. Devi \
|
||||
permettere a <code>javaw.exe</code> di accedere a internet. Puoi provare \
|
||||
di nuovo, ma dovresti abilitare javaw.exe nella tua configurazione \
|
||||
del firewall ( Start -> Pannello di Controllo -> Windows Firewall ).</ul> \
|
||||
<p> Il tuo computer potrebbe accedere a internet attraverso un proxy e \
|
||||
questo potrebbe non essere stato riconosciuto automaticamente. Se conosci le \
|
||||
tue impostazioni del proxy, puoi inserirle di seguito.</html>
|
||||
|
||||
m.proxy_extra = <html>Se sei sicuro di non usare proxy \
|
||||
potrebbe essere un problema di internet o di collegamento con il server. \
|
||||
In questo caso puoi annullare e ripetere l'installazione più tardi.</html>
|
||||
|
||||
m.proxy_host = IP Proxy
|
||||
m.proxy_port = Porta Proxy
|
||||
m.proxy_ok = OK
|
||||
m.proxy_cancel = Annulla
|
||||
|
||||
m.downloading_java = Scaricando la Java Virtual Machine
|
||||
m.unpacking_java = Scompattando la Java Virtual Machine
|
||||
|
||||
m.resolving = Recuperando i file da scaricare
|
||||
m.downloading = Download dei dati
|
||||
m.failure = Download fallito: {0}
|
||||
|
||||
m.checking = Sto controllando gli aggiornamenti
|
||||
m.validating = Validazione
|
||||
m.patching = Applico le patch
|
||||
m.launching = Avvio
|
||||
|
||||
m.patch_notes = Note delle Patch
|
||||
m.play_again = Avvia Nuovamente
|
||||
|
||||
m.complete = {0}% completato
|
||||
m.remain = {0} rimasto
|
||||
|
||||
m.updating_metadata = Scarico i file di controllo
|
||||
|
||||
m.init_failed = La configurazione è corrotta o mancante. Provo a \
|
||||
scaricarne una nuova copia...
|
||||
|
||||
m.java_download_failed = Impossibile scaricare la versione corretta \
|
||||
di Java per il tuo computer.\n\n\
|
||||
Visita www.java.com e scarica l'ultima versione di \
|
||||
Java, poi lancia di nuovo l'applicazione.
|
||||
|
||||
m.java_unpack_failed = Impossibile scompattare l'aggiornamento di \
|
||||
Java. Verifica di avere almeno 100 MB di spazio libero nel tuo \
|
||||
hard disk e prova a rilanciare l'applicazione.\n\n\
|
||||
Se l'errore persiste, vistia www.java.com, scarica e \
|
||||
installa l'ultima versione di Java e riprova.
|
||||
|
||||
m.unable_to_repair = Impossibile scaricare i file necessari dopo 5 \
|
||||
tentativi. Puoi provare a rilanciare l'applicazione, ma se fallisce \
|
||||
di nuovo potresti dover reinstallarla.
|
||||
|
||||
m.unknown_error = L'applicazione non è stata avviata a causa di uno strano \
|
||||
errore che non conosco. Visita\n{0} per avere informazioni \
|
||||
in merito.
|
||||
m.init_error = L'applicazione non è stata avviata a causa del seguente \
|
||||
errore:\n{0}\n\nVistita\n{1} per avere \
|
||||
informazioni su come risolvere il problema.
|
||||
|
||||
m.readonly_error = La directory dove l'applicazione è installata: \
|
||||
\n{0}\nè in sola lettura. Installa l'applicazione dove hai i diritti \
|
||||
di scrittura.
|
||||
|
||||
m.missing_resource = L'applicazione non è stata avviata a causa di mancanza \
|
||||
di risorse:\n{0}\n\nVisita\n{1} per avere informazioni su come risolvere \
|
||||
questi problemi.
|
||||
|
||||
m.insufficient_permissions_error = Non hai accettato la \
|
||||
firma digitale. Se vuoi eseguire l'applicazione devi accettare la \
|
||||
firma digitale.\n\nPer farlo, riavvia il tuo browser \
|
||||
e ritorna in questa pagina per rilanciare l'applicazione. Quando l'avviso \
|
||||
di sicurezza viene mostrato, clicca per accettare la firma digitale \
|
||||
ed eseguire l'applicazione con i privilegi necessari.
|
||||
|
||||
m.corrupt_digest_signature_error = Impossibile verificare la firma digitale dell'applicazione \
|
||||
.\nControlla di aver lanciato l'applicazione dal\n\
|
||||
sito web corretto.
|
||||
|
||||
m.default_install_error = la sezione di supporto del sito
|
||||
|
||||
m.another_getdown_running = E' già in esecuzione un'istanza del programma. \
|
||||
Questa verrà chiusa.
|
||||
|
||||
m.applet_stopped = L'applet di Getdown è stata interrotta.
|
||||
|
||||
# application/digest errors
|
||||
m.missing_appbase = Il tag "appbase" è mancante.
|
||||
m.invalid_version = Il file di configurazione non contiene una versione valida (tag "version").
|
||||
m.invalid_appbase = Il tag "appbase" non è valido.
|
||||
m.missing_class = Il file di configurazione non contiene la classe da eseguire (tag "class").
|
||||
m.missing_code = Il file di configurazione non contiene alcuna risorsa (tag "code").
|
||||
m.invalid_digest_file = Il file di digest non è valido.
|
||||
@@ -0,0 +1,104 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Getdown translation messages
|
||||
|
||||
m.abort_title = \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3092\u4e2d\u6b62\u3057\u307e\u3059\u304b\uff1f
|
||||
m.abort_confirm = <html>\u672c\u5f53\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3092\u4e2d\u6b62\u3057\u307e\u3059\u304b\uff1f \
|
||||
\u5f8c\u3067\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u8d77\u52d5\u3057\u305f\u969b\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3092\u518d\u958b\u3067\u304d\u307e\u3059\u3002</html>
|
||||
m.abort_ok = \u4e2d\u6b62
|
||||
m.abort_cancel = \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306e\u7d9a\u884c
|
||||
|
||||
m.detecting_proxy = \u81ea\u52d5\u30d7\u30ed\u30ad\u30b7\u8a2d\u5b9a\u5b9f\u884c\u4e2d
|
||||
|
||||
m.configure_proxy = <html>\u30b5\u30fc\u30d0\u306b\u63a5\u7d9a\u3067\u304d\u306a\u3044\u305f\u3081\u3001\u30b2\u30fc\u30e0\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u306b \
|
||||
\u5931\u6557\u3057\u307e\u3057\u305f\u3002 \
|
||||
<ul><li>\u30a6\u30a3\u30f3\u30c9\u30a6\u30ba\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u307e\u305f\u306f\u30ce\u30fc\u30c8\u30f3\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u304c \
|
||||
<code>javaw.exe</code>\u3092\u30d6\u30ed\u30c3\u30af\u3059\u308b\u3088\u3046\u8a2d\u5b9a\u3057\u3066\u3042\u308b\u5834\u5408\u306f\u3001\u30b2\u30fc\u30e0\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3067\u304d\u307e\u305b\u3093\u3002 \u8a2d\u5b9a\u3092 \
|
||||
<code>javaw.exe</code>\u7d4c\u7531\u3067\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u3088\u3046\u306b\u5909\u66f4\u3057\u3066\u304f\u3060\u3055\u3044\u3002 \u30b2\u30fc\u30e0\u3092\u518d\u8d77\u52d5 \
|
||||
\u3057\u305f\u5f8c\u3001\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u306e\u8a2d\u5b9a\u304b\u3089javaw.exe \u3092\u524a\u9664 \
|
||||
\u3057\u3066\u304f\u3060\u3055\u3044\uff08\u30b9\u30bf\u30fc\u30c8\u2192\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u30d1\u30cd\u30eb\u2192\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\uff09\u3002</ul> \
|
||||
<p>\u30d7\u30ed\u30ad\u30b7\u8a2d\u5b9a\u306e\u81ea\u52d5\u691c\u51fa\u304c\u3067\u304d\u307e\u305b\u3093\u3002\u304a\u4f7f\u3044\u306e\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u30fc\u306f \
|
||||
\u30d7\u30ed\u30ad\u30b7\u3092\u4f7f\u7528\u3057\u3066\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u3078\u30a2\u30af\u30bb\u30b9\u3057\u3066\u3044\u307e\u3059\u3002 \u30d7\u30ed\u30ad\u30b7\u8a2d\u5b9a\u306e\u8a73\u7d30\u304c \
|
||||
\u308f\u304b\u3063\u3066\u3044\u308b\u5834\u5408\u306f\u3001\u4e0b\u306b\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002</html>
|
||||
|
||||
m.proxy_extra = <html>\u30d7\u30ed\u30ad\u30b7\u3092\u4f7f\u7528\u3057\u3066\u3044\u306a\u3044\u5834\u5408\u306f\u3001\u4e00\u6642\u7684\u306a \
|
||||
\u30a4\u30f3\u30bf\u30fc\u30cd\u30c3\u30c8\u306e\u4e0d\u5177\u5408\u306b\u3088\u308a\u3001\u30b5\u30fc\u30d0\u3068\u4ea4\u4fe1\u3067\u304d\u306a\u3044\u72b6\u614b\u306b\u3042\u308b \
|
||||
\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002 \u305d\u306e\u5834\u5408\u306f\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3092\u30ad\u30e3\u30f3\u30bb\u30eb\u3057\u3066\u3001 \
|
||||
\u5f8c\u307b\u3069\u6539\u3081\u3066\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044\u3002</html>
|
||||
|
||||
m.proxy_host = \u30d7\u30ed\u30ad\u30b7IP
|
||||
m.proxy_port = \u30d7\u30ed\u30ad\u30b7\u30dd\u30fc\u30c8
|
||||
m.proxy_ok = OK
|
||||
m.proxy_cancel = \u30ad\u30e3\u30f3\u30bb\u30eb
|
||||
|
||||
m.downloading_java = Java\u30d0\u30fc\u30c1\u30e3\u30eb\u30de\u30b7\u30f3\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u4e2d
|
||||
m.unpacking_java = Java\u30d0\u30fc\u30c1\u30e3\u30eb\u30de\u30b7\u30f3\u306e\u89e3\u51cd\u4e2d
|
||||
|
||||
m.resolving = \u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u306e\u8a2d\u5b9a\u4e2d
|
||||
m.downloading = \u30c7\u30fc\u30bf\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u4e2d
|
||||
m.failure = \u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u5931\u6557\uff1a {0}
|
||||
|
||||
m.checking = \u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u306e\u78ba\u8a8d\u4e2d
|
||||
m.validating = \u8a8d\u8a3c\u4e2d
|
||||
m.patching = \u4fee\u6b63\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u5b9f\u884c\u4e2d
|
||||
m.launching = \u5b9f\u884c\u4e2d
|
||||
|
||||
m.complete = {0}\uff05\u5b8c\u4e86
|
||||
m.remain = \u3000\u6b8b\u308a{0}
|
||||
|
||||
m.updating_metadata = \u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u30d5\u30a1\u30a4\u30eb\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u4e2d
|
||||
|
||||
m.init_failed = \u74b0\u5883\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u304c\u5b58\u5728\u3057\u306a\u3044\u304b\u3001\u307e\u305f\u306f\u58ca\u308c\u3066\u3044\u307e\u3059\u3002 \u65b0\u30d0\u30fc\u30b8\u30e7\u30f3\u3092 \
|
||||
\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u4e2d\u2026
|
||||
|
||||
m.java_download_failed = \u304a\u4f7f\u3044\u306e\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u30fc\u306b\u3001Java\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u6700\u65b0 \
|
||||
\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u81ea\u52d5\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\n\n \
|
||||
www.java.com \u304b\u3089\u6700\u65b0\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u624b\u52d5\u3067\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u3001 \
|
||||
\u518d\u5ea6\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u8d77\u52d5\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
|
||||
m.java_unpack_failed = Java\u306e\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u30d0\u30fc\u30b8\u30e7\u30f3\u304c\u89e3\u51cd \
|
||||
\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002 \u30cf\u30fc\u30c9\u30c9\u30e9\u30a4\u30d6\u306e\u30e1\u30e2\u30ea\u304c100MB\u4ee5\u4e0a\u3042\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3066\u304b\u3089 \
|
||||
\u518d\u5ea6\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u8d77\u52d5\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n\n \
|
||||
\u554f\u984c\u304c\u89e3\u6c7a\u3057\u306a\u3044\u5834\u5408\u306f\u3001www.java.com \u304b\u3089Java\u306e\u6700\u65b0\u30d0\u30fc\u30b8\u30e7\u30f3\u3092 \
|
||||
\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u304b\u3089\u3001\u518d\u5ea6\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\u3002
|
||||
|
||||
m.unable_to_repair = 5\u56de\u8a66\u884c\u3057\u307e\u3057\u305f\u304c\u3001\u5fc5\u8981\u306a\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9 \
|
||||
\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002 \u5f8c\u307b\u3069\u6539\u3081\u3066\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044\u3002 \
|
||||
\u518d\u5ea6\u5931\u6557\u3057\u305f\u5834\u5408\u306f\u3001\u30a2\u30f3\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5f8c\u306b\u518d\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
|
||||
m.unknown_error = \u539f\u56e0\u4e0d\u660e\u306e\u30a8\u30e9\u30fc\u306b\u3088\u308a\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u304c \
|
||||
\u5b9f\u884c\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002 \u89e3\u6c7a\u65b9\u6cd5\u3092\n{0}\u3067 \
|
||||
\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
m.init_error = \u6b21\u306e\u30a8\u30e9\u30fc\u306b\u3088\u308a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u5b9f\u884c\u3067\u304d\u307e\u305b\u3093 \
|
||||
\u3067\u3057\u305f\u3002\n{0}\n\n\u5bfe\u51e6\u65b9\u6cd5\u3092\n{1}\u3067 \
|
||||
\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
|
||||
m.readonly_error = \u3053\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u305f\u30d5\u30a9\u30eb\u30c0\u306f \
|
||||
\n{0}\n\u8aad\u307f\u53d6\u308a\u5c02\u7528\u306b\u8a2d\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059\u3002 \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u66f8\u304d\u8fbc\u307f\u304c\u3067\u304d\u308b\u30d5\u30a9\u30eb\u30c0\u306b \
|
||||
\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
|
||||
m.missing_resource = \u30ea\u30bd\u30fc\u30b9\u4e0d\u660e\u306e\u305f\u3081\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u5b9f\u884c\u3067\u304d\u307e\u305b\u3093 \
|
||||
\u3067\u3057\u305f\u3002\n{0}\n\n\u5bfe\u51e6\u65b9\u6cd5\u3092\n{1}\u3067\u78ba\u8a8d \
|
||||
\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
|
||||
m.insufficient_permissions_error = \u3053\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30c7\u30b8\u30bf\u30eb\u7f72\u540d\u304c\u62d2\u5426 \
|
||||
\u3055\u308c\u307e\u3057\u305f\u3002 \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u5b9f\u884c\u3059\u308b\u5834\u5408\u306f\u3001\u30c7\u30b8\u30bf\u30eb\u7f72\u540d\u306e\u627f\u8a8d\u304c \
|
||||
\u5fc5\u8981\u3067\u3059\u3002\n\n\u627f\u8a8d\u306b\u306f\u3001\u30d6\u30e9\u30a6\u30b6\u3092\u9589\u3058\u3066\u304b\u3089\u518d\u5ea6\u958b\u304d\u3001 \
|
||||
\u672c\u30db\u30fc\u30e0\u30da\u30fc\u30b8\u3092\u518d\u8868\u793a\u3057\u3066\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u518d\u5ea6\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044 \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u306e \
|
||||
\u8b66\u544a\u304c\u8868\u793a\u3055\u308c\u305f\u6642\u306f\u3001\u5b9f\u884c\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u30c7\u30b8\u30bf\u30eb\u7f72\u540d\u3092\u627f\u8a8d\u3057\u3001 \
|
||||
\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
|
||||
m.corrupt_digest_signature_error = \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30c7\u30b8\u30bf\u30eb\u7f72\u540d\u304c\u8a8d\u8a3c \
|
||||
\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\n\u6307\u5b9a\u30db\u30fc\u30e0\u30da\u30fc\u30b8\u304b\u3089\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u5b9f\u884c\u3057\u3066\u3044\u308b\u304b\n \
|
||||
\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002
|
||||
|
||||
m.default_install_error = \u30db\u30fc\u30e0\u30da\u30fc\u30b8\u3067\u306e\u30b5\u30dd\u30fc\u30c8\u8868\u793a
|
||||
|
||||
# application/digest errors
|
||||
m.missing_appbase = \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306eappbase\u304c\u4e0d\u660e\u3067\u3059\u3002
|
||||
m.invalid_version = \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306f\u7121\u52b9\u306a\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u6307\u5b9a\u3057\u3066\u3044\u307e\u3059\u3002
|
||||
m.invalid_appbase = \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u304c\u7121\u52b9\u306aappbase\u3092\u6307\u5b9a\u3057\u3066\u3044\u307e\u3059\u3002
|
||||
m.missing_class = \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30af\u30e9\u30b9\u304c\u4e0d\u660e\u3067\u3059\u3002
|
||||
m.missing_code = \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb\u3067\u30b3\u30fc\u30c9\u30ea\u30bd\u30fc\u30b9\u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
|
||||
m.invalid_digest_file = \u30c0\u30a4\u30b8\u30a7\u30b9\u30c8\u30d5\u30a1\u30a4\u30eb\u304c\u7121\u52b9\u3067\u3059\u3002
|
||||
@@ -0,0 +1,99 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Getdown translation messages
|
||||
|
||||
m.abort_title = \uC124\uCE58\uB97C \uCDE8\uC18C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?
|
||||
m.abort_confirm = <html>\uC815\uB9D0\uB85C \uC124\uCE58\uB97C \uCDE8\uC18C\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C? \
|
||||
\uB098\uC911\uC5D0 \uC5B4\uD50C\uB9AC\uCF00\uC774\uC158\uC744 \uC2E4\uD589\uD558\uC5EC \uC124\uCE58\uB97C \uC7AC\uAC1C\uD558\uC5EC \uC8FC\uC2ED\uC2DC\uC624.</html>
|
||||
m.abort_ok = \uC911\uC9C0
|
||||
m.abort_cancel = \uACC4\uC18D\uD558\uC5EC \uC124\uCE58
|
||||
|
||||
m.detecting_proxy = \uC790\uB3D9 \uD504\uB85D\uC2DC\uB97C \uC124\uC815\uC744 \uC2DC\uB3C4
|
||||
|
||||
m.configure_proxy = <html>\uAC8C\uC784 \uB370\uC774\uD130\uB97C \uBC1B\uAE30 \uC704\uD55C \uC11C\uBC84 \uC811\uC18D\uC5D0 \uC2E4\uD328\uD558\uC600\uC2B5\uB2C8\uB2E4.\
|
||||
<ul><li>\uC708\uB3C4\uC6B0 \uBC29\uD654\uBCBD \uB610\uB294 \uB178\uD134 \uC778\uD130\uB137 \uC2DC\uD050\uB9AC\uD2F0\uAC00 <code>javaw.exe</code>\uC774 \uC124\uC815\uC5D0\uC11C \uCC28\uB2E8\uB418\uC5B4 \uC788\uC744 \uACBD\uC6B0, \
|
||||
\uAC8C\uC784 \uB370\uC774\uD130\uB97C \uB2E4\uC6B4\uB85C\uB4DC \uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \
|
||||
<code>javaw.exe</code>\uAC00 \uC778\uD130\uB137 \uC5F0\uACB0\uC744 \uD560 \uC218 \uC788\uB3C4\uB85D \uC124\uC815\uC744 \uBCC0\uACBD\uD558\uC5EC \uC8FC\uC2ED\uC2DC\uC624. \
|
||||
\uAC8C\uC784\uC744 \uB2E4\uC2DC \uC2E4\uD589\uD55C \uD6C4, \uBC29\uD654\uBCBD \uC124\uC815\uC5D0\uC11C javaw.exe\uB97C \uC0AD\uC81C\uD558\uC5EC \uC8FC\uC2ED\uC2DC\uC624. \
|
||||
( \uC2DC\uC791 -> \uC81C\uC5B4\uD310 -> \uC708\uB3C4\uC6B0 \uBC29\uD654\uBCBD )</ul> \
|
||||
<p> \uCEF4\uD4E8\uD130\uAC00 \uD504\uB85D\uC2DC \uC11C\uBC84\uB97C \uD1B5\uD574 \uC778\uD130\uB137\uC5D0 \uC5F0\uACB0\uB418\uC5B4 \uC788\uB2E4\uBA74, \uD504\uB85D\uC2DC \uC124\uC815\uC758 \uC790\uB3D9 \uAD6C\uC131\uC744 \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC73C\uBBC0\uB85C, \
|
||||
\uC0AC\uC6A9\uD558\uB294 \uD504\uB85D\uC2DC \uC124\uC815\uC744 \uC54C\uACE0 \uC788\uC744 \uACBD\uC6B0 \uC544\uB798\uC5D0 \uC785\uB825\uD558\uC5EC \uC8FC\uC2DC\uAE38 \uBC14\uB78D\uB2C8\uB2E4.</html>
|
||||
|
||||
m.proxy_extra = \uC790\uB3D9 \uD504\uB85D\uC2DC\uB97C \uC124\uC815\uC744 \uC2DC\uB3C4
|
||||
|
||||
m.proxy_host = \uD504\uB85D\uC2DC IP
|
||||
m.proxy_port = \uD504\uB85D\uC2DC \uD3EC\uD2B8
|
||||
m.proxy_ok = OK
|
||||
m.proxy_cancel = \uCDE8\uC18C
|
||||
|
||||
m.downloading_java = \uC790\uBC14 \uAC00\uC0C1 \uBA38\uC2E0(JVM) \uB2E4\uC6B4\uB85C\uB4DC \uC911
|
||||
m.unpacking_java = \uC790\uBC14 \uAC00\uC0C1 \uBA38\uC2E0(JVM) \uC555\uCD95\uC744 \uD574\uC81C\uD558\uB294 \uC911
|
||||
|
||||
m.resolving = \uB2E4\uC6B4\uB85C\uB4DC \uBD84\uC11D \uC911
|
||||
m.downloading = \uB370\uC774\uD130 \uB2E4\uC6B4\uB85C\uB4DC \uC911
|
||||
m.failure = \uB2E4\uC6B4\uB85C\uB4DC \uC2E4\uD328: {0}
|
||||
|
||||
m.checking = \uC5C5\uB370\uC774\uD2B8 \uCCB4\uD06C
|
||||
m.validating = \uC720\uD6A8\uC131 \uAC80\uC0AC \uC911
|
||||
m.patching = \uD328\uCE58 \uC911
|
||||
m.launching = \uC2E4\uD589 \uC911
|
||||
|
||||
m.patch_notes = \uD328\uCE58 \uB178\uD2B8
|
||||
m.play_again = \uB2E4\uC2DC \uC2E4\uD589
|
||||
|
||||
m.complete = {0}% \uC644\uB8CC
|
||||
m.remain = {0} \uB0A8\uC74C
|
||||
|
||||
m.updating_metadata = \uCEE8\uD2B8\uB864 \uD30C\uC77C\uC744 \uB2E4\uC6B4\uB85C\uB4DC \uC911
|
||||
|
||||
m.init_failed = \uC124\uC815 \uD30C\uC77C\uC774 \uB204\uB77D\uB418\uC5C8\uAC70\uB098 \uBCC0\uD615\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \
|
||||
\uC0C8\uB85C\uC6B4 \uBCF5\uC0AC\uBCF8\uC744 \uB2E4\uC6B4\uB85C\uB4DC \uC911\uC785\uB2C8\uB2E4...
|
||||
|
||||
m.java_download_failed = \uC774 \uCEF4\uD4E8\uD130\uC5D0 \uD544\uC694\uD55C \uC0C8\uB85C\uC6B4 \uBC84\uC804\uC758 \uC790\uBC14\uB97C \uC790\uB3D9\uC73C\uB85C \uB2E4\uC6B4\uB85C\uB4DC\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.\n\n\
|
||||
\uC790\uBC14 \uC6F9\uC0AC\uC774\uD2B8(www.java.com)\uB85C \uAC00\uC11C \uCD5C\uC2E0\uC758 \uC790\uBC14\uB97C \uB2E4\uC6B4\uB85C\uB4DC \uBC1B\uC73C\uC2E0 \uD6C4, \
|
||||
\uC5B4\uD50C\uB9AC\uCF00\uC774\uC158\uC744 \uB2E4\uC2DC \uC2E4\uD589\uD574 \uC8FC\uC2ED\uC2DC\uC624.
|
||||
|
||||
m.java_unpack_failed = \uC5C5\uB370\uC774\uD2B8\uB41C \uBC84\uC804\uC758 \uC790\uBC14\uC758 \uC555\uCD95\uC744 \uD480 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \
|
||||
\uD558\uB4DC\uB4DC\uB77C\uC774\uBE0C\uC5D0 \uCD5C\uC18C\uD55C 100MB\uC758 \uC6A9\uB7C9\uC744 \uD655\uBCF4\uD55C \uC774\uD6C4, \uC5B4\uD50C\uB9AC\uCF00\uC774\uC158\uC744 \uB2E4\uC2DC \uC2E4\uD589\uD574 \uC8FC\uC2ED\uC2DC\uC624.\n\n\
|
||||
\uB9CC\uC57D \uBB38\uC81C\uAC00 \uD574\uACB0\uB418\uC9C0 \uC54A\uB294\uB2E4\uBA74, \uC790\uBC14 \uC6F9\uC0AC\uC774\uD2B8(www.java.com)\uB85C \uAC00\uC11C \uCD5C\uC2E0\uC758 \uC790\uBC14\uB97C \uB2E4\uC6B4\uB85C\uB4DC \uBC1B\uC73C\uC2E0 \uD6C4, \
|
||||
\uC5B4\uD50C\uB9AC\uCF00\uC774\uC158\uC744 \uB2E4\uC2DC \uC2E4\uD589\uD574 \uC8FC\uC2ED\uC2DC\uC624.
|
||||
|
||||
m.unable_to_repair = \uB2E4\uC12F\uBC88\uC758 \uC2DC\uB3C4\uC5D0\uB3C4 \uD544\uC694\uD55C \uD30C\uC77C\uC744 \uB2E4\uC6B4\uB85C\uB4DC\uD558\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4. \
|
||||
\uC5B4\uD50C\uB9AC\uCF00\uC774\uC158\uC744 \uB2E4\uC2DC \uC2DC\uC791\uD574\uBCF4\uC2DC\uACE0, \uADF8\uB798\uB3C4 \uB2E4\uC6B4\uB85C\uB4DC\uC5D0 \uC2E4\uD328\uD55C\uB2E4\uBA74, \uC5B4\uD50C\uB9AC\uCF00\uC774\uC158\uC744 \uC81C\uAC70\uD55C \uD6C4, \uB2E4\uC2DC \uC2E4\uD589\uD574\uBCF4\uC2DC\uAE30 \uBC14\uB78D\uB2C8\uB2E4.
|
||||
|
||||
m.unknown_error = \uBCF5\uAD6C\uB420 \uC218 \uC5C6\uB294 \uC624\uB958\uB85C \uC778\uD558\uC5EC \uC5B4\uD50C\uB9AC\uCF00\uC774\uC158\uC758 \uC2E4\uD589\uC774 \uC911\uB2E8\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \
|
||||
\n{0}\uC5D0 \uB300\uD55C \uBCF5\uAD6C \uBC29\uBC95\uC744 \uCC3E\uAE30 \uC704\uD574\uC11C \uBC29\uBB38\uD558\uC2DC\uAE38 \uBC14\uB78D\uB2C8\uB2E4.
|
||||
|
||||
m.init_error = \uC5B4\uD50C\uB9AC\uCF00\uC774\uC158\uC774 \uC544\uB798\uC640 \uAC19\uC740 \uC5D0\uB7EC\uB85C \uC2E4\uD589\uC774 \uC911\uB2E8\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uC5D0\uB7EC:\
|
||||
\n{0}\n\n{1}\uC5D0 \uB300\uD55C \uBB38\uC81C \uD574\uACB0 \uBC29\uBC95\uC744 \uCC3E\uAE30 \uC704\uD574\uC11C \uBC29\uBB38\uD558\uC2DC\uAE38 \uBC14\uB78D\uB2C8\uB2E4.
|
||||
|
||||
m.readonly_error = \uC5B4\uD50C\uB9AC\uCF00\uC774\uC158\uC774 \uC124\uCE58\uB41C \uB514\uB809\uD1A0\uB9AC: \
|
||||
\n{0}\n\uAC00 \uC77D\uAE30 \uC804\uC6A9\uC785\uB2C8\uB2E4. \uC77D\uAE30 \uAD8C\uD55C\uC774 \uC2B9\uC778\uB41C \uB809\uD1A0\uB9AC\uC5D0 \uC5B4\uD50C\uB9AC\uCF00\uC774\uC158\uC744 \uC124\uCE58\uD558\uC2DC\uAE38 \uBC14\uB78D\uB2C8\uB2E4.
|
||||
|
||||
m.missing_resource = \uB9AC\uC18C\uC2A4\uC758 \uC190\uC2E4\uB85C \uC778\uD558\uC5EC \uC5B4\uD50C\uB9AC\uCF00\uC774\uC158\uC758 \uC2E4\uD589\uC774 \uC911\uB2E8\uB418\uC5C8\uC2B5\uB2C8\uB2E4. : \
|
||||
\n{0}\n\n{1}\uC5D0 \uB300\uD55C \uBB38\uC81C \uD574\uACB0 \uBC29\uBC95\uC744 \uCC3E\uAE30 \uC704\uD574\uC11C \uBC29\uBB38\uD558\uC2DC\uAE38 \uBC14\uB78D\uB2C8\uB2E4.
|
||||
|
||||
m.insufficient_permissions_error = \uC774 \uC5B4\uD50C\uB9AC\uCF00\uC774\uC158\uC758 \uB514\uC9C0\uD0C8 \uC11C\uBA85\uC744 \uD655\uC778\uD558\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \
|
||||
\uC5B4\uD50C\uB9AC\uCF00\uC774\uC158\uC744 \uC2E4\uD589\uD558\uAE30 \uC704\uD574\uC11C \uB514\uC9C0\uD0C8 \uC11C\uBA85\uC744 \uD655\uC778\uD558\uC5EC \uC8FC\uC2ED\uC2DC\uC624. \
|
||||
\n\n\uADF8\uB9AC\uACE0 \uB098\uC11C \uC6F9 \uBE0C\uB77C\uC6B0\uC800\uB97C \uB2EB\uACE0 \uB2E4\uC2DC \uC2DC\uC791\uD558\uC5EC \uC6F9\uD398\uC774\uC9C0\uB85C \uB3CC\uC544\uC640 \uC5B4\uD50C\uB9AC\uCF00\uC774\uC158\uC744 \uC7AC\uC2DC\uC791\uD574\uC8FC\uC2DC\uAE30 \uBC14\uB78D\uB2C8\uB2E4. \
|
||||
\uBCF4\uC548\uC5D0 \uB300\uD55C \uB300\uD654\uC0C1\uC790\uAC00 \uBCF4\uC774\uBA74, \uB514\uC9C0\uD0C8 \uC11C\uBA85\uC5D0 \uB300\uD55C \uD655\uC778 \uBC84\uD2BC\uC744 \uD074\uB9AD\uD558\uACE0, \uC5B4\uD50C\uB9AC\uCF00\uC774\uC158\uC774 \uC2E4\uD589\uB418\uAE30 \uC704\uD55C \
|
||||
\uAD8C\uD55C\uC744 \uBD80\uC5EC\uD574\uC8FC\uC2DC\uAE30 \uBC14\uB78D\uB2C8\uB2E4.
|
||||
|
||||
m.corrupt_digest_signature_error = \uC5B4\uD50C\uB9AC\uCF00\uC774\uC158\uC758 \uB514\uC9C0\uD0C8 \uC11C\uBA85\uC744 \uD655\uC778\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.\n \
|
||||
\uC62C\uBC14\uB978 \uC6F9\uC0AC\uC774\uD2B8\uC5D0\uC11C \uC5B4\uD50C\uB9AC\uCF00\uC774\uC158\uC774 \uC2E4\uD589\uB418\uACE0 \uC788\uB294 \uC9C0 \uD655\uC778\uBC14\uB78D\uB2C8\uB2E4.
|
||||
|
||||
m.default_install_error = \uC6F9\uC0AC\uC774\uD2B8\uC758 \uC9C0\uC6D0 \uBA54\uB274(support section)\uB97C \uD655\uC778\uD558\uC2DC\uAE30 \uBC14\uB78D\uB2C8\uB2E4.
|
||||
|
||||
m.another_getdown_running = \uC774 \uC5B4\uD50C\uB9AC\uCF00\uC774\uC158 \uC778\uC2A4\uD1A8\uB7EC\uC758 \uB2E4\uC911 \uC778\uC2A4\uD134\uC2A4\uAC00 \uC2E4\uD589\uC911\uC785\uB2C8\uB2E4. \
|
||||
\uD558\uB098\uAC00 \uC644\uB8CC\uB420 \uB54C\uAE4C\uC9C0 \uC911\uB2E8\uB429\uB2C8\uB2E4.
|
||||
|
||||
m.applet_stopped = Getdown \uC560\uD50C\uB9BF \uC2E4\uD589\uC774 \uC911\uB2E8\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
|
||||
|
||||
# application/digest errors
|
||||
m.missing_appbase = \uC124\uC815 \uD30C\uC77C\uC5D0 'appbase' \uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.
|
||||
m.invalid_version = \uC124\uC815 \uD30C\uC77C\uC5D0 \uC798\uBABB\uB41C \uBC84\uC804\uC774 \uBA85\uC2DC\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4.
|
||||
m.invalid_appbase = \uC124\uC815 \uD30C\uC77C\uC5D0 \uC798\uBABB\uB41C 'appbase'\uAC00 \uBA85\uC2DC\uB418\uC5B4 \uC788\uC2B5\uB2C8\uB2E4.
|
||||
m.missing_class = \uC124\uC815 \uD30C\uC77C\uC5D0 \uC5B4\uD50C\uB9AC\uCF00\uC774\uC158 \uD074\uB798\uC2A4\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4.
|
||||
m.missing_code = \uC124\uC815 \uD30C\uC77C\uC5D0 \uB9AC\uC18C\uC2A4\uC5D0 \uB300\uD55C \uCF54\uB4DC\uAC00 \uBA85\uC2DC\uB418\uC5B4 \uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
|
||||
m.invalid_digest_file = \uB2E4\uC774\uC81C\uC2A4\uD2B8 \uD30C\uC77C\uC774 \uC798\uBABB\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
|
||||
@@ -0,0 +1,115 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Getdown translation messages
|
||||
|
||||
m.abort_title = Cancelar a instala\u00E7\u00E3o?
|
||||
m.abort_confirm = <html>Tem certeza que deseja cancelar a instala\u00E7\u00E3o? \
|
||||
Voc\u00EA pode continuar a instala\u00E7\u00E3o mais tarde, \
|
||||
basta executar a aplica\u00E7\u00E3o novamente.</html>
|
||||
m.abort_ok = Sair
|
||||
m.abort_cancel = Continuar a instala\u00E7\u00E3o
|
||||
|
||||
m.detecting_proxy = Tentando detectar automaticamente as configura\u00E7\u00F5es de proxy
|
||||
|
||||
m.configure_proxy = <html>N\u00E3o foi poss\u00EDvel conectar aos nossos servidores para \
|
||||
fazer o download dos dados. \
|
||||
<ul><li> Se o Firewall do Windows ou o Norton Internet Security est\u00E1 configurado \
|
||||
para bloquear o programa <code>javaw.exe</code> n\u00E3o ser\u00E1 poss\u00EDvel realizar \
|
||||
o download. Voc\u00EA ter\u00E1 que permitir que o programa <code>javaw.exe</code> acesse \
|
||||
a internet. Voc\u00EA pode tentar executar o programa novamente, mas voc\u00EA precisa \
|
||||
remover o programa javaw.exe das configura\u00E7\u00F5es do firewall (Iniciar -> Painel \
|
||||
de controle -> Firewall do Windows).</ul> \
|
||||
<p> Seu computador pode estar acessando a internet atrav\u00E9s de um proxy e n\u00E3o foi \
|
||||
capaz de detectar automaticamente as configura\u00E7\u00F5es de proxy. \
|
||||
Voc\u00EA pode informar esses dados abaixo.</html>
|
||||
|
||||
m.proxy_extra = <html>Se voc\u00EA tem certeza que n\u00E3o usa um proxy, ent\u00E3o pode ser \
|
||||
que exista um problema tempor\u00E1rio que est\u00E1 impedindo a comunica\u00E7\u00E3o \
|
||||
com os nossos servidores. Neste caso voc\u00EA pode cancelar e tentar instalar novamente \
|
||||
mais tarde.</html>
|
||||
|
||||
m.proxy_host = IP do Proxy
|
||||
m.proxy_port = Porta do Proxy
|
||||
m.proxy_ok = OK
|
||||
m.proxy_cancel = Cancelar
|
||||
|
||||
m.downloading_java = Fazendo o download da m\u00E1quina virtual Java
|
||||
m.unpacking_java = Descompactando a m\u00E1quina virtual Java
|
||||
|
||||
m.resolving = Resolvendo downloads
|
||||
m.downloading = Transferindo dados
|
||||
m.failure = Download falhou: {0}
|
||||
|
||||
m.checking = Verificando atualiza\u00E7\u00F5es
|
||||
m.validating = Validando
|
||||
m.patching = Atualizando
|
||||
m.launching = Executando
|
||||
|
||||
m.patch_notes = Corrigir notas
|
||||
m.play_again = Jogar de novo
|
||||
|
||||
m.complete = {0}% completo
|
||||
m.remain = {0} Permanecer
|
||||
|
||||
m.updating_metadata = Transferindo arquivos de controle
|
||||
|
||||
m.init_failed = Nosso arquivo de configura\u00E7\u00E3o est\u00E1 ausente ou corrompido. Tente \
|
||||
baixar uma nova c\u00F3pia...
|
||||
|
||||
m.java_download_failed = N\u00E3o conseguimos baixar automaticamente a\
|
||||
vers\u00E3o necess\u00E1ria do Java para o seu computador.\n\n\
|
||||
Por favor, acesse www.java.com, baixe e instale a \u00FAltima vers\u00E3o do \
|
||||
Java, em seguida, tente executar o aplicativo novamente.
|
||||
|
||||
m.java_unpack_failed = N\u00E3o conseguimos descompactar uma vers\u00E3o atualizada do \
|
||||
Java. Por favor, certifique-se de ter pelo menos 100 MB de espa\u00E7o livre em seu \
|
||||
disco r\u00EDgido e tente executar o aplicativo novamente. \n\n\
|
||||
Se isso n\u00E3o resolver o problema, acesse www.java.com,baixe e \
|
||||
instale a \u00FAltima vers\u00E3o do Java e tente novamente.
|
||||
|
||||
m.unable_to_repair = N\u00E3o conseguimos baixar os arquivos necess\u00E1rios depois de \
|
||||
cinco tentativas. Voc\u00EA pode tentar executar o aplicativo novamente, mas se ele \
|
||||
falhar pode ser necess\u00E1rio desinstalar e reinstalar.
|
||||
|
||||
m.unknown_error = A aplica\u00E7\u00E3o falhou ao iniciar devido a algum erro estranho \
|
||||
do qual n\u00E3o conseguimos recuperar. Por favor, visite \n{0} para obter \
|
||||
informa\u00E7\u00F5es sobre como recuperar.
|
||||
m.init_error = A aplica\u00E7\u00E3o falhou ao iniciar devido ao seguinte \
|
||||
erro:\n{0}\n\nPor favor visite \n{1} para \
|
||||
informa\u00E7\u00F5es sobre como lidar com esse problema.
|
||||
|
||||
m.readonly_error =O diret\u00F3rio no qual este aplicativo est\u00E1 instalado: \
|
||||
\n{0}\n \u00E9 somente leitura. Por favor, instale o aplicativo em um diret\u00F3rio onde \
|
||||
voc\u00EA tem acesso de grava\u00E7\u00E3o.
|
||||
|
||||
m.missing_resource = A aplica\u00E7\u00E3o falhou ao iniciar devido a uma falta \
|
||||
de recurso:\n{0}\n\n Por favor, visite\n{1} para obter informa\u00E7\u00F5es sobre \
|
||||
como lidar com tal problema.
|
||||
|
||||
m.insufficient_permissions_error = Voc\u00EA n\u00E3o aceitou a assinatura digital \
|
||||
do aplicativo. Se voc\u00EA quiser executar o aplicativo, voc\u00EA ter\u00E1 que aceitar \
|
||||
a assinatura digital. \n\nPara fazer isso, voc\u00EA ter\u00E1 que sair do seu navegador, \
|
||||
reinici\u00E1-lo, e retornar a esta p\u00E1gina web para executar a aplica\u00E7\u00E3o. \
|
||||
Quando o di\u00E1logo de seguran\u00E7a aparecer, clique no bot\u00E3o para aceitar a \
|
||||
assinatura digital e conceder a este aplicativo os privil\u00E9gios necess\u00E1rios \
|
||||
para executar.
|
||||
|
||||
m.corrupt_digest_signature_error = N\u00E3o conseguimos verificar a assinatura digital \
|
||||
do aplicativo.\nPor favor, verifique se voc\u00EA est\u00E1 utilizando o aplicativo \nde um \
|
||||
site correto.
|
||||
|
||||
m.default_install_error = a se\u00E7\u00E3o de suporte do site
|
||||
|
||||
m.another_getdown_running = V\u00E1rias inst\u00E2ncias desta aplica\u00E7\u00E3o \
|
||||
est\u00E3o em execu\u00E7\u00E3o. Esta ir\u00E1 parar e deixar outra completar suas atividades.
|
||||
|
||||
m.applet_stopped = Foi solicitado ao miniaplicativo GetDow que parasse de trabalhar.
|
||||
|
||||
# application/digest errors
|
||||
m.missing_appbase = O arquivo de configura\u00E7\u00E3o n\u00E3o possui o 'AppBase'.
|
||||
m.invalid_version = O arquivo de configura\u00E7\u00E3o especifica uma vers\u00E3o inv\u00E1lida.
|
||||
m.invalid_appbase = O arquivo de configura\u00E7\u00E3o especifica um 'AppBase' inv\u00E1lido.
|
||||
m.missing_class = O arquivo de configura\u00E7\u00E3o n\u00E3o possui a classe de aplicativo.
|
||||
m.missing_code = O arquivo de configura\u00E7\u00E3o n\u00E3o especifica um recurso de c\u00F3digo.
|
||||
m.invalid_digest_file = O arquivo digest \u00E9 inv\u00E1lido.
|
||||
@@ -0,0 +1,58 @@
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Getdown translation messages
|
||||
|
||||
m.detecting_proxy = \u641c\u5bfb\u4ee3\u7406\u670d\u52a1\u5668
|
||||
|
||||
m.configure_proxy = <html>\u6211\u4eec\u65e0\u6cd5\u8fde\u63a5\u5230\u670d\u52a1\u5668\u4e0b\u8f7d\u6e38\u620f\u6570\u636e\u3002\u8fd9\u53ef\u80fd\u662f\u7531\u4e8e \
|
||||
\u60a8\u7684\u8ba1\u7b97\u673a\u662f\u901a\u8fc7\u4ee3\u7406\u670d\u52a1\u5668\u8fde\u63a5\u4e92\u8054\u7f51\u7684\uff0c\u5e76\u4e14\u6211\u4eec\u65e0\u6cd5\u81ea\u52a8\u83b7\u5f97\u4ee3\u7406\u670d\u52a1\u5668\u7684 \
|
||||
\u8bbe\u7f6e\u3002\u5982\u679c\u60a8\u77e5\u9053\u60a8\u4ee3\u7406\u670d\u52a1\u5668\u7684\u8bbe\u7f6e\uff0c\u60a8\u53ef\u4ee5\u5728\u4e0b\u9762\u8f93\u5165\u3002</html>
|
||||
|
||||
m.proxy_extra = <html>\u5982\u679c\u60a8\u786e\u5b9a\u60a8\u6ca1\u6709\u4f7f\u7528\u4ee3\u7406\u670d\u52a1\u5668\uff0c\u8fd9\u53ef\u80fd\u662f\u7531\u4e8e\u6682\u65f6\u65e0\u6cd5 \
|
||||
\u8fde\u63a5\u5230\u4e92\u8054\u7f51\uff0c\u5bfc\u81f4\u65e0\u6cd5\u548c\u670d\u52a1\u5668\u901a\u8baf\u3002\u8fd9\u79cd\u60c5\u51b5\uff0c\u60a8\u53ef\u4ee5\u53d6\u6d88\uff0c\u7a0d\u5019\u518d\u91cd\u65b0\u5b89\u88c5\u3002<br><br> \
|
||||
\u5982\u679c\u60a8\u65e0\u6cd5\u786e\u5b9a\u60a8\u662f\u5426\u4f7f\u7528\u4e86\u4ee3\u7406\u670d\u52a1\u5668\uff0c\u8bf7\u8bbf\u95ee\u6211\u4eec\u7f51\u7ad9\u4e2d\u7684\u6280\u672f\u652f\u6301\u90e8\u4efd\uff0c \
|
||||
\u4e86\u89e3\u5982\u4f55\u68c0\u6d4b\u60a8\u7684\u4ee3\u7406\u670d\u52a1\u5668\u8bbe\u7f6e\u3002</html>
|
||||
|
||||
m.proxy_host = \u4ee3\u7406\u670d\u52a1\u5668\u7684IP\u5730\u5740
|
||||
m.proxy_port = \u4ee3\u7406\u670d\u52a1\u5668\u7684\u7aef\u53e3\u53f7
|
||||
m.proxy_ok = \u786e\u5b9a
|
||||
m.proxy_cancel = \u53d6\u6d88
|
||||
|
||||
m.resolving = \u5206\u6790\u9700\u4e0b\u8f7d\u5185\u5bb9
|
||||
m.downloading = \u4e0b\u8f7d\u6570\u636e
|
||||
m.failure = \u4e0b\u8f7d\u5931\u8d25: {0}
|
||||
|
||||
m.checking = \u68c0\u67e5\u66f4\u65b0\u5185\u5bb9
|
||||
m.validating = \u786e\u8ba4
|
||||
m.patching = \u5347\u7ea7
|
||||
m.launching = \u542f\u52a8
|
||||
|
||||
m.complete = {0}% \u5b8c\u6210
|
||||
m.remain = {0} \u5269\u4f59\u65f6\u95f4
|
||||
|
||||
m.updating_metadata = \u4e0b\u8f7d\u63a7\u5236\u6587\u4ef6
|
||||
|
||||
m.init_failed = \u65e0\u6cd5\u627e\u5230\u914d\u7f6e\u6587\u4ef6\u6216\u5df2\u635f\u574f\u3002\u5c1d\u8bd5\u91cd\u65b0\u4e0b\u8f7d...
|
||||
|
||||
m.unable_to_repair = \u7ecf\u8fc75\u6b21\u5c1d\u8bd5\uff0c\u4f9d\u7136\u65e0\u6cd5\u4e0b\u8f7d\u6240\u9700\u7684\u6587\u4ef6\u3002\
|
||||
\u60a8\u53ef\u4ee5\u91cd\u65b0\u8fd0\u884c\u7a0b\u5e8f\uff0c\u4f46\u662f\u5982\u679c\u4f9d\u7136\u5931\u8d25\uff0c\u60a8\u53ef\u80fd\u9700\u8981\u53cd\u5b89\u88c5\u5e76\u91cd\u65b0\u5b89\u88c5\u3002
|
||||
|
||||
|
||||
m.unknown_error = \u7531\u4e8e\u4e00\u4e9b\u65e0\u6cd5\u56de\u590d\u7684\u4e25\u91cd\u9519\u8bef\uff0c\u7a0b\u5e8f\u542f\u52a8\u5931\u8d25\u3002\
|
||||
\u8bf7\u8bbf\u95ee\u6211\u4eec\u7684\u7f51\u7ad9\u7684\u6280\u672f\u652f\u6301\u90e8\u4efd\uff0c\u4e86\u89e3\u5982\u4f55\u89e3\u51b3\u95ee\u9898\u3002
|
||||
|
||||
m.init_error = \u7531\u4e8e\u4e0b\u5217\u9519\u8bef\uff0c\u7a0b\u5e8f\u542f\u52a8\u5931\u8d25\uff1a\n{0}\n\n \
|
||||
\u8bf7\u8bbf\u95ee\u6211\u4eec\u7684\u7f51\u7ad9\u7684\u6280\u672f\u652f\u6301\u90e8\u4efd\uff0c\u4e86\u89e3\u5982\u4f55\u5904\u7406\u8fd9\u4e9b\u9519\u8bef\u3002
|
||||
|
||||
|
||||
m.missing_resource = \u7531\u4e8e\u65e0\u6cd5\u627e\u5230\u4e0b\u5217\u8d44\u6e90\uff0c\u7a0b\u5e8f\u542f\u52a8\u5931\u8d25\uff1a\n{0}\n\n \
|
||||
\u8bf7\u8bbf\u95ee\u6211\u4eec\u7684\u7f51\u7ad9\u7684\u6280\u672f\u652f\u6301\u90e8\u4efd\uff0c\u4e86\u89e3\u5982\u4f55\u5904\u7406\u8fd9\u4e9b\u95ee\u9898\u3002
|
||||
|
||||
# application/digest errors
|
||||
m.missing_appbase = \u914d\u7f6e\u6587\u4ef6\u4e2d\u65e0\u6cd5\u627e\u5230 'appbase'\u3002
|
||||
m.invalid_version = \u914d\u7f6e\u6587\u4ef6\u6307\u5b9a\u4e86\u65e0\u6548\u7684\u7248\u672c\u3002
|
||||
m.invalid_appbase = \u914d\u7f6e\u6587\u4ef6\u6307\u5b9a\u4e86\u65e0\u6548\u7684 'appbase'\u3002
|
||||
m.missing_class = \u914d\u7f6e\u6587\u4ef6\u4e2d\u65e0\u6cd5\u627e\u5230\u7a0b\u5e8f\u6587\u4ef6\u3002
|
||||
m.missing_code = \u914d\u7f6e\u6587\u4ef6\u4e2d\u65e0\u6cd5\u627e\u5230\u6307\u5b9a\u7684\u8d44\u6e90\u3002
|
||||
m.invalid_digest_file = \u65e0\u6548\u7684\u914d\u7f6e\u6587\u4ef6\u3002
|
||||
Reference in New Issue
Block a user