Skip to Content.
Sympa Menu

ndt-users - NDT applet translation

Subject: ndt-users list created

List archive

NDT applet translation


Chronological Thread 
  • From: Jon K Hellan <>
  • To: Richard Carlson <>
  • Cc: "''" <>
  • Subject: NDT applet translation
  • Date: Wed, 09 Dec 2009 13:28:07 +0100

Hi

For UNINETT's deployment of NDT, we've translated the applet into Norwegian.
We've finally
gotten around to separating the texts out into a Java resource files. Patch
based on ndt-3.5.6 is
attached. The resource files are included in the jar archive, so deployment
is easy.

The default is English. If you want to display a different language, add this
to the
applet tag:

<PARAM NAME="language" VALUE="nb">
<PARAM NAME="country" VALUE="NO">

If you want to translate to, e.g. French in France, make a file

Tcpbw100_msgs_fr_FR.properties, and go ahead with translation. In this case,
the tag would be:

<PARAM NAME="language" VALUE="fr">
<PARAM NAME="country" VALUE="FR">

Accented characters must be entered as unicode literals.

Regards

Jon Kåre Hellan, UNINETT, Norway
Index: ndt-3.5.6/Applet/Makefile.am
===================================================================
--- ndt-3.5.6.orig/Applet/Makefile.am 2009-12-09 13:17:52.000000000 +0100
+++ ndt-3.5.6/Applet/Makefile.am 2009-12-09 13:18:41.000000000 +0100
@@ -46,7 +46,7 @@
$(GCJ) $(NDTGCJFLAGS) $(Tcpbw100_JAVA)

Tcpbw100.jar: Tcpbw100.class
- $(NDTJAR) $(NDTJARFLAG) MANIFEST.MF Tcpbw100.jar Tcpbw100*.class
+ $(NDTJAR) $(NDTJARFLAG) MANIFEST.MF Tcpbw100.jar Tcpbw100*.class
Tcpbw100*.properties
echo timestamp > classTcpbw100.stamp

EXTRA_DIST = MANIFEST.MF
Index: ndt-3.5.6/Applet/Tcpbw100.java
===================================================================
--- ndt-3.5.6.orig/Applet/Tcpbw100.java 2009-12-09 13:17:52.000000000 +0100
+++ ndt-3.5.6/Applet/Tcpbw100.java 2009-12-09 13:18:31.000000000 +0100
@@ -14,7 +14,7 @@
license rights.

3. You may modify and make a copy or copies of the Software for use within
your
-organization, if you meet the following conditions:
+organization, if you meet the following conditions:
a. Copies in source code must include the copyright notice and this
Software
License Agreement.
b. Copies in binary form must include the copyright notice and this
Software
@@ -22,7 +22,7 @@

4. You may make a copy, or modify a copy or copies of the Software or any
portion of it, thus forming a work based on the Software, and distribute
copies
-outside your organization, if you meet all of the following conditions:
+outside your organization, if you meet all of the following conditions:
a. Copies in source code must include the copyright notice and this
Software License Agreement;
b. Copies in binary form must include the copyright notice and this
@@ -57,7 +57,7 @@
OTHERWISE, EVEN IF ANY OF SAID PARTIES HAS BEEN WARNED OF THE POSSIBILITY OF
SUCH LOSS OR DAMAGES.
The Software was developed at least in part by the University of Chicago,
-as Operator of Argonne National Laboratory
(http://miranda.ctd.anl.gov:7123/).
+as Operator of Argonne National Laboratory
(http://miranda.ctd.anl.gov:7123/).
*/
import java.io.*;
import java.net.*;
@@ -119,7 +119,7 @@
private static final int SFW_POSSIBLE = 3;

private static final double VIEW_DIFF = 0.1;
-
+
JTextArea diagnosis, statistics;
MyTextPane results;
String inresult, outresult, errmsg;
@@ -130,11 +130,10 @@
JButton sTatistics;
JButton mailTo;
JButton options;
- JCheckBox defaultTest = new JCheckBox("Default tests"),
- preferIPv6 = new JCheckBox("prefer IPv6");
+ JCheckBox defaultTest, preferIPv6;
JSpinner numOfTests = new JSpinner();
- String[] delays = { "immediate", "1 min", "5 mins", "10 mins", "30 mins",
"2 hours", "12 hours", "1 day" };
- JComboBox delay = new JComboBox(delays);
+ String[] delays = { "immediate",
"1min","5mins","10mins","30mins","2hours","12hours","1day" };
+ JComboBox delay;

boolean Randomize, failed, cancopy;
URL location;
@@ -169,6 +168,17 @@
public String upstream = "No data";
/************************************************************************/

+ /**
+ * Added by Martin Sandsmark, UNINETT AS
+ * Internationalization
+ */
+ private Locale locale;
+ private ResourceBundle messages;
+ private String lang="en";
+ private String country="US";
+ //private static String lang="nb";
+ //private static String country="NO";
+ /***/

int half_duplex, congestion, bad_cable, mismatch;
double mylink;
@@ -200,39 +210,50 @@
}

public void init() {
+ if (getParameter("country") != null) country = getParameter("country");
+ if (getParameter("language") != null) lang = getParameter("language");
+
+ try {
+ locale = new Locale(lang, country);
+ messages = ResourceBundle.getBundle("Tcpbw100_msgs", locale);
+ } catch (Exception e) {
+ JOptionPane.showMessageDialog(null, "Error while loading language
files:\n" + e.getMessage());
+ e.printStackTrace();
+ }
+
getContentPane().setLayout(new BorderLayout());
- showStatus("Tcpbw100 ready");
+ showStatus(messages.getString("ready"));
failed = false ;
Randomize = false;
cancopy = false;
results = new MyTextPane();
- results.append("TCP/Web100 Network Diagnostic Tool v" + VERSION +
"\n");
+ results.append(messages.getString("id") + " v" + VERSION + "\n");
results.setEditable(false);
getContentPane().add(new JScrollPane(results));
- results.append("click START to begin\n");
+ results.append(messages.getString("clickStart") + "\n");
Panel mPanel = new Panel();
- startTest = new JButton("START");
+ startTest = new JButton(messages.getString("start"));
startTest.addActionListener(this);
mPanel.add(startTest);
- sTatistics = new JButton("Statistics");
+ sTatistics = new JButton(messages.getString("statistics"));
sTatistics.addActionListener(this);
if (getParameter("disableStatistics") == null) {
mPanel.add(sTatistics);
}
sTatistics.setEnabled(false);
- deTails = new JButton("More Details...");
+ deTails = new JButton(messages.getString("moreDetails"));
deTails.addActionListener(this);
if (getParameter("disableDetails") == null) {
mPanel.add(deTails);
}
deTails.setEnabled(false);
- mailTo = new JButton("Report Problem");
+ mailTo = new JButton(messages.getString("reportProblem"));
mailTo.addActionListener(this);
if (getParameter("disableMailto") == null) {
mPanel.add(mailTo);
}
mailTo.setEnabled(false);
- options = new JButton("Options");
+ options = new JButton(messages.getString("options") + "...");
options.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {
@@ -246,7 +267,9 @@
mPanel.add(options);
}
getContentPane().add(BorderLayout.SOUTH, mPanel);
+ preferIPv6 = new JCheckBox(messages.getString("preferIPv6"));
preferIPv6.setSelected(true);
+ defaultTest = new JCheckBox(messages.getString("defaultTests"));
defaultTest.setSelected(true);
defaultTest.setEnabled(false);
SpinnerNumberModel model = new SpinnerNumberModel();
@@ -254,6 +277,10 @@
model.setValue(new Integer(1));
numOfTests.setModel(model);
numOfTests.setPreferredSize(new Dimension(60, 20));
+ delay = new JComboBox();
+ for (int i = 0; i < delays.length; i++) {
+ delay.addItem(messages.getString(delays[i]));
+ }
delay.setSelectedIndex(0);
}

@@ -284,7 +311,7 @@
private boolean _stop = false;

private JLabel testNoLabel = new JLabel();
- private JButton stopButton= new JButton("STOP");
+ private JButton stopButton;
private JProgressBar progressBar = new JProgressBar();

StatusPanel(int testsNum) {
@@ -304,15 +331,16 @@
progressBar.setIndeterminate(true);
}
else {
- progressBar.setString("initialization...");
+ progressBar.setString(messages.getString("initialization"));
}
add(progressBar);
+ stopButton= new JButton(messages.getString("stop"));
stopButton.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {
_stop = true;
stopButton.setEnabled(false);
- StatusPanel.this.setText("Stopping...");
+ StatusPanel.this.setText(messages.getString("stopping"));
}

});
@@ -322,7 +350,7 @@
}

private void setTestNoLabelText() {
- testNoLabel.setText("Test " + _testNo + " of " + _testsNum);
+ testNoLabel.setText(messages.getString("test") + " " + _testNo + "
" + messages.getString("of") + " " + _testsNum);
}

public boolean wantToStop() {
@@ -369,10 +397,10 @@
break;
}
if (testsNum == 0) {
- results.append("\n** Starting test " + testNo + " **\n");
+ results.append("\n** " +
messages.getString("startingTest") + " " + testNo + " **\n");
}
else {
- results.append("\n** Starting test " + testNo + " of " +
testsNum + " **\n");
+ results.append("\n** " +
messages.getString("startingTest") + " " + testNo + " " +
messages.getString("of") + " " + testsNum + " **\n");
}
dottcp(sPanel);
if (testNo == testsNum) {
@@ -388,36 +416,36 @@
sTatistics.setEnabled(true);
mailTo.setEnabled(true);
options.setEnabled(true);
- statistics.append("\n** Test " + testNo + " **\n");
- diagnosis.append("\n** Test " + testNo + " **\n");
+ statistics.append("\n** " + messages.getString("test") + " "
+ testNo + " **\n");
+ diagnosis.append("\n** " + messages.getString("test") + " "
+ testNo + " **\n");
try {
switch (delay.getSelectedIndex()) {
case 1:
- results.append("\n** Sleeping for 1 min...
**\n");
+ results.append("\n** " +
messages.getString("sleep1m") + " **\n");
Thread.sleep(1000 * 60);
break;
case 2:
- results.append("\n** Sleeping for 5 mins...
**\n");
+ results.append("\n** " +
messages.getString("sleep5m") + " **\n");
Thread.sleep(1000 * 60 * 5);
break;
case 3:
- results.append("\n** Sleeping for 10 mins...
**\n");
+ results.append("\n** " +
messages.getString("sleep10m") + " **\n");
Thread.sleep(1000 * 60 * 10);
break;
case 4:
- results.append("\n** Sleeping for 30 mins...
**\n");
+ results.append("\n** " +
messages.getString("sleep30m") + " **\n");
Thread.sleep(1000 * 60 * 30);
break;
case 5:
- results.append("\n** Sleeping for 2 hours...
**\n");
+ results.append("\n** " +
messages.getString("sleep2h") + " **\n");
Thread.sleep(1000 * 60 * 120);
break;
case 6:
- results.append("\n** Sleeping for 12
hours... **\n");
+ results.append("\n** " +
messages.getString("sleep12h") + " **\n");
Thread.sleep(1000 * 60 * 720);
break;
case 7:
- results.append("\n** Sleeping for 1 day...
**\n");
+ results.append("\n** " +
messages.getString("sleep1d") + " **\n");
Thread.sleep(1000 * 60 * 1440);
break;
}
@@ -429,7 +457,7 @@
} catch(IOException e) {
e.printStackTrace();
failed=true;
- errmsg = "Server busy: Please wait 30 seconds for previous test to
finish\n";
+ errmsg = messages.getString("serverBusy30s") + "\n";
}

if (failed) {
@@ -441,8 +469,8 @@
mailTo.setEnabled(true);
options.setEnabled(true);
numOfTests.setEnabled(true);
- showStatus("Tcpbw100 done");
- results.append("\nclick START to re-test\n");
+ showStatus(messages.getString("done2"));
+ results.append("\n" + messages.getString("clickStart2") + "\n");
startTest.setEnabled(true);
testInProgress = false;
getContentPane().remove(sPanel);
@@ -460,7 +488,7 @@
byte type;
byte[] body;
}
-
+
class Protocol {
private InputStream _ctlin;
private OutputStream _ctlout;
@@ -470,7 +498,7 @@
_ctlin = ctlSocket.getInputStream();
_ctlout = ctlSocket.getOutputStream();
}
-
+
public void send_msg(byte type, byte toSend) throws IOException
{
byte[] tab = new byte[] { toSend };
@@ -483,14 +511,14 @@
header[0] = type;
header[1] = (byte) (tab.length >> 8);
header[2] = (byte) tab.length;
-
+
_ctlout.write(header);
_ctlout.write(tab);
}

public int readn(Message msg, int amount) throws IOException
{
- int read = 0;
+ int read = 0;
int tmp;
msg.body = new byte[amount];
while (read != amount) {
@@ -502,7 +530,7 @@
}
return read;
}
-
+
public int recv_msg(Message msg) throws IOException
{
int length;
@@ -511,7 +539,7 @@
}
msg.type = msg.body[0];
length = ((int) msg.body[1] & 0xFF) << 8;
- length += (int) msg.body[2] & 0xFF;
+ length += (int) msg.body[2] & 0xFF;
if (readn(msg, length) != length) {
return 3;
}
@@ -538,17 +566,17 @@
/* now look for middleboxes (firewalls, NATs, and other boxes that
* muck with TCP's end-to-end priciples
*/
- showStatus("Tcpbw100 Middlebox test...");
- results.append("Checking for Middleboxes . . . . . . . . . . . . . . .
. . . ");
- statistics.append("Checking for Middleboxes . . . . . . . . . . . . .
. . . . . ");
- emailText = "Checking for Middleboxes . . . . . . . . . . . . . . . .
. . ";
+ showStatus(messages.getString("middleboxTest"));
+ results.append(messages.getString("checkingMiddleboxes") + " ");
+ statistics.append(messages.getString("checkingMiddleboxes") + " ");
+ emailText = messages.getString("checkingMiddleboxes") + " ";

if (ctl.recv_msg(msg) != 0) {
- errmsg = "Protocol error!\n";
+ errmsg = messages.getString("protocolError") + "\n";
return true;
}
if (msg.type != TEST_PREPARE) {
- errmsg = "Middlebox test: Received wrong type of the message\n";
+ errmsg = messages.getString("mboxWrongMessage") + "\n";
if (msg.type == MSG_ERROR) {
errmsg += "ERROR MSG: " + new String(msg.body) + "\n";
}
@@ -561,11 +589,11 @@
in2Socket = new Socket(host, midport);
} catch (UnknownHostException e) {
System.err.println("Don't know about host: " + host);
- errmsg = "unknown server\n" ;
+ errmsg = messages.getString("unknownServer") + "\n" ;
return true;
} catch (IOException e) {
System.err.println("Couldn't perform middlebox testing to: " + host);
- errmsg = "Server Failed while middlebox testing\n" ;
+ errmsg = messages.getString("middleboxFail") + "\n" ;
return true;
}

@@ -579,13 +607,13 @@
int inlth;
t = System.currentTimeMillis();

- try {
+ try {
while ((inlth=srvin2.read(buff,0,buff.length)) > 0) {
bytes += inlth;
if ((System.currentTimeMillis() - t) > 5500)
break;
}
- }
+ }
catch (IOException e) {}

t = System.currentTimeMillis() - t;
@@ -593,11 +621,11 @@
s2cspd = ((8.0 * bytes) / 1000) / t;

if (ctl.recv_msg(msg) != 0) {
- errmsg = "Protocol error!\n";
+ errmsg = messages.getString("protocolError") + "\n";
return true;
}
if (msg.type != TEST_MSG) {
- errmsg = "Middlebox test results: Received wrong type of the
message\n";
+ errmsg = messages.getString("mboxWrongMessage") + "\n";
if (msg.type == MSG_ERROR) {
errmsg += "ERROR MSG: " + new String(msg.body) + "\n";
}
@@ -615,7 +643,7 @@
System.err.println("Unable to obtain Servers IP addresses: using " +
host);
errmsg = "getInetAddress() called failed\n" ;
tmpstr2 += host + ";";
- results.append("Unable to obtain remote IP address\n");
+ results.append(messages.getString("lookupError") + "\n");
}

System.err.println("calling in2Socket.getLocalAddress()");
@@ -632,19 +660,19 @@
in2Socket.close();

if (ctl.recv_msg(msg) != 0) {
- errmsg = "Protocol error!\n";
+ errmsg = messages.getString("protocolError") + "\n";
return true;
}
if (msg.type != TEST_FINALIZE) {
- errmsg = "Middlebox test: Received wrong type of the message\n";
+ errmsg = messages.getString("mboxWrongMessage");
if (msg.type == MSG_ERROR) {
errmsg += "ERROR MSG: " + new String(msg.body) + "\n";
}
return true;
}
- results.append("Done\n");
- statistics.append("Done\n");
- emailText += "Done\n%0A";
+ results.append(messages.getString("done") + "\n");
+ statistics.append(messages.getString("done") + "\n");
+ emailText += messages.getString("done") + "\n%0A";
}
return false;
}
@@ -653,17 +681,17 @@
{
Message msg = new Message();
if ((tests & TEST_SFW) == TEST_SFW) {
- showStatus("Simple firewall test...");
- results.append("checking for firewalls . . . . . . . . . . . . . . . .
. . . ");
- statistics.append("checking for firewalls . . . . . . . . . . . . . .
. . . . . ");
- emailText = "checking for firewalls . . . . . . . . . . . . . . . . .
. . ";
-
+ showStatus(messages.getString("sfwTest"));
+ results.append(messages.getString("checkingFirewalls") + " ");
+ statistics.append(messages.getString("checkingFirewalls") + " ");
+ emailText = messages.getString("checkingFirewalls") + " ";
+
if (ctl.recv_msg(msg) != 0) {
- errmsg = "Protocol error!\n";
+ errmsg = messages.getString("protocolError") + "\n";
return true;
}
if (msg.type != TEST_PREPARE) {
- errmsg = "Simple firewall test: Received wrong type of the
message\n";
+ errmsg = messages.getString("sfwWrongMessage") + "\n";
if (msg.type == MSG_ERROR) {
errmsg += "ERROR MSG: " + new String(msg.body) + "\n";
}
@@ -679,7 +707,7 @@
testTime = Integer.parseInt(message.substring(k+1));
}
catch (Exception e) {
- errmsg = "Simple firewall test: Received improper message\n";
+ errmsg = messages.getString("sfwWrongMessage") + "\n";
return true;
}

@@ -697,7 +725,7 @@
}
catch (Exception e) {
e.printStackTrace();
- errmsg = "Simple firewall test: Cannot create listen socket\n";
+ errmsg = messages.getString("sfwSocketFail") + "\n";
return true;
}

@@ -705,16 +733,16 @@
ctl.send_msg(TEST_MSG,
Integer.toString(srvSocket.getLocalPort()).getBytes());

if (ctl.recv_msg(msg) != 0) {
- errmsg = "Protocol error!\n";
+ errmsg = messages.getString("protocolError") + "\n";
return true;
}
if (msg.type != TEST_START) {
- errmsg = "Simple firewall test: Received wrong type of the
message\n";
+ errmsg = messages.getString("sfwWrongMessage");
if (msg.type == MSG_ERROR) {
errmsg += "ERROR MSG: " + new String(msg.body) + "\n";
}
return true;
- }
+ }

OsfwWorker osfwTest = new OsfwWorker(srvSocket, testTime);
new Thread(osfwTest).start();
@@ -731,11 +759,11 @@
}

if (ctl.recv_msg(msg) != 0) {
- errmsg = "Protocol error!\n";
+ errmsg = messages.getString("protocolError") + "\n";
return true;
}
if (msg.type != TEST_MSG) {
- errmsg = "Simple firewall test: Received wrong type of the
message\n";
+ errmsg = messages.getString("sfwWrongMessage") + "\n";
if (msg.type == MSG_ERROR) {
errmsg += "ERROR MSG: " + new String(msg.body) + "\n";
}
@@ -746,19 +774,19 @@
osfwTest.finalize();

if (ctl.recv_msg(msg) != 0) {
- errmsg = "Protocol error!\n";
+ errmsg = messages.getString("protocolError") + "\n";
return true;
}
if (msg.type != TEST_FINALIZE) {
- errmsg = "Simple firewall test: Received wrong type of the
message\n";
+ errmsg = messages.getString("sfwWrongMessage") + "\n";
if (msg.type == MSG_ERROR) {
errmsg += "ERROR MSG: " + new String(msg.body) + "\n";
}
return true;
}
- results.append("Done\n");
- statistics.append("Done\n");
- emailText += "Done\n%0A";
+ results.append(messages.getString("done") + "\n");
+ statistics.append(messages.getString("done") + "\n");
+ emailText += messages.getString("done") + "\n%0A";
}
return false;
}
@@ -769,17 +797,17 @@
byte buff2[] = new byte[64*1024];
Message msg = new Message();
if ((tests & TEST_C2S) == TEST_C2S) {
- showStatus("Tcpbw100 outbound test...");
- results.append("running 10s outbound test (client-to-server [C2S]) . .
. . . ");
- statistics.append("running 10s outbound test (client-to-server [C2S])
. . . . . ");
- emailText += "running 10s outbound test (client-to-server [C2S]) . . .
. . ";
-
+ showStatus(messages.getString("outboundTest"));
+ results.append(messages.getString("runningOutboundTest") + " ");
+ statistics.append(messages.getString("runningOutboundTest") + " ");
+ emailText += messages.getString("runningOutboundTest") + " ";
+
if (ctl.recv_msg(msg) != 0) {
- errmsg = "Protocol error!\n";
+ errmsg = messages.getString("protocolError") + "\n";
return true;
}
if (msg.type != TEST_PREPARE) {
- errmsg = "C2S throughput test: Received wrong type of the message\n";
+ errmsg = messages.getString("outboundWrongMessage") + "\n";
if (msg.type == MSG_ERROR) {
errmsg += "ERROR MSG: " + new String(msg.body) + "\n";
}
@@ -792,24 +820,24 @@
outSocket = new Socket(host, c2sport);
} catch (UnknownHostException e) {
System.err.println("Don't know about host: " + host);
- errmsg = "unknown server\n" ;
+ errmsg = messages.getString("unknownServer") + "\n" ;
return true;
} catch (IOException e) {
System.err.println("Couldn't get 2nd connection to: " + host);
- errmsg = "Server Busy: Please wait 15 seconds for previous test to
finish\n" ;
+ errmsg = messages.getString("serverBusy15s") + "\n";
return true;
}

OutputStream out = outSocket.getOutputStream();

- // wait here for signal from server application
+ // wait here for signal from server application
// This signal tells the client to start pumping out data
if (ctl.recv_msg(msg) != 0) {
- errmsg = "Protocol error!\n";
+ errmsg = messages.getString("protocolError") + "\n";
return true;
}
if (msg.type != TEST_START) {
- errmsg = "C2S throughput test: Received wrong type of the message\n";
+ errmsg = messages.getString("outboundWrongMessage") + "\n";
if (msg.type == MSG_ERROR) {
errmsg += "ERROR MSG: " + new String(msg.body) + "\n";
}
@@ -825,7 +853,7 @@
buff2[i] = c++;
}
System.err.println("Send buffer size =" + i);
- outSocket.setSoTimeout(15000);
+ outSocket.setSoTimeout(15000);
pkts = 0;
t = System.currentTimeMillis();
double stop_time = t + 10000; // ten seconds
@@ -851,11 +879,11 @@
c2sspd = ((8.0 * pkts * lth) / 1000) / t;
/* receive the c2sspd from the server */
if (ctl.recv_msg(msg) != 0) {
- errmsg = "Protocol error!\n";
+ errmsg = messages.getString("protocolError") + "\n";
return true;
}
if (msg.type != TEST_MSG) {
- errmsg = "C2S throughput test: Received wrong type of the message\n";
+ errmsg = messages.getString("outboundWrongMessage");
if (msg.type == MSG_ERROR) {
errmsg += "ERROR MSG: " + new String(msg.body) + "\n";
}
@@ -868,7 +896,7 @@
results.append(prtdbl(sc2sspd*1000) + "kb/s\n");
statistics.append(prtdbl(sc2sspd*1000) + "kb/s\n");
emailText += prtdbl(sc2sspd*1000) + "kb/s\n%0A";
- }
+ }
else {
results.append(prtdbl(sc2sspd) + "Mb/s\n");
statistics.append(prtdbl(sc2sspd) + "Mb/s\n");
@@ -881,13 +909,13 @@
*/
upstream = ""+(prtdbl(sc2sspd*1000));
/************************************************************************/
-
+
if (ctl.recv_msg(msg) != 0) {
- errmsg = "Protocol error!\n";
+ errmsg = messages.getString("protocolError") + "\n";
return true;
}
if (msg.type != TEST_FINALIZE) {
- errmsg = "C2S throughput test: Received wrong type of the message\n";
+ errmsg = messages.getString("outboundWrongMessage");
if (msg.type == MSG_ERROR) {
errmsg += "ERROR MSG: " + new String(msg.body) + "\n";
}
@@ -902,17 +930,17 @@
byte buff[] = new byte[8192];
Message msg = new Message();
if ((tests & TEST_S2C) == TEST_S2C) {
- showStatus("Tcpbw100 inbound test...");
- results.append("running 10s inbound test (server-to-client [S2C]) . .
. . . . ");
- statistics.append("running 10s inbound test (server-to-client [S2C]) .
. . . . . ");
- emailText += "running 10s inbound test (server-to-client [S2C]) . . .
. . . ";
-
+ showStatus(messages.getString("inboundTest"));
+ results.append(messages.getString("runningInboundTest") + " ");
+ statistics.append(messages.getString("runningInboundTest") + " ");
+ emailText += messages.getString("runningInboundTest") + " ";
+
if (ctl.recv_msg(msg) != 0) {
- errmsg = "Protocol error!\n";
+ errmsg = messages.getString("protocolError") + "\n";
return true;
}
if (msg.type != TEST_PREPARE) {
- errmsg = "C2S throughput test: Received wrong type of the message\n";
+ errmsg = messages.getString("inboundWrongMessage") + "\n";
if (msg.type == MSG_ERROR) {
errmsg += "ERROR MSG: " + new String(msg.body) + "\n";
}
@@ -923,15 +951,15 @@
Socket inSocket;
try {
inSocket = new Socket(host, s2cport);
- }
+ }
catch (UnknownHostException e) {
System.err.println("Don't know about host: " + host);
- errmsg = "unknown server\n" ;
+ errmsg = messages.getString("unknownServer") + "\n";
return true;
- }
+ }
catch (IOException e) {
System.err.println("Couldn't get 3rd connection to: " + host);
- errmsg = "Server Failed while receiving data\n" ;
+ errmsg = messages.getString("serverFail") + "\n";
return true;
}

@@ -939,13 +967,13 @@
int bytes = 0;
int inlth;

- // wait here for signal from server application
+ // wait here for signal from server application
if (ctl.recv_msg(msg) != 0) {
- errmsg = "Protocol error!\n";
+ errmsg = messages.getString("protocolError") + "\n";
return true;
}
if (msg.type != TEST_START) {
- errmsg = "S2C throughput test: Received wrong type of the message\n";
+ errmsg = messages.getString("inboundWrongMessage") + "\n";
if (msg.type == MSG_ERROR) {
errmsg += "ERROR MSG: " + new String(msg.body) + "\n";
}
@@ -955,13 +983,13 @@
inSocket.setSoTimeout(15000);
t = System.currentTimeMillis();

- try {
+ try {
while ((inlth=srvin.read(buff,0,buff.length)) > 0) {
bytes += inlth;
if ((System.currentTimeMillis() - t) > 14500)
break;
}
- }
+ }
catch (IOException e) {}

t = System.currentTimeMillis() - t;
@@ -970,11 +998,11 @@

/* receive the s2cspd from the server */
if (ctl.recv_msg(msg) != 0) {
- errmsg = "Protocol error!\n";
+ errmsg = messages.getString("protocolError") + "\n";
return true;
}
if (msg.type != TEST_MSG) {
- errmsg = "S2C throughput test: Received wrong type of the message\n";
+ errmsg = messages.getString("inboundWrongMessage") + "\n";
if (msg.type == MSG_ERROR) {
errmsg += "ERROR MSG: " + new String(msg.body) + "\n";
}
@@ -990,7 +1018,7 @@
}
catch (Exception e) {
e.printStackTrace();
- errmsg = "S2C throughput test: Received improper message\n";
+ errmsg = messages.getString("inboundWrongMessage") + "\n";
return true;
}

@@ -1025,17 +1053,17 @@

// Try setting a 5 second timer here to break out if the read fails.
ctlSocket.setSoTimeout(5000);
- try {
+ try {
for (;;) {
if (ctl.recv_msg(msg) != 0) {
- errmsg = "Protocol error!\n";
+ errmsg = messages.getString("protocolError") + "\n";
return true;
}
if (msg.type == TEST_FINALIZE) {
break;
}
if (msg.type != TEST_MSG) {
- errmsg = "S2C throughput test: Received wrong type of the
message\n";
+ errmsg = messages.getString("inboundWrongMessage") + "\n";
if (msg.type == MSG_ERROR) {
errmsg += "ERROR MSG: " + new String(msg.body) + "\n";
}
@@ -1070,7 +1098,8 @@
}

// RAC Debug message
- results.append("Connecting to '" + host + "' [" +
InetAddress.getByName(host) + "] to run test\n");
+ results.append(messages.getString("connectingTo") + " '" + host + "'
[" +
+ InetAddress.getByName(host) + "] " +
messages.getString("toRunTest") + "\n");

int ctlport = 3001;
double wait2;
@@ -1091,12 +1120,12 @@
ctlSocket = new Socket(host, ctlport);
} catch (UnknownHostException e) {
System.err.println("Don't know about host: " + host);
- errmsg = "unknown server\n" ;
+ errmsg = messages.getString("unknownServer") + "\n" ;
failed = true;
return;
} catch (IOException e) {
System.err.println("Couldn't get the connection to: " + host + " "
+ctlport);
- errmsg = "Server process not running: start web100srv process on
remote server (" + host + ":" + ctlport + ")\n" ;
+ errmsg = messages.getString("serverNotRunning") + " (" + host +
":" + ctlport + ")\n" ;
failed = true;
return;
}
@@ -1106,29 +1135,29 @@
/* The beginning of the protocol */

if (ctlSocket.getInetAddress() instanceof Inet6Address) {
- results.append("Connected to: " + host + " -- Using IPv6
address\n");
+ results.append(messages.getString("connected") + " " + host +
messages.getString("usingIpv6") + "\n");
}
else {
- results.append("Connected to: " + host + " -- Using IPv4
address\n");
+ results.append(messages.getString("connected") + " " + host +
messages.getString("usingIpv4") + "\n");
}

/* write our test suite request */
ctl.send_msg(MSG_LOGIN, tests);
/* read the specially crafted data that kicks off the old clients */
if (ctl.readn(msg, 13) != 13) {
- errmsg = "Information: The server does not support this command
line client\n";
+ errmsg = messages.getString("unsupportedClient") + "\n";
failed = true;
return;
}

for (;;) {
if (ctl.recv_msg(msg) != 0) {
- errmsg = "Protocol error!\n";
+ errmsg = messages.getString("protocolError") + "\n";
failed = true;
return;
}
if (msg.type != SRV_QUEUE) {
- errmsg = "Logging to server: Received wrong type of the
message\n";
+ errmsg = messages.getString("loggingWrongMessage") + "\n";
failed = true;
return;
}
@@ -1141,13 +1170,13 @@
}

if (wait == 9988) {
- errmsg = "Server Busy: Too many clients waiting in server
queue. Please try again later.\n";
+ errmsg = messages.getString("serverBusy") + "\n";
failed = true;
return;
}

if (wait == 9999) {
- errmsg = "Server Busy: Please wait 60 seconds for the current
test to finish.\n";
+ errmsg = messages.getString("serverBusy60s") + "\n";
failed = true;
return;
}
@@ -1157,42 +1186,41 @@
continue;
}

- // Each test should take less than 30 seconds, so tell them 45 sec
* number of
+ // Each test should take less than 30 seconds, so tell them 45 sec
* number of
// tests in the queue.
wait = (wait * 45);
- results.append("Another client is currently being served, your
test will " +
- "begin within " + wait + " seconds\n");
+ results.append(messages.getString("otherClient") + wait +
messages.getString("seconds") +".\n");
}

f.toBack();
ff.toBack();

if (ctl.recv_msg(msg) != 0) {
- errmsg = "Protocol error!\n";
+ errmsg = messages.getString("protocolError") + "\n";
failed = true;
return;
}
if (msg.type != MSG_LOGIN) {
- errmsg = "Negotiating NDT version: Received wrong type of the
message\n";
+ errmsg = messages.getString("versionWrongMessage") + "\n";
failed = true;
return;
}

String vVersion = new String(msg.body);
if (!vVersion.startsWith("v")) {
- errmsg = "Incompatible version number";
+ errmsg = messages.getString("incompatibleVersion");
failed = true;
return;
}
System.out.println("Server version: " + vVersion.substring(1));

if (ctl.recv_msg(msg) != 0) {
- errmsg = "Protocol error!\n";
+ errmsg = messages.getString("protocolError") + "\n";
failed = true;
return;
}
if (msg.type != MSG_LOGIN) {
- errmsg = "Negotiating test suite: Received wrong type of the
message\n";
+ errmsg = messages.getString("testsuiteWrongMessage") + "\n";
failed = true;
return;
}
@@ -1203,46 +1231,46 @@
ctl.send_msg(MSG_ERROR, "Manually stopped by the
user".getBytes());
ctl.close();
ctlSocket.close();
- errmsg = "\nThe tests were stopped!\n";
+ errmsg = "\n" + messages.getString("stopped") + "\n";
failed = true;
return;
}
int testId = Integer.parseInt(tokenizer.nextToken());
switch (testId) {
case TEST_MID:
- sPanel.setText("Middlebox");
+ sPanel.setText(messages.getString("middlebox"));
if (test_mid(ctl)) {
results.append(errmsg);
- results.append("Middlebox test FAILED!\n");
+ results.append(messages.getString("middleboxFail2") +
"\n");
tests &= (~TEST_MID);
}
break;
case TEST_SFW:
- sPanel.setText("Simple firewall");
+ sPanel.setText(messages.getString("simpleFirewall"));
if (test_sfw(ctl)) {
results.append(errmsg);
- results.append("Simple firewall test FAILED!\n");
+ results.append(messages.getString("sfwFail") + "\n");
tests &= (~TEST_SFW);
}
break;
case TEST_C2S:
- sPanel.setText("C2S throughput");
+ sPanel.setText(messages.getString("c2sThroughput"));
if (test_c2s(ctl)) {
results.append(errmsg);
- results.append("C2S throughput test FAILED!\n");
+
results.append(messages.getString("c2sThroughputFailed") + "\n");
tests &= (~TEST_C2S);
}
break;
case TEST_S2C:
- sPanel.setText("S2C throughput");
+ sPanel.setText(messages.getString("s2cThroughput"));
if (test_s2c(ctl, ctlSocket)) {
results.append(errmsg);
- results.append("S2C throughput test FAILED!\n");
+
results.append(messages.getString("s2cThroughputFailed") + "\n");
tests &= (~TEST_S2C);
}
break;
default:
- errmsg = "Unknown test ID\n";
+ errmsg = messages.getString("unknownID") + "\n";
failed = true;
return;
}
@@ -1251,18 +1279,18 @@
ctl.send_msg(MSG_ERROR, "Manually stopped by the user".getBytes());
ctl.close();
ctlSocket.close();
- errmsg = "The tests were stopped!\n";
+ errmsg = messages.getString("stopped") + "\n";
failed = true;
return;
}

- sPanel.setText("Receiving results...");
+ sPanel.setText(messages.getString("receiving"));
i = 0;

- try {
+ try {
for (;;) {
if (ctl.recv_msg(msg) != 0) {
- errmsg = "Protocol error!\n";
+ errmsg = messages.getString("protocolError") + "\n";
failed = true;
return;
}
@@ -1270,7 +1298,7 @@
break;
}
if (msg.type != MSG_RESULTS) {
- errmsg = "Tests results: Received wrong type of the
message\n";
+ errmsg = messages.getString("resultsWrongMessage") + "\n";
failed = true;
return;
}
@@ -1280,21 +1308,21 @@
} catch (IOException e) {}

if (i == 0) {
- results.append("Warning! Client time-out while reading data,
possible duplex mismatch exists\n");
+ results.append(messages.getString("resultsTimeout") + "\n");
}
System.err.println("Calling InetAddress.getLocalHost() twice");
try {
- diagnosis.append("Client: " + InetAddress.getLocalHost() + "\n");
+ diagnosis.append(messages.getString("client") + ": " +
InetAddress.getLocalHost() + "\n");
} catch (SecurityException e) {
- diagnosis.append("Client: 127.0.0.1\n");
- results.append("Unable to obtain local IP address\n");
+ diagnosis.append(messages.getString("client") + ": 127.0.0.1\n");
+ results.append(messages.getString("unableToObtainIP") + "\n");
System.err.println("Unable to obtain local IP address: using
127.0.0.1");
}

try {
- emailText += "Client: " + InetAddress.getLocalHost() + "\n%0A";
+ emailText += messages.getString("client") + ": " +
InetAddress.getLocalHost() + "\n%0A";
} catch (SecurityException e) {
- emailText += "Client: 127.0.0.1\n%0A";
+ emailText += messages.getString("client") + ": " + "127.0.0.1" +
"\n%0A";
}

ctl.close();
@@ -1304,7 +1332,8 @@
testResults(tmpstr);
}
catch (Exception ex) {
- results.append("Error in parsing tests results!\n");
+ results.append(messages.getString("resultsParseError") + "\n");
+ results.append(ex + "\n");
}
if ((tests & TEST_MID) == TEST_MID) {
middleboxResults(tmpstr2);
@@ -1317,7 +1346,7 @@
private ServerSocket srvSocket;
private int testTime;
private boolean finalized = false;
-
+
OsfwWorker(ServerSocket srvSocket, int testTime)
{
this.srvSocket = srvSocket;
@@ -1335,7 +1364,7 @@
}
}
}
-
+
public void run()
{
Message msg = new Message();
@@ -1396,24 +1425,8 @@

public void showBufferedBytesInfo()
{
- JOptionPane.showMessageDialog(null,
- "TCP (Transmission Control Protocol) reliably transfers data between
two\n" +
- "Internet hosts. It automatically detects and recovers from errors
and\n" +
- "losses. TCP uses buffers to provide this reliability. In
addition,\n" +
- "switches and routers use buffers to handle cases where multiple
input\n" +
- "links send packets to a single output link or link speeds change\n"
+
- "(FastEthernet to DSL modem).\n\n" +
- "The NDT server generates and sends 10 seconds of data to the
client. In\n" +
- "some cases the server can generate data faster than it can send
packets\n" +
- "into the network (e.g., a 2 GHz CPU sending to a DSL connected
client).\n" +
- "When this happens, some packets may remain in the server output
queue\n" +
- "when the 10 second timer expires. TCP will automatically continue
to\n" +
- "send these queued packets and the client will continue to accept
and\n" +
- "process these incoming packets. This will result in the client
test\n" +
- "running longer than expected.\n\n" +
- "This condition has occurred during this test. No action is
required to\n" +
- "resolve this issue.",
- "Packet queuing",
+ JOptionPane.showMessageDialog(null,
messages.getString("packetQueuingInfo"),
+ messages.getString("packetQueuing"),
JOptionPane.INFORMATION_MESSAGE);
}

@@ -1455,10 +1468,10 @@
javaVendor = System.getProperty("java.vendor");

if (osArch.startsWith("x86") == true) {
- client = "PC";
+ client = messages.getString("pc");
}
else {
- client = "Workstation";
+ client = messages.getString("workstation");
}

// Calculate some variables and determine path conditions
@@ -1469,121 +1482,121 @@
// Now write some messages to the screen
if (c2sData < 3) {
if (c2sData < 0) {
- results.append("Server unable to
determine bottleneck link type.\n");
+
results.append(messages.getString("unableToDetectBottleneck") + "\n");
emailText += "Server unable to
determine bottleneck link type.\n%0A";
- }
+ }
else {
- results.append("Your " + client + "
is connected to a ");
- emailText += "Your " + client + " is
connected to a ";
+
results.append(messages.getString("your") + " " + client + " " +
messages.getString("connectedTo") + " ");
+ emailText +=
messages.getString("your") + " " + client + " " +
messages.getString("connectedTo") + " ";
if (c2sData == 1) {
- results.append("Dial-up
Modem\n");
- emailText += "Dial-up
Modem\n%0A";
+
results.append(messages.getString("dialup") + "\n");
+ emailText +=
messages.getString("dialup") + "\n%0A";
mylink = .064;
- }
+ }
else {
- results.append("Cable/DSL
modem\n");
- emailText += "Cable/DSL
modem\n%0A";
+
results.append(messages.getString("cabledsl") + "\n");
+ emailText +=
messages.getString("cabledsl") + "\n%0A";
mylink = 3;
}
}
- }
+ }
else {
- results.append("The slowest link in the
end-to-end path is a ");
- emailText += "The slowest link in the
end-to-end path is a ";
+
results.append(messages.getString("theSlowestLink") + " ");
+ emailText +=
messages.getString("theSlowestLink") + " ";
if (c2sData == 3) {
- results.append("10 Mbps Ethernet
subnet\n");
- emailText += "10 Mbps Ethernet
subnet\n%0A";
+
results.append(messages.getString("10mbps") + "\n");
+ emailText +=
messages.getString("10mbps") + "\n%0A";
mylink = 10;
- }
+ }
else if (c2sData == 4) {
- results.append("45 Mbps T3/DS3
subnet\n");
- emailText += "45 Mbps T3/DS3
subnet\n%0A";
+
results.append(messages.getString("45mbps") + "\n");
+ emailText +=
messages.getString("45mbps") + "\n%0A";
mylink = 45;
- }
+ }
else if (c2sData == 5) {
results.append("100 Mbps ");
emailText += "100 Mbps ";
mylink = 100;
if (half_duplex == 0) {
- results.append("Full duplex
Fast Ethernet subnet\n");
- emailText += "Full duplex
Fast Ethernet subnet\n%0A";
- }
+
results.append(messages.getString("fullDuplex") + "\n");
+ emailText +=
messages.getString("fullDuplex") + "\n%0A";
+ }
else {
- results.append("Half duplex
Fast Ethernet subnet\n");
- emailText += "Half duplex
Fast Ethernet subnet\n%0A";
+
results.append(messages.getString("halfDuplex") + "\n");
+ emailText +=
messages.getString("halfDuplex") + "\n%0A";
}
- }
+ }
else if (c2sData == 6) {
- results.append("a 622 Mbps OC-12
subnet\n");
- emailText += "a 622 Mbps OC-12
subnet\n%0A";
+
results.append(messages.getString("622mbps") + "\n");
+ emailText +=
messages.getString("622mbps") + "\n%0A";
mylink = 622;
- }
+ }
else if (c2sData == 7) {
- results.append("1.0 Gbps Gigabit
Ethernet subnet\n");
- emailText += "1.0 Gbps Gigabit
Ethernet subnet\n%0A";
+
results.append(messages.getString("1gbps") + "\n");
+ emailText +=
messages.getString("1gbps") + "\n%0A";
mylink = 1000;
- }
+ }
else if (c2sData == 8) {
- results.append("2.4 Gbps OC-48
subnet\n");
- emailText += "2.4 Gbps OC-48
subnet\n%0A";
+
results.append(messages.getString("2.4gbps") + "\n");
+ emailText +=
messages.getString("2.4gbps") + "\n%0A";
mylink = 2400;
- }
+ }
else if (c2sData == 9) {
- results.append("10 Gbps 10 Gigabit
Ethernet/OC-192 subnet\n");
- emailText += "10 Gbps 10 Gigabit
Ethernet/OC-192 subnet\n%0A";
+
results.append(messages.getString("10gbps") + "\n");
+ emailText +=
messages.getString("10gbps") + "\n%0A";
mylink = 10000;
}
}

if (mismatch == 1) {
- results.append("Warning: Old Duplex mismatch
condition detected: ");
- emailText += "Warning: Old Duplex mismatch
condition detected: ";
+
results.append(messages.getString("oldDuplexMismatch") + "\n");
+ emailText +=
messages.getString("oldDuplexMismatch") + "\n%0A";
}
else if (mismatch == 2) {
- results.append("Alarm: Duplex Mismatch
condition detected Switch=Full and Host=half\n ");
- emailText += "Alarm: Duplex Mismatch
condition detected Switch=Full and Host=half\n%0A ";
+
results.append(messages.getString("duplexFullHalf") + "\n");
+ emailText +=
messages.getString("duplexFullHalf") + "\n%0A";
}
else if (mismatch == 4) {
- results.append("Alarm: Possible Duplex
Mismatch condition detected Switch=Full and Host=half\n ");
- emailText += "Alarm: Possible Duplex Mismatch
condition detected Switch=Full and Host=half\n%0A ";
+
results.append(messages.getString("possibleDuplexFullHalf") + "\n");
+ emailText +=
messages.getString("possibleDuplexFullHalf") + "\n%0A";
}
else if (mismatch == 3) {
- results.append("Alarm: Duplex Mismatch
condition detected Switch=half and Host=full\n ");
- emailText += "Alarm: Duplex Mismatch
condition detected Switch=half and Host=full\n%0A ";
+
results.append(messages.getString("duplexHalfFull") + "\n");
+ emailText +=
messages.getString("duplexHalfFull") + "\n%0A";
}
else if (mismatch == 5) {
- results.append("Alarm: Possible Duplex
Mismatch condition detected Switch=half and Host=full\n ");
- emailText += "Alarm: Possible Duplex Mismatch
condition detected Switch=half and Host=full\n%0A ";
+
results.append(messages.getString("possibleDuplexHalfFull") + "\n");
+ emailText +=
messages.getString("possibleDuplexHalfFull") + "\n%0A";
}
else if (mismatch == 7) {
- results.append("Warning: Possible Duplex
Mismatch condition detected Switch=half and Host=full\n ");
- emailText += "Warning: Possible Duplex
Mismatch condition detected Switch=half and Host=full\n%0A ";
+
results.append(messages.getString("possibleDuplexHalfFullWarning") + "\n");
+ emailText +=
messages.getString("possibleDuplexHalfFullWarning") + "\n%0A";
}

if (mismatch == 0) {
if (bad_cable == 1) {
- results.append("Alarm: Excessive errors,
check network cable(s).\n");
- emailText += "Alarm: Excessive errors, check
network cable(s).\n%0A";
+
results.append(messages.getString("excessiveErrors ") + "\n");
+ emailText +=
messages.getString("excessiveErrors") + "\n%0A";
}
if (congestion == 1) {
- results.append("Information: Other network
traffic is congesting the link\n");
- emailText += "Information: Other network
traffic is congesting the link\n%0A";
+
results.append(messages.getString("otherTraffic") + "\n");
+ emailText +=
messages.getString("otherTraffic") + "\n%0A";
}
if (((2*rwin)/rttsec) < mylink) {
j = (float)((mylink * avgrtt) * 1000) / 8 /
1024;
if (j > (float)MaxRwinRcvd) {
- results.append("Information: The receive
buffer should be " +
- prtdbl(j) + " kbytes to maximize
throughput\n");
- emailText += "Information: The receive
buffer should be " +
- prtdbl(j) + " kbytes to maximize
throughput\n";
+
results.append(messages.getString("receiveBufferShouldBe") + " " +
+ prtdbl(j) +
messages.getString("toMaximizeThroughput") + " \n");
+ emailText +=
messages.getString("receiveBufferShouldBe") + " " +
+ prtdbl(j) +
messages.getString("toMaximizeThroughput") + "\n%0A";
}
}
}
-
+
if ((tests & TEST_C2S) == TEST_C2S) {
if (sc2sspd < (c2sspd * (1.0 - VIEW_DIFF))) {
// TODO: distinguish the host buffering from the middleboxes
buffering
- JLabel info = new JLabel("Information ");
+ JLabel info = new JLabel(messages.getString("information"));
info.addMouseListener(new MouseAdapter()
{

@@ -1596,14 +1609,14 @@
info.setCursor(new Cursor(Cursor.HAND_CURSOR));
info.setAlignmentY((float) 0.8);
results.insertComponent(info);
- results.append("[C2S]: Packet queuing detected\n");
+ results.append(messages.getString("c2sPacketQueuingDetected") +
"\n");
}
}
-
+
if ((tests & TEST_S2C) == TEST_S2C) {
if (s2cspd < (ss2cspd * (1.0 - VIEW_DIFF))) {
// TODO: distinguish the host buffering from the middleboxes
buffering
- JLabel info = new JLabel("Information ");
+ JLabel info = new JLabel(messages.getString("information"));
info.addMouseListener(new MouseAdapter()
{

@@ -1616,210 +1629,241 @@
info.setCursor(new Cursor(Cursor.HAND_CURSOR));
info.setAlignmentY((float) 0.8);
results.insertComponent(info);
- results.append("[S2C]: Packet queuing detected\n");
+ results.append(messages.getString("s2cPacketQueuingDetected") +
"\n");
}
}

- statistics.append("\n\t------ Client System Details
------\n");
- statistics.append("OS data: Name = " + osName + ",
Architecture = " + osArch);
- statistics.append(", Version = " + osVer + "\n");
- statistics.append("Java data: Vendor = " + javaVendor
+ ", Version = " + javaVer + "\n");
+ statistics.append("\n\t------ " +
messages.getString("clientInfo") + "------\n");
+ statistics.append(messages.getString("osData") + " " +
+ messages.getString("name") + " = "
+ osName + ", " +
+ messages.getString("architecture")
+ " = " + osArch);
+ statistics.append(", " +
messages.getString("version") + " = " + osVer + "\n");
+ statistics.append(messages.getString("javaData") +
": " + messages.getString("vendor") +
+ " = " + javaVendor + ", " +
messages.getString("version") +
+ " = " + javaVer + "\n");
// statistics.append(" java.class.version=" +
System.getProperty("java.class.version") + "\n");

- statistics.append("\n\t------ Web100 Detailed
Analysis ------\n");
+ statistics.append("\n\t------ " +
messages.getString("web100Details") + " ------\n");
if (c2sData == -2)
- statistics.append("Insufficent data collected
to determine link type.\n");
+
statistics.append(messages.getString("insufficient") + "\n");
else if (c2sData == -1)
- statistics.append("Interprocess
communications failed, unknown link type.\n");
+
statistics.append(messages.getString("ipcFail") + "\n");
else if (c2sData == 0)
- statistics.append("Link detection algorithm
failed due to excessive Round Trip Times.\n");
+
statistics.append(messages.getString("rttFail") + "\n");
else if (c2sData == 1)
- statistics.append("Dial-up modem link
found.\n");
+
statistics.append(messages.getString("foundDialup") + "\n");
else if (c2sData == 2)
- statistics.append("Cable modem/DSL/T1 link
found.\n");
+
statistics.append(messages.getString("foundDsl") + "\n");
else if (c2sData == 3)
- statistics.append("10 Mbps Ethernet link
found.\n");
+
statistics.append(messages.getString("found10mbps") + "\n");
else if (c2sData == 4)
- statistics.append("45 Mbps T3/DS3 link
found.\n");
+
statistics.append(messages.getString("found45mbps") + "\n");
else if (c2sData == 5)
- statistics.append("100 Mbps FastEthernet link
found.\n");
+
statistics.append(messages.getString("found100mbps") + "\n");
else if (c2sData == 6)
- statistics.append("622 Mbps OC-12 link
found.\n");
+
statistics.append(messages.getString("found622mbps") + "\n");
else if (c2sData == 7)
- statistics.append("1 Gbps GigabitEthernet
link found.\n");
+
statistics.append(messages.getString("found1gbps") + "\n");
else if (c2sData == 8)
- statistics.append("2.4 Gbps OC-48 link
found.\n");
+
statistics.append(messages.getString("found2.4gbps") + "\n");
else if (c2sData == 9)
- statistics.append("10 Gbps 10
GigEthernet/OC-192 link found.\n");
+
statistics.append(messages.getString("found10gbps") + "\n");

if (half_duplex == 0)
- statistics.append("Link set to Full Duplex
mode\n");
+
statistics.append(messages.getString("linkFullDpx") + "\n");
else
- statistics.append("Link set to Half Duplex
mode\n");
+
statistics.append(messages.getString("linkHalfDpx") + "\n");

if (congestion == 0)
- statistics.append("No network congestion
discovered.\n");
+
statistics.append(messages.getString("congestNo") + "\n");
else
- statistics.append("Information: throughput is
limited by other network traffic.\n");
+
statistics.append(messages.getString("congestYes") + "\n");

if (bad_cable == 0)
- statistics.append("Good network cable(s)
found\n");
+
statistics.append(messages.getString("cablesOk") + "\n");
else
- statistics.append("Warning: excessive network
errors, check network cable(s)\n");
+
statistics.append(messages.getString("cablesNok") + "\n");

if (mismatch == 0)
- statistics.append("Normal duplex operation
found.\n");
+
statistics.append(messages.getString("duplexOk") + "\n");
else if (mismatch == 1) {
- statistics.append("Warning: Old Duplex
mismatch condition detected: ");
- emailText += "Warning: Old Duplex mismatch
condition detected: ";
+
statistics.append(messages.getString("duplexNok") + " ");
+ emailText += messages.getString("duplexNok")
+ " ";
}
else if (mismatch == 2) {
- statistics.append("Alarm: Duplex Mismatch
condition detected Switch=Full and Host=half\n ");
- emailText += "Alarm: Duplex Mismatch
condition detected Switch=Full and Host=half\n%0A ";
+
statistics.append(messages.getString("duplexFullHalf") + "\n");
+ emailText +=
messages.getString("duplexFullHalf") + "\n%0A ";
}
else if (mismatch == 3) {
- statistics.append("Alarm: Duplex Mismatch
condition detected Switch=half and Host=full\n ");
- emailText += "Alarm: Duplex Mismatch
condition detected Switch=half and Host=full\n%0A ";
+
statistics.append(messages.getString("duplexHalfFull") + "\n");
+ emailText +=
messages.getString("duplexHalfFull") + "\n%0A ";
}

- statistics.append("\nWeb100 reports the Round trip
time = " + prtdbl(avgrtt) + " msec; ");
- emailText += "\n%0AWeb100 reports the Round trip time
= " + prtdbl(avgrtt) + " msec; ";
-
- statistics.append("the Packet size = " + CurrentMSS +
" Bytes; and \n");
- emailText += "the Packet size = " + CurrentMSS + "
Bytes; and \n%0A";
+ statistics.append("\n" +
messages.getString("web100rtt") + " = " +
+ prtdbl(avgrtt) + " " + "ms" + ";
");
+ emailText += "\n%0A" +
messages.getString("web100rtt") + " = " +
+ prtdbl(avgrtt) + " " + "ms" + "; ";
+
+ statistics.append(messages.getString("packetsize") +
" = " + CurrentMSS +
+ " " + messages.getString("bytes")
+ "; " +
+ messages.getString("and") + " \n");
+ emailText += messages.getString("packetsize") + " = "
+ CurrentMSS +
+ " " + messages.getString("bytes")
+ "; " +
+ messages.getString("and") + "
\n%0A";
if (PktsRetrans > 0) {
- statistics.append("There were " + PktsRetrans
+ " packets retransmitted");
- statistics.append(", " + DupAcksIn + "
duplicate acks received");
- statistics.append(", and " + SACKsRcvd + "
SACK blocks received\n");
- emailText += "There were " + PktsRetrans + "
packets retransmitted";
- emailText += ", " + DupAcksIn + " duplicate
acks received";
- emailText += ", and " + SACKsRcvd + " SACK
blocks received\n%0A";
+ statistics.append(PktsRetrans + " " +
messages.getString("pktsRetrans"));
+ statistics.append(", " + DupAcksIn + " " +
messages.getString("dupAcksIn"));
+ statistics.append(", " +
messages.getString("and") + " " + SACKsRcvd + " " +
+
messages.getString("sackReceived") + "\n");
+ emailText += PktsRetrans + " " +
messages.getString("pktsRetrans");
+ emailText += ", " + DupAcksIn + " " +
messages.getString("dupAcksIn");
+ emailText += ", " + messages.getString("and")
+ " " + SACKsRcvd + " " +
+
messages.getString("sackReceived") + "\n%0A";
if (Timeouts > 0) {
- statistics.append("The connection
stalled " + Timeouts + " times due to packet loss\n");
+
statistics.append(messages.getString("connStalled") + " " + Timeouts + " " +
+
messages.getString("timesPktLoss") + "\n");
}
-
- statistics.append("The connection was idle "
+ prtdbl(waitsec) + " seconds (" +
- prtdbl((waitsec/timesec)*100) + "%)
of the time\n");
- emailText += "The connection stalled " +
Timeouts + " times due to packet loss\n%0A";
- emailText += "The connection was idle " +
prtdbl(waitsec) + " seconds (" +
- prtdbl((waitsec/timesec)*100) + "%) of the
time\n%0A";
- }
+
+
statistics.append(messages.getString("connIdle") + " " +
+ prtdbl(waitsec) + " " +
messages.getString("seconds") + " (" +
+
prtdbl((waitsec/timesec)*100) + messages.getString("pctOfTime") + ")\n");
+ emailText +=
messages.getString("connStalled") + " " + Timeouts + " " +
+ messages.getString("timesPktLoss") +
"\n%0A";
+ emailText += messages.getString("connIdle") +
" " + prtdbl(waitsec) +
+ " " + messages.getString("seconds")
+ " (" +
+ prtdbl((waitsec/timesec)*100) +
messages.getString("pctOfTime") + ")\n%0A";
+ }
else if (DupAcksIn > 0) {
- statistics.append("No packet loss - ");
- statistics.append("but packets arrived
out-of-order " + prtdbl(order*100) +
- "% of the time\n");
- emailText += "No packet loss - ";
- emailText += "but packets arrived
out-of-order " + prtdbl(order*100) +
- "% of the time\n%0A";
- }
+
statistics.append(messages.getString("noPktLoss1") + " - ");
+
statistics.append(messages.getString("ooOrder") + " " +
+ prtdbl(order*100) +
messages.getString("pctOfTime") + "\n");
+ emailText += messages.getString("noPktLoss1")
+ " - ";
+ emailText += messages.getString("ooOrder") +
" " +
+ prtdbl(order*100) +
messages.getString("pctOfTime") + "\n%0A";
+ }
else {
- statistics.append("No packet loss was
observed.\n");
- emailText += "No packet loss was
observed.\n%0A";
+
statistics.append(messages.getString("noPktLoss2") + ".\n");
+ emailText += messages.getString("noPktLoss2")
+ ".\n%0A";
}

if ((tests & TEST_C2S) == TEST_C2S) {
if (c2sspd > sc2sspd) {
if (sc2sspd < (c2sspd * (1.0 - VIEW_DIFF))) {
- statistics.append("C2S throughput test: Packet queuing detected:
" + prtdbl(100 * (c2sspd - sc2sspd) / c2sspd) + "%\n");
+ statistics.append(messages.getString("c2s") + " " +
messages.getString("qSeen") + ": " +
+ prtdbl(100 * (c2sspd - sc2sspd) / c2sspd) +
"%\n");
}
else {
- statistics.append("C2S throughput test: Packet queuing detected:
" + prtdbl(100 * (c2sspd - sc2sspd) / c2sspd) + "%\n");
+ statistics.append(messages.getString("c2s") + " " +
messages.getString("qSeen") + ": " +
+ prtdbl(100 * (c2sspd - sc2sspd) / c2sspd) +
"%\n");
}
}
}
-
+
if ((tests & TEST_S2C) == TEST_S2C) {
if (ss2cspd > s2cspd) {
if (s2cspd < (ss2cspd * (1.0 - VIEW_DIFF))) {
- statistics.append("S2C throughput test: Packet queuing detected:
" + prtdbl(100 * (ss2cspd - s2cspd) / ss2cspd) + "%\n");
+ statistics.append(messages.getString("s2c") + " " +
messages.getString("qSeen") + ": " +
+ prtdbl(100 * (ss2cspd - s2cspd) / ss2cspd) +
"%\n");
}
else {
- statistics.append("S2C throughput test: Packet queuing detected:
" + prtdbl(100 * (ss2cspd - s2cspd) / ss2cspd) + "%\n");
+ statistics.append(messages.getString("s2c") + " " +
messages.getString("qSeen") + ": " +
+ prtdbl(100 * (ss2cspd - s2cspd) / ss2cspd) +
"%\n");
}
}
}
-
+
if (rwintime > .015) {
- statistics.append("This connection is
receiver limited " + prtdbl(rwintime*100) +
- "% of the time.\n");
- emailText += "This connection is receiver
limited " + prtdbl(rwintime*100) +
- "% of the time.\n%0A";
+
statistics.append(messages.getString("thisConnIs") + " " +
+
messages.getString("limitRx") + " " +
+ prtdbl(rwintime*100) +
messages.getString("pctOfTime") + ".\n");
+ emailText += messages.getString("thisConnIs")
+ " " +
+
messages.getString("limitRx") + " " +
+ prtdbl(rwintime*100) +
messages.getString("pctOfTime") + ".\n%0A";

// I think there is a bug here, it sometimes tells
you to increase the buffer
// size, but the new size is smaller than the current.

if (((2*rwin)/rttsec) < mylink) {
- statistics.append(" Increasing the
the client's receive buffer (" + prtdbl(MaxRwinRcvd/1024) +
- " KB) will improve performance\n");
+ statistics.append(" " +
messages.getString("incrRxBuf") +
+ " (" +
prtdbl(MaxRwinRcvd/1024) +
+ " KB) " +
messages.getString("willImprove") + "\n");
}
}
if (sendtime > .015) {
- statistics.append("This connection is sender
limited " + prtdbl(sendtime*100) +
- "% of the time.\n");
- emailText += "This connection is sender
limited " + prtdbl(sendtime*100) +
- "% of the time.\n%0A";
+
statistics.append(messages.getString("thisConnIs") + " " +
+
messages.getString("limitTx") + " " +
+ prtdbl(sendtime*100) +
messages.getString("pctOfTime") + ".\n");
+ emailText += messages.getString("thisConnIs")
+ " " +
+
messages.getString("limitTx") + " " +
+ prtdbl(sendtime*100) +
messages.getString("pctOfTime") + ".\n%0A";
if ((2*(swin/rttsec)) < mylink) {
- statistics.append(" Increasing the
NDT server's send buffer (" + prtdbl(Sndbuf/2048) +
- " KB) will improve performance\n");
+ statistics.append(" " +
messages.getString("incrTxBuf") +
+ " (" + prtdbl(Sndbuf/2048) +
+ " KB) " +
messages.getString("willImprove") + "\n");
}
}
if (cwndtime > .005) {
- statistics.append("This connection is network
limited " + prtdbl(cwndtime*100) + "% of the time.\n");
- emailText += "This connection is network
limited " + prtdbl(cwndtime*100) + "% of the time.\n%0A";
+
statistics.append(messages.getString("thisConnIs") + " " +
+
messages.getString("limitNet") + " " +
+ prtdbl(cwndtime*100) +
messages.getString("pctOfTime") + ".\n");
+ emailText += messages.getString("thisConnIs")
+ " " +
+
messages.getString("limitNet") + " " +
+ prtdbl(cwndtime*100) +
messages.getString("pctOfTime") + ".\n%0A";
// if (cwndtime > .15)
// statistics.append(" Contact your
local network administrator to report a network problem\n");
// if (order > .15)
// statistics.append(" Contact your
local network admin and report excessive packet reordering\n");
}
if ((spd < 4) && (loss > .01)) {
- statistics.append("Excessive packet loss is
impacting your performance, check the ");
- statistics.append("auto-negotiate function on
your local PC and network switch\n");
+
statistics.append(messages.getString("excLoss") + "\n");
}
-
- statistics.append("\nWeb100 reports TCP negotiated
the optional Performance Settings to: \n");
+
+ statistics.append("\n" +
messages.getString("web100tcpOpts") + " \n");
statistics.append("RFC 2018 Selective Acknowledgment:
");
if(SACKEnabled == Zero)
- statistics.append ("OFF\n");
+ statistics.append(messages.getString("off") +
"\n");
else
- statistics.append ("ON\n");
+ statistics.append(messages.getString("on") +
"\n");

statistics.append("RFC 896 Nagle Algorithm: ");
if(NagleEnabled == Zero)
- statistics.append ("OFF\n");
+ statistics.append(messages.getString("off") +
"\n");
else
- statistics.append ("ON\n");
+ statistics.append(messages.getString("on") +
"\n");

statistics.append("RFC 3168 Explicit Congestion
Notification: ");
if(ECNEnabled == Zero)
- statistics.append ("OFF\n");
+ statistics.append(messages.getString("off") +
"\n");
else
- statistics.append ("ON\n");
+ statistics.append(messages.getString("on") +
"\n");

statistics.append("RFC 1323 Time Stamping: ");
if(TimestampsEnabled == 0)
- statistics.append ("OFF\n");
+ statistics.append(messages.getString("off") +
"\n");
else
- statistics.append ("ON\n");
+ statistics.append(messages.getString("on") +
"\n");

statistics.append("RFC 1323 Window Scaling: ");
if (MaxRwinRcvd < 65535)
WinScaleRcvd = 0;
if((WinScaleRcvd == 0) || (WinScaleRcvd > 20))
- statistics.append ("OFF\n");
+ statistics.append(messages.getString("off") +
"\n");
else
- statistics.append ("ON; Scaling Factors -
Server=" + WinScaleRcvd + ", Client=" + WinScaleSent + "\n");
+ statistics.append (messages.getString("on") +
"; " + messages.getString("scalingFactors") + " - " +
+
messages.getString("server") + "=" + WinScaleRcvd + ", " +
+
messages.getString("client") + "=" + WinScaleSent + "\n");

statistics.append("\n");

if ((tests & TEST_SFW) == TEST_SFW) {
switch (c2sResult) {
case SFW_NOFIREWALL:
- statistics.append("Server '" + host + "' is not behind a
firewall. [Connection to the ephemeral port was successful]\n");
- emailText += "Server '" + host + "' is not behind a firewall.
[Connection to the ephemeral port was successful]\n%0A";
+ statistics.append(messages.getString("server") + " '" + host +
"' " + messages.getString("firewallNo") + "\n");
+ emailText += messages.getString("server") + " '" + host + "' " +
messages.getString("firewallNo") + "\n%0A";
break;
case SFW_POSSIBLE:
- statistics.append("Server '" + host + "' is probably behind a
firewall. [Connection to the ephemeral port failed]\n");
- emailText += "Server '" + host + "' is probably behind a
firewall. [Connection to the ephemeral port failed]\n%0A";
+ statistics.append(messages.getString("server") + " '" + host +
"' " + messages.getString("firewallYes") + "\n");
+ emailText += messages.getString("server") + " '" + host + "' " +
messages.getString("firewallYes") + "\n%0A";
break;
case SFW_UNKNOWN:
case SFW_NOTTESTED:
@@ -1827,12 +1871,12 @@
}
switch (s2cResult) {
case SFW_NOFIREWALL:
- statistics.append("Client is not behind a firewall. [Connection
to the ephemeral port was successful]\n");
- emailText += "Client is not behind a firewall. [Connection to
the ephemeral port was successful]\n%0A";
+ statistics.append(messages.getString("client2") + " " +
messages.getString("firewallNo") + "\n");
+ emailText += messages.getString("client2") + " " +
messages.getString("firewallNo") + "\n%0A";
break;
case SFW_POSSIBLE:
- statistics.append("Client is probably behind a firewall.
[Connection to the ephemeral port failed]\n");
- emailText += "Client is probably behind a firewall. [Connection
to the ephemeral port failed]\n%0A";
+ statistics.append(messages.getString("client2") + " " +
messages.getString("firewallYes") + "\n");
+ emailText += messages.getString("client2") + " " +
messages.getString("firewallYes") + "\n%0A";
break;
case SFW_UNKNOWN:
case SFW_NOTTESTED:
@@ -1844,30 +1888,30 @@
// + (CurrentMSS*8/1024) + "kbits, RTT = " +
prtdbl(avgrtt) + "msec, " + "and loss = " + loss + "\n");
diagnosis.append("\n");

- diagnosis.append("The theoretical network limit is "
+ prtdbl(estimate) + " Mbps\n");
- emailText += "The theoretical network limit is " +
prtdbl(estimate) + " Mbps\n%0A";
+
diagnosis.append(messages.getString("theoreticalLimit") + " " +
prtdbl(estimate) + " " + "Mbps\n");
+ emailText += messages.getString("theoreticalLimit") +
" " + prtdbl(estimate) + " Mbps\n%0A";

- diagnosis.append("The NDT server has a " +
prtdbl(Sndbuf/2048) +
- " KByte buffer which limits the throughput to
" + prtdbl(swin/rttsec) + " Mbps\n");
- emailText += "The NDT server has a " +
prtdbl(Sndbuf/2048) +
- " KByte buffer which limits the throughput to
" + prtdbl(swin/rttsec) + " Mbps\n%0A";
-
- diagnosis.append("Your PC/Workstation has a " +
prtdbl(MaxRwinRcvd/1024) +
- " KByte buffer which limits the throughput to
" + prtdbl(rwin/rttsec) + " Mbps\n");
- emailText += "Your PC/Workstation has a " +
prtdbl(MaxRwinRcvd/1024) +
- " KByte buffer which limits the throughput to
" + prtdbl(rwin/rttsec) + " Mbps\n%0A";
-
- diagnosis.append("The network based flow control
limits the throughput to " + prtdbl(cwin/rttsec) + " Mbps\n");
- emailText += "The network based flow control limits
the throughput to " + prtdbl(cwin/rttsec) + " Mbps\n%0A";
-
- diagnosis.append("\nClient Data reports link is '" +
prttxt(c2sData) +
- "', Client Acks report link is '" +
prttxt(c2sAck) + "'\n" +
- "Server Data reports link is '" +
prttxt(s2cData) +
- "', Server Acks report link is '" +
prttxt(s2cAck) + "'\n");
+ diagnosis.append(messages.getString("ndtServerHas")
+ " " + prtdbl(Sndbuf/2048) +
+ " " +
messages.getString("kbyteBufferLimits") + " " + prtdbl(swin/rttsec) + "
Mbps\n");
+ emailText += messages.getString("ndtServerHas") + " "
+ prtdbl(Sndbuf/2048) +
+ " " + messages.getString("kbyteBufferLimits")
+ " " + prtdbl(swin/rttsec) + " Mbps\n%0A";
+
+ diagnosis.append(messages.getString("yourPcHas") + "
" + prtdbl(MaxRwinRcvd/1024) +
+ " " +
messages.getString("kbyteBufferLimits") + " " + prtdbl(rwin/rttsec) + "
Mbps\n");
+ emailText += messages.getString("yourPcHas") + " " +
prtdbl(MaxRwinRcvd/1024) +
+ " " + messages.getString("kbyteBufferLimits")
+ " " + prtdbl(rwin/rttsec) + " Mbps\n%0A";
+
+
diagnosis.append(messages.getString("flowControlLimits") + " " +
prtdbl(cwin/rttsec) + " Mbps\n");
+ emailText += messages.getString("flowControlLimits")
+ " " + prtdbl(cwin/rttsec) + " Mbps\n%0A";
+
+ diagnosis.append("\n" +
messages.getString("clientDataReports") + " '" + prttxt(c2sData) +
+ "', " +
messages.getString("clientAcksReport") + " '" + prttxt(c2sAck) + "'\n" +
+ messages.getString("serverDataReports") + "
'" + prttxt(s2cData) +
+ "', " +
messages.getString("serverAcksReport") + " '" + prttxt(s2cAck) + "'\n");
}
} // testResults()
-
-
+
+

/* this routine decodes the middlebox test results. The data is
returned
* from the server is a specific order. This routine pulls the string
apart
@@ -1910,9 +1954,9 @@
// winssent + "\n");

if (mss == 1456)
- statistics.append("Packet size is preserved
End-to-End\n");
+
statistics.append(messages.getString("packetSizePreserved") + "\n");
else
- statistics.append("Information: Network Middlebox is
modifying MSS variable\n");
+
statistics.append(messages.getString("middleboxModifyingMss") + "\n");

// if ((winsrecv == -1) && (winssent == -1))
// statistics.append("Window scaling option is preserved
End-to-End\n");
@@ -1927,19 +1971,16 @@
preserved = ssip.equals(csip);
}
if (preserved) {
- statistics.append("Server IP addresses are preserved
End-to-End\n");
+
statistics.append(messages.getString("serverIpPreserved") + "\n");
}
else {
- statistics.append("Information: Network Address
Translation (NAT) box is " +
- "modifying the Server's IP address\n");
- statistics.append("\tServer says [" + ssip + "] but
Client says [" + csip + "]\n");
+
statistics.append(messages.getString("serverIpModified") + "\n");
+ statistics.append("\t" +
messages.getString("serverSays") + " [" + ssip + "], " +
+ messages.getString("clientSays")
+" [" + csip + "]\n");
}

if (ccip.equals("127.0.0.1")) {
- statistics.append("Client IP address not found. For
IE users, modify the Java parameters\n");
- statistics.append("\tclick Tools - Internet Options -
Security - Custom Level, scroll down to\n");
- statistics.append("\tMicrosoft VM - Java permissions
and click Custom, click Java Custom Settings\n");
- statistics.append("\tEdit Permissions - Access to all
Network Addresses, click Eanble and save changes\n");
+
statistics.append(messages.getString("clientIpNotFound") + "\n");
}
else {
try {
@@ -1949,10 +1990,11 @@
preserved = scip.equals(ccip);
}
if (preserved)
- statistics.append("Client IP addresses are
preserved End-to-End\n");
+
statistics.append(messages.getString("clientIpPreserved") + "\n");
else {
- statistics.append("Information: Network
Address Translation (NAT) box is modifying the Client's IP address\n");
- statistics.append("\tServer says [" + scip +
"] but Client says [" + ccip + "]\n");
+
statistics.append(messages.getString("clientIpModified") + "\n");
+ statistics.append("\t" +
messages.getString("serverSays") + " [" + scip + "], " +
+
messages.getString("clientSays") +" [" + ccip + "]\n");
}
}
} // middleboxResults()
@@ -1984,11 +2026,11 @@
String str = null;

if (val == -1)
- str = "System Fault";
+ str = messages.getString("systemFault");
else if (val == 0)
- str = "RTT";
+ str = messages.getString("rtt");
else if (val == 1)
- str = "Dial-up";
+ str = messages.getString("dialup2");
else if (val == 2)
str = "T1";
else if (val == 3)
@@ -2007,42 +2049,42 @@
str = "10 Gig";
return(str);
} // prttxt()
-
-
+
+

/* This routine saves the specific value into the variable of the
* same name. There should probably be an easier way to do this.
*/
public void save_dbl_values(String sysvar, double sysval) {
- if(sysvar.equals("bw:"))
+ if(sysvar.equals("bw:"))
estimate = sysval;
- else if(sysvar.equals("loss:"))
+ else if(sysvar.equals("loss:"))
loss = sysval;
- else if(sysvar.equals("avgrtt:"))
+ else if(sysvar.equals("avgrtt:"))
avgrtt = sysval;
- else if(sysvar.equals("waitsec:"))
+ else if(sysvar.equals("waitsec:"))
waitsec = sysval;
- else if(sysvar.equals("timesec:"))
+ else if(sysvar.equals("timesec:"))
timesec = sysval;
- else if(sysvar.equals("order:"))
+ else if(sysvar.equals("order:"))
order = sysval;
- else if(sysvar.equals("rwintime:"))
+ else if(sysvar.equals("rwintime:"))
rwintime = sysval;
- else if(sysvar.equals("sendtime:"))
+ else if(sysvar.equals("sendtime:"))
sendtime = sysval;
- else if(sysvar.equals("cwndtime:"))
+ else if(sysvar.equals("cwndtime:"))
cwndtime = sysval;
- else if(sysvar.equals("rttsec:"))
+ else if(sysvar.equals("rttsec:"))
rttsec = sysval;
- else if(sysvar.equals("rwin:"))
+ else if(sysvar.equals("rwin:"))
rwin = sysval;
- else if(sysvar.equals("swin:"))
+ else if(sysvar.equals("swin:"))
swin = sysval;
- else if(sysvar.equals("cwin:"))
+ else if(sysvar.equals("cwin:"))
cwin = sysval;
- else if(sysvar.equals("spd:"))
+ else if(sysvar.equals("spd:"))
spd = sysval;
- else if(sysvar.equals("aspd:"))
+ else if(sysvar.equals("aspd:"))
aspd = sysval;
} // save_dbl_values()

@@ -2050,7 +2092,7 @@

public void save_int_values(String sysvar, int sysval) {
/* Values saved for interpretation:
- * SumRTT
+ * SumRTT
* CountRTT
* CurrentMSS
* Timeouts
@@ -2065,66 +2107,66 @@
* SndLimTimeRwin
* SndLimTimeCwnd
* SndLimTimeSender
- */
- if(sysvar.equals("MSSSent:"))
+ */
+ if(sysvar.equals("MSSSent:"))
MSSSent = sysval;
- else if(sysvar.equals("MSSRcvd:"))
+ else if(sysvar.equals("MSSRcvd:"))
MSSRcvd = sysval;
- else if(sysvar.equals("ECNEnabled:"))
+ else if(sysvar.equals("ECNEnabled:"))
ECNEnabled = sysval;
- else if(sysvar.equals("NagleEnabled:"))
+ else if(sysvar.equals("NagleEnabled:"))
NagleEnabled = sysval;
- else if(sysvar.equals("SACKEnabled:"))
+ else if(sysvar.equals("SACKEnabled:"))
SACKEnabled = sysval;
- else if(sysvar.equals("TimestampsEnabled:"))
+ else if(sysvar.equals("TimestampsEnabled:"))
TimestampsEnabled = sysval;
- else if(sysvar.equals("WinScaleRcvd:"))
+ else if(sysvar.equals("WinScaleRcvd:"))
WinScaleRcvd = sysval;
- else if(sysvar.equals("WinScaleSent:"))
+ else if(sysvar.equals("WinScaleSent:"))
WinScaleSent = sysval;
- else if(sysvar.equals("SumRTT:"))
+ else if(sysvar.equals("SumRTT:"))
SumRTT = sysval;
- else if(sysvar.equals("CountRTT:"))
+ else if(sysvar.equals("CountRTT:"))
CountRTT = sysval;
else if(sysvar.equals("CurMSS:"))
CurrentMSS = sysval;
- else if(sysvar.equals("Timeouts:"))
+ else if(sysvar.equals("Timeouts:"))
Timeouts = sysval;
- else if(sysvar.equals("PktsRetrans:"))
+ else if(sysvar.equals("PktsRetrans:"))
PktsRetrans = sysval;
- else if(sysvar.equals("SACKsRcvd:"))
+ else if(sysvar.equals("SACKsRcvd:"))
SACKsRcvd = sysval;
- else if(sysvar.equals("DupAcksIn:"))
+ else if(sysvar.equals("DupAcksIn:"))
DupAcksIn = sysval;
- else if(sysvar.equals("MaxRwinRcvd:"))
+ else if(sysvar.equals("MaxRwinRcvd:"))
MaxRwinRcvd = sysval;
- else if(sysvar.equals("MaxRwinSent:"))
+ else if(sysvar.equals("MaxRwinSent:"))
MaxRwinSent = sysval;
- else if(sysvar.equals("Sndbuf:"))
+ else if(sysvar.equals("Sndbuf:"))
Sndbuf = sysval;
- else if(sysvar.equals("X_Rcvbuf:"))
+ else if(sysvar.equals("X_Rcvbuf:"))
Rcvbuf = sysval;
- else if(sysvar.equals("DataPktsOut:"))
+ else if(sysvar.equals("DataPktsOut:"))
DataPktsOut = sysval;
- else if(sysvar.equals("FastRetran:"))
+ else if(sysvar.equals("FastRetran:"))
FastRetran = sysval;
- else if(sysvar.equals("AckPktsOut:"))
+ else if(sysvar.equals("AckPktsOut:"))
AckPktsOut = sysval;
- else if(sysvar.equals("SmoothedRTT:"))
+ else if(sysvar.equals("SmoothedRTT:"))
SmoothedRTT = sysval;
- else if(sysvar.equals("CurCwnd:"))
+ else if(sysvar.equals("CurCwnd:"))
CurrentCwnd = sysval;
- else if(sysvar.equals("MaxCwnd:"))
+ else if(sysvar.equals("MaxCwnd:"))
MaxCwnd = sysval;
- else if(sysvar.equals("SndLimTimeRwin:"))
+ else if(sysvar.equals("SndLimTimeRwin:"))
SndLimTimeRwin = sysval;
- else if(sysvar.equals("SndLimTimeCwnd:"))
+ else if(sysvar.equals("SndLimTimeCwnd:"))
SndLimTimeCwnd = sysval;
- else if(sysvar.equals("SndLimTimeSender:"))
+ else if(sysvar.equals("SndLimTimeSender:"))
SndLimTimeSender = sysval;
- else if(sysvar.equals("DataBytesOut:"))
+ else if(sysvar.equals("DataBytesOut:"))
DataBytesOut = sysval;
- else if(sysvar.equals("AckPktsIn:"))
+ else if(sysvar.equals("AckPktsIn:"))
AckPktsIn = sysval;
else if(sysvar.equals("SndLimTransRwin:"))
SndLimTransRwin = sysval;
@@ -2166,55 +2208,55 @@


public void diagnose() {
- showStatus("Get WEB100 Variables");
-
+ showStatus(messages.getString("getWeb100Var"));
+
if (f == null) {
f = new clsFrame();
}
- f.setTitle("Web100 Variables");
+ f.setTitle(messages.getString("web100Var"));
Panel buttons = new Panel();
f.getContentPane().add("South", buttons);
-
- disMiss = new JButton("Close");
+
+ disMiss = new JButton(messages.getString("close"));
disMiss.addActionListener(this);
-
- copy = new JButton("Copy");
+
+ copy = new JButton(messages.getString("copy"));
copy.addActionListener(this);
-
- diagnosis = new JTextArea("WEB100 Kernel Variables:\n",
15,30);
+
+ diagnosis = new
JTextArea(messages.getString("web100KernelVar") + ":\n", 15,30);
diagnosis.setEditable(true);
disMiss.setEnabled(true);
copy.setEnabled(cancopy);
-
+
buttons.add("West", disMiss);
buttons.add("East", copy);
f.getContentPane().add(new JScrollPane(diagnosis));
f.pack();
} // diagnose()
-
-
+
+

public void statistics() {
- showStatus("Print Detailed Statistics");
+ showStatus(messages.getString("printDetailedStats"));

if (ff == null) {
ff = new clsFrame();
}
- ff.setTitle("Detailed Statistics");
+ ff.setTitle(messages.getString("detailedStats"));
Panel buttons = new Panel();
ff.getContentPane().add("South", buttons);
-
- disMiss2 = new JButton("Close");
+
+ disMiss2 = new JButton(messages.getString("close"));
disMiss2.addActionListener(this);
-
- copy2 = new JButton("Copy");
+
+ copy2 = new JButton(messages.getString("copy"));
copy2.addActionListener(this);
-
- statistics = new JTextArea("WEB100 Enabled Statistics:\n",
25,70);
+
+ statistics = new JTextArea(messages.getString("web100Stats")
+ ":\n", 25,70);
statistics.setEditable(true);
disMiss2.setEnabled(true);
copy2.setEnabled(cancopy);
-
+
buttons.add("West", disMiss2);
buttons.add("East", copy2);
ff.getContentPane().add(new JScrollPane(statistics));
@@ -2223,53 +2265,53 @@


public void showOptions() {
- showStatus("Show options");
+ showStatus(messages.getString("showOptions"));

if (optionsFrame == null) {
optionsFrame = new clsFrame();
- optionsFrame.setTitle("Options");
+ optionsFrame.setTitle(messages.getString("options"));

JPanel optionsPanel = new JPanel();
optionsPanel.setLayout(new BoxLayout(optionsPanel, BoxLayout.Y_AXIS));

JPanel testsPanel = new JPanel();
- testsPanel.setBorder(BorderFactory.createTitledBorder("Performed
tests"));
+
testsPanel.setBorder(BorderFactory.createTitledBorder(messages.getString("performedTests")));
testsPanel.add(defaultTest);
optionsPanel.add(testsPanel);

JPanel protocolPanel = new JPanel();
- protocolPanel.setBorder(BorderFactory.createTitledBorder("IP
protocol"));
+
protocolPanel.setBorder(BorderFactory.createTitledBorder(messages.getString("ipProtocol")));
protocolPanel.add(preferIPv6);
optionsPanel.add(protocolPanel);

if (getParameter("enableMultipleTests") != null) {
JPanel generalPanel = new JPanel();
generalPanel.setLayout(new BoxLayout(generalPanel,
BoxLayout.Y_AXIS));
-
generalPanel.setBorder(BorderFactory.createTitledBorder("General"));
+
generalPanel.setBorder(BorderFactory.createTitledBorder(messages.getString("general")));
JPanel tmpPanel = new JPanel();
- tmpPanel.add(new JLabel("Number of tests:"));
+ tmpPanel.add(new JLabel(messages.getString("numberOfTests") +
":"));
tmpPanel.add(numOfTests);
generalPanel.add(tmpPanel);
tmpPanel = new JPanel();
- tmpPanel.add(new JLabel("Delay between tests:"));
+ tmpPanel.add(new JLabel(messages.getString("delayBetweenTests") +
":"));
tmpPanel.add(delay);
generalPanel.add(tmpPanel);

optionsPanel.add(generalPanel);
}

- optionsFrame.getContentPane().add(optionsPanel);
+ optionsFrame.getContentPane().add(optionsPanel);
Panel buttons = new Panel();
optionsFrame.getContentPane().add("South", buttons);

- JButton okButton= new JButton("OK");
+ JButton okButton= new JButton(messages.getString("ok"));
okButton.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {
optionsFrame.toBack();
optionsFrame.dispose();
}
-
+
});

buttons.add("West", okButton);
@@ -2291,7 +2333,7 @@
f.dispose();
f = null;
}
-
+
if(ff != null) {
ff.toBack();
ff.dispose();
@@ -2353,10 +2395,9 @@

mailTo.setEnabled(false);
// envoke mailto: function
- showStatus("Tcpbw100 Invoking Mailto function...");
-
- results.append("Generating Trouble Report: This
report will be" +
- " emailed to the person you specify\n");
+
showStatus(messages.getString("invokingMailtoFunction") + "...");
+
+ results.append(messages.getString("generatingReport")
+ "\n");
try {
if ((Name = getParameter(TARGET1)) == null) {
throw new IllegalArgumentException("U
parameter Required:");
@@ -2367,12 +2408,13 @@

String theURL = "; + Name + "@" + Host;
String subject = getParameter("subject");
-
+
if (subject == null) {
- subject = "Trouble Report from NDT on
" + getCodeBase().getHost();
+ subject =
messages.getString("troubleReportFrom") + " " + getCodeBase().getHost();
}
theURL += "?subject=" + subject;
- theURL += "&body=Comments:%0A%0A" + emailText
+ " End Of Email Message\n%0A";
+ theURL += "&body=" +
messages.getString("comments") + ":%0A%0A" +
+ emailText + " " +
messages.getString("endOfEmail") + "\n%0A";
// System.out.println("Message body is '" +
emailText + "'\n");
targetURL = new URL(theURL);

Index: ndt-3.5.6/Applet/Tcpbw100_msgs_en_US.properties
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ ndt-3.5.6/Applet/Tcpbw100_msgs_en_US.properties 2009-12-09
13:18:24.000000000 +0100
@@ -0,0 +1,218 @@
+10gbps = 10 Gbps 10 Gigabit Ethernet/OC-192 subnet
+10mbps = 10 Mbps Ethernet subnet
+10mins = 10 mins
+12hours = 12 hours
+1day = 1 day
+1gbps = 1.0 Gbps Gigabit Ethernet subnet
+1min = 1 min
+2.4gbps = 2.4 Gbps OC-48 subnet
+2hours = 2 hours
+30mins = 30 mins
+45mbps = 45 Mbps T3/DS3 subnet
+5mins = 5 mins
+622mbps = a 622 Mbps OC-12 subnet
+and = and
+architecture = Architecture
+bytes = Bytes
+c2s = C2S
+c2sPacketQueuingDetected = [C2S]: Packet queueing detected
+c2sThroughput = C2S throughput
+c2sThroughputFailed = C2S throughput test FAILED!
+cabledsl = Cable/DSL modem
+cablesNok = Warning: excessive network errors, check network cable(s)
+cablesOk = Good network cable(s) found
+checkingFirewalls = Checking for firewalls . . . . . . . . . . . . . . . . .
. .
+checkingMiddleboxes = Checking for Middleboxes . . . . . . . . . . . . . .
. . . .
+clickStart = Click START to start the test
+clickStart2 = Click START to re-test
+client = Client
+client2 = Client
+clientAcksReport = Client Acks report link is
+clientDataReports = Client Data reports link is
+clientInfo = Client System Details
+clientIpModified = Information: Network Address Translation (NAT) box is
modifying the Client's IP address
+clientIpNotFound = Client IP address not found. For IE users, modify the
Java parameters\n click Tools - Internet Options - Security - Custom Level,
scroll down to\n Microsoft VM - Java permissions and click Custom, click Java
Custom Settings\n Edit Permissions - Access to all Network Addresses, click
Eanble and save changes
+clientIpPreserved = Server IP addresses are preserved End-to-End
+clientSays = but Client says
+close = Close
+comments = Comments
+congestNo = No network congestion discovered.
+congestYes = Information: throughput is limited by other network traffic.
+connIdle = The connection was idle
+connStalled = The connection stalled
+connected = Connected to:
+connectedTo = is connected to a
+copy = Copy
+defaultTests = Default tests
+delayBetweenTests = Delay between tests
+detailedStats = Detailed Statistics
+dialup = Dial-up Modem
+dialup2 = Dial-up
+done = Done.
+done2 = Tcpbw100 done
+dupAcksIn = duplicate acks received
+duplexFullHalf = Alarm: Duplex Mismatch condition detected Switch=Full and
Host=half
+duplexHalfFull = Alarm: Duplex Mismatch condition detected Switch=half and
Host=full
+duplexNok = Warning: Old Duplex mismatch condition detected:
+duplexOk = Normal duplex operation found.
+endOfEmail = End Of Email Message
+excLoss = Excessive packet loss is impacting your performance, check the
auto-negotiate function on your local PC and network switch
+excessiveErrors = Alarm: Excessive errors, check network cable(s).
+firewallNo = is not behind a firewall. [Connection to the ephemeral port was
successful]
+firewallYes = is probably behind a firewall. [Connection to the ephemeral
port failed]
+flowControlLimits = The network based flow control limits the throughput to
+found100mbps = 100 Mbps FastEthernet link found.
+found10gbps = 10 Gbps 10 GigEthernet/OC-192 link found.
+found10mbps = 10 Mbps Ethernet link found.
+found1gbps = 1 Gbps GigabitEthernet link found.
+found2.4gbps = 2.4 Gbps OC-48 link found.
+found45mbps = 45 Mbps T3/DS3 link found.
+found622mbps = 622 Mbps OC-12 link found.
+foundDialup = Dial-up modem link found.
+foundDsl = Cable modem/DSL/T1 link found.
+fullDuplex = Full duplex Fast Ethernet subnet
+general = General
+generatingReport = Generating Trouble Report: This report will be emailed
to the person you specify
+getWeb100Var = Get WEB100 Variables
+halfDuplex = Half duplex Fast Ethernet subnet
+id = TCP/Web100 Network Diagnostic Tool
+immediate = immediate
+inboundTest = Tcpbw100 inbound test...
+inboundWrongMessage = C2S throughput test: Received wrong type of the message
+incompatibleVersion = Incompatible version number
+incrRxBuf = Increasing the the client's receive buffer
+incrTxBuf = Increasing the NDT server's send buffer
+information = Information
+initialization = Initialization...
+insufficient = Insufficent data collected to determine link type.
+invokingMailtoFunction = Tcpbw100 Invoking Mailto function
+ipProtocol = IP protocol
+ipcFail = Interprocess communications failed, unknown link type.
+usingIpv4 = -- Using IPv4 address
+usingIpv6 = -- Using IPv6 address
+javaData = Java data
+kbyteBufferLimits = KByte buffer which limits the throughput to
+limitNet = network limited
+limitRx = receiver limited
+limitTx = sender limited
+linkFullDpx = Link set to Full Duplex mode
+linkHalfDpx = Link set to Half Duplex mode
+loggingWrongMessage = Logging to server: Received wrong type of the message
+lookupError = Unable to obtain remote IP address
+mboxWrongMessage = Middlebox test: Received wrong type of the message
+middlebox = Middlebox
+middleboxFail = Server Failed while middlebox testing
+middleboxFail2 = Middlebox test FAILED!
+middleboxModifyingMss = Information: Network Middlebox is modifying MSS
variable
+middleboxTest = Tcpbw100 Middlebox test...
+moreDetails = More Details...
+name = Name
+ndtServerHas = The NDT server has a
+noPktLoss1 = No packet loss
+noPktLoss2 = No packet loss was observed
+numberOfTests = Number of tests
+of = of
+off = OFF
+ok = OK
+oldDuplexMismatch = "Warning: Old Duplex mismatch condition detected: "
+on = ON
+ooOrder = but packets arrived out-of-order
+options = Options
+osData = OS data:
+otherClient = Another client is currently being served, your test will begin
within
+otherTraffic = Information: Other network traffic is congesting the link
+outboundTest = Tcpbw100 outbound test...
+outboundWrongMessage = C2S throughput test: Received wrong type of the
message
+packetQueuing = Packet queuing
+packetQueuingInfo = TCP (Transmission Control Protocol) reliably transfers
data between two\n Internet hosts. It automatically detects and recovers
from errors and\n losses. TCP uses buffers to provide this reliability. In
addition,\n switches and routers use buffers to handle cases where multiple
input\n links send packets to a single output link or link speeds change\n
(FastEthernet to DSL modem).\n\n The NDT server generates and sends 10
seconds of data to the client. In\n some cases the server can generate data
faster than it can send packets\n into the network (e.g., a 2 GHz CPU sending
to a DSL connected client).\n When this happens, some packets may remain in
the server output queue\n when the 10 second timer expires. TCP will
automatically continue to\n send these queued packets and the client will
continue to accept and\n process these incoming packets. This will result in
the client test\n running longer than expected.\n\n This condition has
occurred during this test. No action is required to\n resolve this issue.
+packetSizePreserved = Packet size is preserved End-to-End
+packetsize = the Packet size
+pc = PC
+pctOfTime = % of the time
+performedTests = Performed tests
+pktsRetrans = packets retransmitted
+possibleDuplexFullHalf = Alarm: Possible Duplex Mismatch condition detected
Switch=Full and Host=half
+possibleDuplexHalfFull = Alarm: Possible Duplex Mismatch condition detected
Switch=half and Host=full
+possibleDuplexHalfFullWarning = Warning: Possible Duplex Mismatch condition
detected Switch=half and Host=full
+preferIPv6 = prefer IPv6
+printDetailedStats = Print Detailed Statistics
+protocolError = Protocol error!
+qSeen = throughput test: Packet queuing detected
+ready = Tcpbw100 ready
+receiveBufferShouldBe = Information: The receive buffer should be
+receiving = Receiving results...
+reportProblem = Report problem
+resultsParseError = Error parsing test results!
+resultsTimeout = Warning! Client time-out while reading data, possible
duplex mismatch exists
+resultsWrongMessage = Tests results: Received wrong type of the message
+rtt = RTT
+rttFail = Link detection algorithm failed due to excessive Round Trip Times.
+runningInboundTest = running 10s inbound test (server-to-client [S2C]) . . .
. . .
+runningOutboundTest = running 10s outbound test (client-to-server [C2S]) . .
. . .
+s2c = S2C
+s2cPacketQueuingDetected = [S2C]: Packet queueing detected
+s2cThroughput = S2C throughput
+s2cThroughputFailed = S2C throughput test FAILED!
+sackReceived = SACK blocks received
+scalingFactors = Scaling Factors
+seconds = seconds
+server = Server
+serverAcksReport = Server Acks report link is
+serverBusy = Server Busy: Too many clients waiting in server queue. Please
try again later
+serverBusy15s = Server Busy: Please wait 15 seconds for previous test to
finish
+serverBusy30s = Server busy: Please wait 30 seconds for previous test to
finish
+serverBusy60s = Server Busy: Please wait 60 seconds for previous test to
finish
+serverDataReports = Server Data reports link is
+serverFail = Server failed while receiving data
+serverIpModified = Information: Network Address Translation (NAT) box is
modifying the Client's IP address
+serverIpPreserved = Server IP addresses are preserved End-to-End
+serverNotRunning = Server process not running: start web100srv process on
remote server
+serverSays = Server says
+sfwFail = Simple firewall test FAILED!
+sfwSocketFail = Simple firewall test: Cannot create listen socket
+sfwTest = Simple firewall test...
+sfwWrongMessage = Simple firewall test: Received wrong type of the message
+showOptions = Show options
+simpleFirewall = Simple firewall
+sleep10m = Sleeping for 10 mins...
+sleep1m = Sleeping for 1 min...
+sleep30m = Sleeping for 30 mins...
+sleep5m = Sleeping for 5 mins...
+sleep12h = Sleeping for 12 hours...
+sleep1d = Sleeping for 1 day...
+sleep2h = Sleeping for 2 hours...
+start = START
+startingTest = Starting test
+statistics = Statistics
+stop = STOP
+stopped = The tests were stopped!
+stopping = Stopping...
+systemFault = System Fault
+test = Test
+testsuiteWrongMessage = Negotiating test suite: Received wrong type of the
message
+theSlowestLink = The slowest link in the end-to-end path is a
+theoreticalLimit = The theoretical network limit is
+thisConnIs = This connection is
+timesPktLoss = times due to packet loss
+toMaximizeThroughput = kbytes to maximize throughput
+troubleReportFrom = Trouble Report from NDT on
+unableToDetectBottleneck = Server unable to determine bottleneck link type.
+unableToObtainIP = Unable to obtain local IP address
+unknownID = Unknown test ID
+unknownServer = Unknown server
+unsupportedClient = Information: The server does not support this command
line client
+vendor = Vendor
+version = Version
+versionWrongMessage = Negotiating NDT version: Received wrong type of the
message
+web100Details = Web100 Detailed Analysis
+web100KernelVar = WEB100 Kernel Variables
+web100Stats = WEB100 Enabled Statistics
+web100Var = Web100 Variables
+web100rtt = Web100 reports the Round trip time
+web100tcpOpts = Web100 reports TCP negotiated the optional Performance
Settings to:
+willImprove = will improve performance
+workstation = Workstation
+your = Your
+yourPcHas = Your PC/Workstation has a
+connectingTo = Connecting to
+toRunTest = to run test
Index: ndt-3.5.6/Applet/Tcpbw100_msgs_nb_NO.properties
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ ndt-3.5.6/Applet/Tcpbw100_msgs_nb_NO.properties 2009-12-09
13:18:24.000000000 +0100
@@ -0,0 +1,218 @@
+10gbps = 10 Gbps 10 Gigabit Ethernet/OC-192-subnett
+10mbps = 10 Mbps Ethernet-subnett
+10mins = 10 mins
+12hours = 12 hours
+1day = 1 d\u00f8ygn
+1gbps = 1.0 Gbps Gigabit Ethernet-subnett
+1min = 1 min
+2.4gbps = 2.4 Gbps OC-48-subnett
+2hours = 2 timer
+30mins = 30 min
+45mbps = 45 Mbps T3/DS3-subnett
+5mins = 5 min
+622mbps = et 622 Mbps OC-12-subnett
+and = og
+architecture = Arkitektur
+bytes = byte
+c2s = K-T
+c2sPacketQueuingDetected = [K-T]: Pakkek\u00f8ing oppdaget
+c2sThroughput = K-T ytelse
+c2sThroughputFailed = K-T ytelsestest FEILET!
+cabledsl = Kabel/DSL-modem
+cablesNok = Advarsel: for mange nettverksfeil, sjekk kablene.
+cablesOk = Nettverkskablene er i orden.
+checkingFirewalls = Ser etter brannmurer . . . . . . . . . . . . . . . . . .
.
+checkingMiddleboxes = Ser etter mellombokser . . . . . . . . . . . . . . .
. .
+clickStart = Trykk START for \u00e5 starte testene.
+clickStart2 = Trykk START for \u00e5 teste en gang til.
+client = Klient
+client2 = Klienten
+clientAcksReport = basert p\u00e5 ack fra klienten ansl\u00e5s linken til
+clientDataReports = Basert p\u00e5 data fra klienten ansl\u00e5s linken til
+clientInfo = Opplysninger om klientmaskinen
+clientIpModified = Til orientering: Network Address Translation (NAT)
forandrer klientmaskinens IP-adresse
+clientIpNotFound = IP-addressen til klientmaskinen ble ikke funnet
+clientIpPreserved = Tjenermaskinens IP-adresse blir bevart fra ende til ende
+clientSays = men klienten sier
+close = Lukk
+comments = Kommentarer
+congestNo = Overbelastning i nettet ikke funnet.
+congestYes = Til orientering: ytelsen er begrenset av annen trafikk i nettet.
+connIdle = Forbindelsen ventet
+connStalled = Forbindelsen hang
+connected = Koblet til:
+connectedTo = er koblet til et
+connectingTo = Kobler opp mot
+copy = Kopier
+defaultTests = Standardtester
+delayBetweenTests = Delay between tests
+detailedStats = Detaljer
+dialup = Oppringt modem
+dialup2 = oppringt
+done = Ferdig
+done2 = Tcpbw100 ferdig
+dupAcksIn = dupliserte ack ble mottatt
+duplexFullHalf = Alarm: Dupleksitetsfeil oppdaget; svitsj=full og maskin=halv
+duplexHalfFull = Alarm: Dupleksitetsfeil oppdaget; svitsj=halv og maskin=full
+duplexNok = Alarm: Dupleksitetsfeil:
+duplexOk = Dupleksitet er i orden.
+endOfEmail = Slutt p\u00e5 epost
+excLoss = "H\u00f8yt pakketap begrenser ytelsen, kontroller automatisk
konfigurering mellom din datamaskin og nettverkssvitsjen.
+excessiveErrors = Alarm: Alvorlige pakketap, sjekk nettverkskabler.
+firewallNo = er ikke bak brannmur. [Oppn\u00e5dde forbindelse med
midlertidig port]
+firewallYes = er trolig bak en brannmur . [Oppn\u00e5dde ikke forbindelse
med midlertidig port]
+flowControlLimits = Flytkontroll i nettet begrenser ytelsen til
+found100mbps = Link med 100 Mbit/s FastEthernet funnet.
+found10gbps = Link med 10 Gbit/s 10 GigEthernet/OC-192 funnet.
+found10mbps = Link med 10 Mbit/s Ethernet funnet.
+found1gbps = Link med 1 Gbit/s GigabitEthernet funnet.
+found2.4gbps = Link med 2.4 Gbit/s OC-48 funnet.
+found45mbps = Link med 45 Mbit/s T3/DS3 funnet.
+found622mbps = Link med 622 Mbit/s OC-12 funnet.
+foundDialup = Link med oppringt modem funnet.
+foundDsl = Link med kabelmodem/DSL/T1 funnet.
+fullDuplex = full dupleks "Fast Ethernet"-subnett
+general = Annet
+generatingReport = Genererer feilrapport; denne vil bli sendt til personen
du spesifiserer
+getWeb100Var = Viser variabler fra WEB100
+halfDuplex = Halv-dupleks "Fast Ethernet"-subnett
+id = TCP/Web100 nettverksdiagnostikkverkt\u00f8y
+immediate = umiddelbart
+inboundTest = Tcpbw100 innkommende test...
+inboundWrongMessage = Klient-til-tjener-ytelsestest: mottok feil melding
+incompatibleVersion = Inkompatibelt versjonsnummer
+incrRxBuf = \u00c5 \u00f8ke klientmaskinens mottaksbuffer
+incrTxBuf = \u00c5 \u00f8ke tjenermaskinens sendebuffer
+information = Informasjon
+initialization = Initialiserer...
+insufficient = Ikke nok data til \u00e5 bestemme type link.
+invokingMailtoFunction = Tcpbw100 sender post
+ipProtocol = IP-protokoll
+ipcFail = Feil ved kommunikasjon mellom prosesser, type link ikke bestemt.
+javaData = Opplysninger om Java
+kbyteBufferLimits = kbyte som begrenser ytelsen til
+limitNet = begrenset av nettet
+limitRx = begrenset av mottakeren
+limitTx = begrenset av senderen
+linkFullDpx = Linken er i full dupleksmodus.
+linkHalfDpx = Linken er i halv dupleksmodus.
+loggingWrongMessage = Logging til tjener: Mottok feil type melding
+lookupError = Greide ikke sl\u00e5 opp tjenerens IP-addresse
+mboxWrongMessage = Mellombokstest: Mottok feil type melding
+middlebox = Mellomboks
+middleboxFail = Tjenerfeil under mellombokstesting
+middleboxFail2 = Mellombokstest feilet!
+middleboxModifyingMss = Til orientering: En mellomboks i nettet forandrer
valgt MSS
+middleboxTest = Tcpbw100 mellombokstest...
+moreDetails = Detaljer
+name = Navn
+ndtServerHas = NDT-tjeneren har en buffer p\u00e5
+noPktLoss1 = Intet pakketap
+noPktLoss2 = Intet pakketap
+numberOfTests = Antall tester
+of = av
+off = AV
+ok = OK
+oldDuplexMismatch = Advarsel: Gammel dupleksitetsfeil oppdaget:
+on = P\u00C5
+ooOrder = men pakker ankom i feil rekkef\u00f8lge
+options = Innstillinger
+osData = Operativsystem:
+otherClient = Tjeneren er for \u00f8yeblikket opptatt med en annen klient.
Testen din vil begynne innen
+otherTraffic = Informasjon: Annen trafikk overbelaster linken
+outboundTest = Tcpbw100 utg\u00e5ende test...
+outboundWrongMessage = K-T ytelsestest: mottok feil type melding
+packetQueuing = Pakkek\u00f8ing
+packetQueuingInfo = TCP (Transmission Control Protocol) er en p\u00e5litelig
nettverksprotokoll\n som overf\u00f8rer data mellom forskjellige maskiner.
Den oppdager og motvirker\n automatisk feil og pakketap. TCP bruker buffere
for \u00e5 oppn\u00e5 dette.\n I tillegg s\u00e5 har svitsjer og rutere
buffere for \u00e5 h\u00e5ndtere tilfeller\n hvor mange maskiner sender til
samme port, eller hvor hastigheter\n endres (for eksempel "Fast Ethernet"
eller et DSL-modem).\n \n NDT-tjeneren genererer og sender 10 sekunder med
data til klienten.\n I noen tilfeller genererer tjeneren data kjappere enn
den klarer \u00e5\n sende ut pakker til nettverket (for eksempel en tjener
med 2GHz CPU\n som sender til en klient koblet til via DSL). N\u00e5r dette
skjer, hender\n det at det er igjen pakker i pakkek\u00f8en n\u00e5r de 10
sekundene har passert.\n TCP vil automatisk fors\u00f8ke \u00e5 sende disse
pakkene, selv om tiden er ute,\n og klienten vil fortsette \u00e5 motta de.
Dette vil f\u00f8re til at klienttesten\n kan kj\u00f8re litt lenger enn
forventet.\n \n Dette hendte under kj\u00f8ringen av denne testen. Du trenger
ikke gj\u00f8re noe\n for \u00e5 fikse dette.
+packetSizePreserved = Pakkest\u00f8rrelse blir bevart fra ende til ende
+packetsize = pakkkest\u00f8rrelse
+pc = Personlig datamaskin
+pctOfTime = % av tiden
+performedTests = Tester \u00e5 utf\u00f8re
+pktsRetrans = pakker ble retransmittert
+possibleDuplexFullHalf = Alarm: Mulig dupleksitetsfeil oppdaget; svitsj=full
og maskin=halv
+possibleDuplexHalfFull = Alarm: Mulig dupleksitetsfeil oppdaget; svitsj=halv
og maskin=full
+possibleDuplexHalfFullWarning = Advarsel: Mulig dupleksitetsfeil oppdaget;
svitsj=halv og maskin=full
+preferIPv6 = bruk IPv6 hvis mulig
+printDetailedStats = Viser detaljer
+protocolError = Protokollfeil!
+qSeen = ytelsestest: Pakkek\u00f8ing oppdaget
+ready = Tcpbw100 klar
+receiveBufferShouldBe = Informasjon: Mottaksbufferen burde v\u00e6re
+receiving = Henter resultater...
+reportProblem = Meld fra om problemer
+resultsParseError = Feil under tolkingen av testresultater!
+resultsTimeout = Advarsel! Tidsavbrudd under henting av data, mulig
dupleksitetsfeil
+resultsWrongMessage = Testresultater: Mottok feil type melding
+rtt = rundreisetid
+rttFail = For lang rundreisetid til \u00e5 bestemme type link.
+runningInboundTest = Kj\u00f8rer 10 sekunders innkommende test
(tjener-til-klient [T-K]) . . . .
+runningOutboundTest = Kj\u00f8rer 10 sekunders utg\u00e5ende test
(klient-til-tjener [K-T]) . . . . . . .
+s2c = T-K
+s2cPacketQueuingDetected = [T-K]: Pakkek\u00f8ing oppdaget
+s2cThroughput = Ytelse tjener-klient
+s2cThroughputFailed = Ytelsestest fra tjener til klient FEILET!
+sackReceived = SACK-blokker ble mottatt.
+scalingFactors = Skaleringsfaktorer
+seconds = sekunder
+server = Tjener
+serverAcksReport = basert p\u00e5 ack fra tjeneren ansl\u00e5s linken til
+serverBusy = Tjener opptatt; For mange klienter i k\u00f8. Du kan pr\u00f8ve
senere
+serverBusy15s = Tjener opptatt; vennligst vent 15 sekunder mens forrige test
kj\u00f8res ferdig
+serverBusy30s = Tjener opptatt; vennligst vent 30 sekunder mens forrige test
kj\u00f8res ferdig
+serverBusy60s = Tjener opptatt; vennligst vent 60 sekunder mens forrige test
kj\u00f8res ferdig
+serverDataReports = Basert p\u00e5 data fra tjeneren ansl\u00e5s linken til
+serverFail = Tjenerfeil under mottak av data
+serverIpModified = Til orientering: Network Address Translation (NAT)
forandrer klientmaskinens IP-adresse
+serverIpPreserved = Tjenermaskinens IP-adresse blir bevart fra ende til ende
+serverNotRunning = Tjenerprosess kj\u00f8rer ikke; vennligst start
"web100srv" p\u00e5 tjeneren.
+serverSays = Tjeneren sier
+sfwFail = Enkel brannmurtest FEILET!
+sfwSocketFail = Enkel brannmurtest: Kan ikke opprette lytteport
+sfwTest = Enkel brannmurtest...
+sfwWrongMessage = Enkel brannmurtest: Mottok feil type melding
+showOptions = Vis innstillinger
+simpleFirewall = Enkel brannmur
+sleep10m = Venter 10 minutter...
+sleep12h = Venter 12 timer...
+sleep1d = Venter ett d\u00f8gn...
+sleep1m = Venter ett minutt...
+sleep2h = Venter to timer...
+sleep30m = Venter 30 minutter...
+sleep5m = Venter fem minutter...
+start = START
+startingTest = Starter test
+statistics = Statistikk
+stop = STOPP
+stopped = Testene ble stoppet!
+stopping = Stopper...
+systemFault = systemfeil
+test = Test
+testsuiteWrongMessage = Avtaler tester: Mottok feil type melding
+theSlowestLink = Den tregeste linken i stien mellom din maskin og tjeneren
er et
+theoreticalLimit = Teoretisk grense for nettet er
+thisConnIs = Denne forbindelsen er
+timesPktLoss = ganger p\u00e5 grunn av pakketap
+toMaximizeThroughput = kilobyte for \u00e5 maksimere ytelsen
+toRunTest = for \u00e5 teste
+troubleReportFrom = Feilrapport fra NDT p\u00e5
+unableToDetectBottleneck = Tjeneren greide ikke \u00e5 bestemme flaskehalsen
i stien
+unableToObtainIP = Kunne ikke f\u00e5 tak i den lokale IP-addressen
+unknownID = Ukjent test-ID
+unknownServer = Ukjent tjener
+unsupportedClient = Informasjon: Tjeneren st\u00f8tter ikke denne
kommandolinjeklienten
+usingIpv4 = -- Bruker IPv4-addresse
+usingIpv6 = -- Bruker IPv6-addresse
+vendor = Leverand\u00f8r
+version = Versjon
+versionWrongMessage = Avtaler NDT-versjon: Mottok feil type melding
+web100Details = Detaljerte opplysninger fra Web100
+web100KernelVar = Kjernevariabler fra WEB100
+web100Stats = Statistikk fra WEB100
+web100Var = Variabler fra Web100
+web100rtt = Web100 melder at rundreisetid
+web100tcpOpts = Web100 melder at valgbare felt i TCP som p\u00e5virker
ytelse er satt til:
+willImprove = vil forbedre ytelsen
+workstation = Arbeidsstasjon
+your = Din
+yourPcHas = Datamaskinen din har en buffer p\u00e5



Archive powered by MHonArc 2.6.16.

Top of Page