aboutsummaryrefslogtreecommitdiff
path: root/ShiftOS.WinForms
diff options
context:
space:
mode:
authorMichael <[email protected]>2017-06-17 14:45:42 -0400
committerMichael <[email protected]>2017-06-17 14:45:42 -0400
commite3f9a6028b3774f7376617502e7f6016dc50dd0e (patch)
tree195ad433cbb4519b433cf24156b761419f226fe5 /ShiftOS.WinForms
parent0365b33993812361936e81104f793f58794fde8f (diff)
downloadshiftos_thereturn-e3f9a6028b3774f7376617502e7f6016dc50dd0e.tar.gz
shiftos_thereturn-e3f9a6028b3774f7376617502e7f6016dc50dd0e.tar.bz2
shiftos_thereturn-e3f9a6028b3774f7376617502e7f6016dc50dd0e.zip
Localize a LOT of the UI
Diffstat (limited to 'ShiftOS.WinForms')
-rw-r--r--ShiftOS.WinForms/Applications/MindBlow.cs12
-rw-r--r--ShiftOS.WinForms/Applications/Pong.Designer.cs74
-rw-r--r--ShiftOS.WinForms/Applications/Pong.cs34
-rw-r--r--ShiftOS.WinForms/Applications/Pong.resx7
-rw-r--r--ShiftOS.WinForms/MainMenu/Loading.Designer.cs2
-rw-r--r--ShiftOS.WinForms/MainMenu/Loading.cs1
-rw-r--r--ShiftOS.WinForms/MainMenu/MainMenu.Designer.cs62
-rw-r--r--ShiftOS.WinForms/MainMenu/MainMenu.cs47
-rw-r--r--ShiftOS.WinForms/Resources/strings_en.txt354
9 files changed, 222 insertions, 371 deletions
diff --git a/ShiftOS.WinForms/Applications/MindBlow.cs b/ShiftOS.WinForms/Applications/MindBlow.cs
index 0f0df80..7cd2a8f 100644
--- a/ShiftOS.WinForms/Applications/MindBlow.cs
+++ b/ShiftOS.WinForms/Applications/MindBlow.cs
@@ -35,7 +35,17 @@ namespace ShiftOS.WinForms.Applications
public override long Length => box.Text.Length;
- public override long Position { get => Length; set => throw new NotImplementedException(); }
+ public override long Position
+ {
+ get
+ {
+ return Length;
+ }
+ set
+ {
+ //nothing
+ }
+ }
public override void Flush()
{
diff --git a/ShiftOS.WinForms/Applications/Pong.Designer.cs b/ShiftOS.WinForms/Applications/Pong.Designer.cs
index aee599b..fd82735 100644
--- a/ShiftOS.WinForms/Applications/Pong.Designer.cs
+++ b/ShiftOS.WinForms/Applications/Pong.Designer.cs
@@ -28,18 +28,17 @@
/// </summary>
private void InitializeComponent()
{
- System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Pong));
this.pnlcanvas = new System.Windows.Forms.Panel();
this.pnllevelwon = new System.Windows.Forms.Panel();
- this.lbltitle = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.panel1 = new System.Windows.Forms.Panel();
- this.btncashout = new System.Windows.Forms.Button();
this.button1 = new System.Windows.Forms.Button();
+ this.btncashout = new System.Windows.Forms.Button();
+ this.lbltitle = new System.Windows.Forms.Label();
this.pnlgamestart = new System.Windows.Forms.Panel();
this.label2 = new System.Windows.Forms.Label();
this.panel3 = new System.Windows.Forms.Panel();
- this.button2 = new System.Windows.Forms.Button();
+ this.btnplay = new System.Windows.Forms.Button();
this.label3 = new System.Windows.Forms.Label();
this.pnllevelwon.SuspendLayout();
this.panel1.SuspendLayout();
@@ -68,17 +67,6 @@
this.pnllevelwon.TabIndex = 0;
this.pnllevelwon.Visible = false;
//
- // lbltitle
- //
- this.lbltitle.Dock = System.Windows.Forms.DockStyle.Top;
- this.lbltitle.Location = new System.Drawing.Point(0, 0);
- this.lbltitle.Name = "lbltitle";
- this.lbltitle.Size = new System.Drawing.Size(301, 13);
- this.lbltitle.TabIndex = 0;
- this.lbltitle.Tag = "header2";
- this.lbltitle.Text = "You\'ve reached level 2!";
- this.lbltitle.TextAlign = System.Drawing.ContentAlignment.TopCenter;
- //
// label1
//
this.label1.Dock = System.Windows.Forms.DockStyle.Fill;
@@ -86,8 +74,7 @@
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(301, 139);
this.label1.TabIndex = 1;
- this.label1.Text = "You have survived this level of Pong. You now have a chance to cash out your Code" +
- "points or play on for more.";
+ this.label1.Text = "{PONG_BEATLEVELDESC}";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// panel1
@@ -100,25 +87,36 @@
this.panel1.Size = new System.Drawing.Size(301, 32);
this.panel1.TabIndex = 2;
//
+ // button1
+ //
+ this.button1.Location = new System.Drawing.Point(159, 6);
+ this.button1.Name = "button1";
+ this.button1.Size = new System.Drawing.Size(93, 23);
+ this.button1.TabIndex = 1;
+ this.button1.Text = "{PONG_PLAYON}";
+ this.button1.UseVisualStyleBackColor = true;
+ this.button1.Click += new System.EventHandler(this.button1_Click);
+ //
// btncashout
//
this.btncashout.Location = new System.Drawing.Point(48, 6);
this.btncashout.Name = "btncashout";
this.btncashout.Size = new System.Drawing.Size(93, 23);
this.btncashout.TabIndex = 0;
- this.btncashout.Text = "Cash out";
+ this.btncashout.Text = "{PONG_CASHOUT}";
this.btncashout.UseVisualStyleBackColor = true;
this.btncashout.Click += new System.EventHandler(this.btncashout_Click);
//
- // button1
+ // lbltitle
//
- this.button1.Location = new System.Drawing.Point(159, 6);
- this.button1.Name = "button1";
- this.button1.Size = new System.Drawing.Size(93, 23);
- this.button1.TabIndex = 1;
- this.button1.Text = "Play on";
- this.button1.UseVisualStyleBackColor = true;
- this.button1.Click += new System.EventHandler(this.button1_Click);
+ this.lbltitle.Dock = System.Windows.Forms.DockStyle.Top;
+ this.lbltitle.Location = new System.Drawing.Point(0, 0);
+ this.lbltitle.Name = "lbltitle";
+ this.lbltitle.Size = new System.Drawing.Size(301, 13);
+ this.lbltitle.TabIndex = 0;
+ this.lbltitle.Tag = "header2";
+ this.lbltitle.Text = "You\'ve reached level 2!";
+ this.lbltitle.TextAlign = System.Drawing.ContentAlignment.TopCenter;
//
// pnlgamestart
//
@@ -138,27 +136,27 @@
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(301, 206);
this.label2.TabIndex = 1;
- this.label2.Text = resources.GetString("label2.Text");
+ this.label2.Text = "{PONG_DESC}";
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// panel3
//
- this.panel3.Controls.Add(this.button2);
+ this.panel3.Controls.Add(this.btnplay);
this.panel3.Dock = System.Windows.Forms.DockStyle.Bottom;
this.panel3.Location = new System.Drawing.Point(0, 248);
this.panel3.Name = "panel3";
this.panel3.Size = new System.Drawing.Size(301, 32);
this.panel3.TabIndex = 2;
//
- // button2
+ // btnplay
//
- this.button2.Location = new System.Drawing.Point(100, 6);
- this.button2.Name = "button2";
- this.button2.Size = new System.Drawing.Size(116, 23);
- this.button2.TabIndex = 1;
- this.button2.Text = "Play some Pong!";
- this.button2.UseVisualStyleBackColor = true;
- this.button2.Click += new System.EventHandler(this.button2_Click);
+ this.btnplay.Location = new System.Drawing.Point(100, 6);
+ this.btnplay.Name = "btnplay";
+ this.btnplay.Size = new System.Drawing.Size(116, 23);
+ this.btnplay.TabIndex = 1;
+ this.btnplay.Text = "{PONG_PLAY}";
+ this.btnplay.UseVisualStyleBackColor = true;
+ this.btnplay.Click += new System.EventHandler(this.button2_Click);
//
// label3
//
@@ -168,7 +166,7 @@
this.label3.Size = new System.Drawing.Size(301, 42);
this.label3.TabIndex = 0;
this.label3.Tag = "header2";
- this.label3.Text = "Welcome to Pong.";
+ this.label3.Text = "{PONG_WELCOME}";
this.label3.TextAlign = System.Drawing.ContentAlignment.TopCenter;
//
// Pong
@@ -200,7 +198,7 @@
private System.Windows.Forms.Panel pnlgamestart;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Panel panel3;
- private System.Windows.Forms.Button button2;
+ private System.Windows.Forms.Button btnplay;
private System.Windows.Forms.Label label3;
}
}
diff --git a/ShiftOS.WinForms/Applications/Pong.cs b/ShiftOS.WinForms/Applications/Pong.cs
index c260ae3..d8f93f7 100644
--- a/ShiftOS.WinForms/Applications/Pong.cs
+++ b/ShiftOS.WinForms/Applications/Pong.cs
@@ -223,7 +223,7 @@ namespace ShiftOS.WinForms.Applications
pnlgamestart.Show();
pnlgamestart.BringToFront();
pnlgamestart.CenterParent();
- Infobox.Show("You lose.", "You lost the game! Guess you should've cashed out...");
+ Infobox.Show("{TITLE_PONG_YOULOSE}", "{PROMPT_PONGLOST}");
doAi = false;
doBallCalc = false;
}
@@ -237,7 +237,10 @@ namespace ShiftOS.WinForms.Applications
pnllevelwon.CenterParent();
pnllevelwon.Show();
pnllevelwon.BringToFront();
- lbltitle.Text = "You've reached level " + level + "!";
+ lbltitle.Text = Localization.Parse("{PONG_LEVELREACHED}", new Dictionary<string, string>
+ {
+ ["%level"] = level.ToString()
+ });
lbltitle.Height = (int)CreateGraphics().MeasureString(lbltitle.Text, lbltitle.Font).Height;
codepointsToEarn += CalculateAIBeatCP() * 2;
speedFactor += speedFactor / level;
@@ -251,8 +254,12 @@ namespace ShiftOS.WinForms.Applications
public void Win()
{
- header = "You beat the AI! " + CalculateAIBeatCP() + " Codepoints!.";
+ header = Localization.Parse("{PONG_BEATAI}", new Dictionary<string, string>
+ {
+ ["%amount"] = CalculateAIBeatCP().ToString()
+ });
InitializeCoordinates();
+ counterTimer.Stop();
new System.Threading.Thread(() =>
{
doBallCalc = false;
@@ -265,6 +272,10 @@ namespace ShiftOS.WinForms.Applications
doBallCalc = true;
header = "";
counter = "";
+ Desktop.InvokeOnWorkerThread(() =>
+ {
+ counterTimer.Start();
+ });
}).Start();
}
@@ -322,7 +333,10 @@ namespace ShiftOS.WinForms.Applications
//draw opponent
e.Graphics.FillRectangle(new SolidBrush(pnlcanvas.ForeColor), new RectangleF((float)(pnlcanvas.Width - (paddleWidth*2)), (float)(opponentYLocal - (float)(paddleHeight / 2)), (float)paddleWidth, (float)paddleHeight));
- string cp_text = Localization.Parse("{CODEPOINTS}: " + codepointsToEarn);
+ string cp_text = Localization.Parse("{PONG_STATUSCP}", new Dictionary<string, string>
+ {
+ ["%cp"] = codepointsToEarn.ToString()
+ });
var tSize = e.Graphics.MeasureString(cp_text, SkinEngine.LoadedSkin.Header3Font);
@@ -346,7 +360,11 @@ namespace ShiftOS.WinForms.Applications
);
e.Graphics.DrawString(header, SkinEngine.LoadedSkin.Header2Font, new SolidBrush(pnlcanvas.ForeColor), tLoc);
- string l = Localization.Parse("{LEVEL}: " + level + " - " + secondsleft + " {SECONDS_LEFT}");
+ string l = Localization.Parse("{PONG_STATUSLEVEL}", new Dictionary<string, string>
+ {
+ ["%level"] = level.ToString(),
+ ["%time"] = secondsleft.ToString()
+ });
tSize = e.Graphics.MeasureString(l, SkinEngine.LoadedSkin.Header3Font);
tLoc = new PointF((pnlcanvas.Width - (int)tSize.Width) / 2,
@@ -412,7 +430,11 @@ namespace ShiftOS.WinForms.Applications
SaveSystem.CurrentSave.Codepoints += (ulong)codepointsToEarn;
level = 1;
speedFactor = 0.0125;
- Infobox.Show("Codepoints transferred.", "Pong has transferred " + codepointsToEarn + " Codepoints to your system.");
+ Infobox.Show("{TITLE_CODEPOINTSTRANSFERRED}", Localization.Parse("{PROMPT_CODEPOINTSTRANSFERRED}", new Dictionary<string, string>
+ {
+ ["%transferrer"] = "Pong",
+ ["%amount"] = codepointsToEarn.ToString()
+ }));
codepointsToEarn = 0;
pnlgamestart.Show();
pnlgamestart.BringToFront();
diff --git a/ShiftOS.WinForms/Applications/Pong.resx b/ShiftOS.WinForms/Applications/Pong.resx
index 685deff..1af7de1 100644
--- a/ShiftOS.WinForms/Applications/Pong.resx
+++ b/ShiftOS.WinForms/Applications/Pong.resx
@@ -117,11 +117,4 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
- <data name="label2.Text" xml:space="preserve">
- <value>Pong is the modern-day recreation of the classic 70s game called, you guessed it, Pong.
-
-In Pong, you must try your best to keep the fast-moving ball from going past your side of the screen using your mouse to move your paddle in the way of the ball, while getting the ball to go past the opponent's paddle.
-
-Once you start Pong, you have 60 seconds to beat the opponent and survive as much as possible. The game will get faster as you play, and the more 60-second levels you play, the more Codepoints you'll earn. If you lose the level, you will start back at Level 1 with 0 Codepoints. At the end of the level, you may choose to cash out or play on.</value>
- </data>
</root> \ No newline at end of file
diff --git a/ShiftOS.WinForms/MainMenu/Loading.Designer.cs b/ShiftOS.WinForms/MainMenu/Loading.Designer.cs
index 95619d9..5cf42d6 100644
--- a/ShiftOS.WinForms/MainMenu/Loading.Designer.cs
+++ b/ShiftOS.WinForms/MainMenu/Loading.Designer.cs
@@ -40,7 +40,7 @@
this.label.Name = "label";
this.label.Size = new System.Drawing.Size(284, 262);
this.label.TabIndex = 0;
- this.label.Text = "Loading...";
+ this.label.Text = "{GEN_LOADING}";
this.label.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// Loading
diff --git a/ShiftOS.WinForms/MainMenu/Loading.cs b/ShiftOS.WinForms/MainMenu/Loading.cs
index 555f1d4..c1c0ba0 100644
--- a/ShiftOS.WinForms/MainMenu/Loading.cs
+++ b/ShiftOS.WinForms/MainMenu/Loading.cs
@@ -16,6 +16,7 @@ namespace ShiftOS.WinForms.MainMenu
public Loading()
{
InitializeComponent();
+ label.Text = Localization.Parse(label.Text);
}
private void Loading_FormShown(object sender, EventArgs e)
diff --git a/ShiftOS.WinForms/MainMenu/MainMenu.Designer.cs b/ShiftOS.WinForms/MainMenu/MainMenu.Designer.cs
index b716b4e..a9291d3 100644
--- a/ShiftOS.WinForms/MainMenu/MainMenu.Designer.cs
+++ b/ShiftOS.WinForms/MainMenu/MainMenu.Designer.cs
@@ -36,8 +36,6 @@
this.button5 = new System.Windows.Forms.Button();
this.lbticker = new System.Windows.Forms.Label();
this.pnloptions = new System.Windows.Forms.Panel();
- this.txtubase = new System.Windows.Forms.TextBox();
- this.label3 = new System.Windows.Forms.Label();
this.txtdsport = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label();
this.txtdsaddress = new System.Windows.Forms.TextBox();
@@ -81,7 +79,7 @@
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(181, 23);
this.button1.TabIndex = 0;
- this.button1.Text = "Campaign";
+ this.button1.Text = "{MAINMENU_CAMPAIGN}";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
@@ -92,7 +90,7 @@
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(181, 23);
this.button2.TabIndex = 1;
- this.button2.Text = "Sandbox";
+ this.button2.Text = "{MAINMENU_SANDBOX}";
this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.button2_Click);
//
@@ -103,7 +101,7 @@
this.button3.Name = "button3";
this.button3.Size = new System.Drawing.Size(181, 23);
this.button3.TabIndex = 2;
- this.button3.Text = "Settings";
+ this.button3.Text = "{GEN_SETTINGS}";
this.button3.UseVisualStyleBackColor = true;
this.button3.Click += new System.EventHandler(this.button3_Click);
//
@@ -114,7 +112,7 @@
this.button4.Name = "button4";
this.button4.Size = new System.Drawing.Size(181, 23);
this.button4.TabIndex = 3;
- this.button4.Text = "About";
+ this.button4.Text = "{GEN_ABOUT}";
this.button4.UseVisualStyleBackColor = true;
//
// button5
@@ -124,7 +122,7 @@
this.button5.Name = "button5";
this.button5.Size = new System.Drawing.Size(181, 23);
this.button5.TabIndex = 4;
- this.button5.Text = "Exit";
+ this.button5.Text = "{GEN_EXIT}";
this.button5.UseVisualStyleBackColor = true;
this.button5.Click += new System.EventHandler(this.button5_Click);
//
@@ -140,8 +138,6 @@
//
// pnloptions
//
- this.pnloptions.Controls.Add(this.txtubase);
- this.pnloptions.Controls.Add(this.label3);
this.pnloptions.Controls.Add(this.txtdsport);
this.pnloptions.Controls.Add(this.label2);
this.pnloptions.Controls.Add(this.txtdsaddress);
@@ -149,25 +145,9 @@
this.pnloptions.Controls.Add(this.flowLayoutPanel1);
this.pnloptions.Location = new System.Drawing.Point(49, 26);
this.pnloptions.Name = "pnloptions";
- this.pnloptions.Size = new System.Drawing.Size(432, 290);
+ this.pnloptions.Size = new System.Drawing.Size(432, 167);
this.pnloptions.TabIndex = 2;
//
- // txtubase
- //
- this.txtubase.Location = new System.Drawing.Point(146, 133);
- this.txtubase.Name = "txtubase";
- this.txtubase.Size = new System.Drawing.Size(225, 20);
- this.txtubase.TabIndex = 6;
- //
- // label3
- //
- this.label3.AutoSize = true;
- this.label3.Location = new System.Drawing.Point(22, 136);
- this.label3.Name = "label3";
- this.label3.Size = new System.Drawing.Size(106, 13);
- this.label3.TabIndex = 5;
- this.label3.Text = "Unite API base URL:";
- //
// txtdsport
//
this.txtdsport.Location = new System.Drawing.Point(146, 85);
@@ -180,9 +160,9 @@
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(22, 88);
this.label2.Name = "label2";
- this.label2.Size = new System.Drawing.Size(99, 13);
+ this.label2.Size = new System.Drawing.Size(125, 13);
this.label2.TabIndex = 3;
- this.label2.Text = "Digital Society Port:";
+ this.label2.Text = "{MAINMENU_DSPORT}";
//
// txtdsaddress
//
@@ -196,9 +176,9 @@
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(22, 57);
this.label1.Name = "label1";
- this.label1.Size = new System.Drawing.Size(118, 13);
+ this.label1.Size = new System.Drawing.Size(147, 13);
this.label1.TabIndex = 1;
- this.label1.Text = "Digital Society Address:";
+ this.label1.Text = "{MAINMENU_DSADDRESS}";
//
// flowLayoutPanel1
//
@@ -208,7 +188,7 @@
this.flowLayoutPanel1.Controls.Add(this.btnsave);
this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Bottom;
this.flowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.RightToLeft;
- this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 259);
+ this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 136);
this.flowLayoutPanel1.Name = "flowLayoutPanel1";
this.flowLayoutPanel1.Size = new System.Drawing.Size(432, 31);
this.flowLayoutPanel1.TabIndex = 0;
@@ -218,11 +198,11 @@
this.opt_btncancel.AutoSize = true;
this.opt_btncancel.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.opt_btncancel.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.opt_btncancel.Location = new System.Drawing.Point(377, 3);
+ this.opt_btncancel.Location = new System.Drawing.Point(331, 3);
this.opt_btncancel.Name = "opt_btncancel";
- this.opt_btncancel.Size = new System.Drawing.Size(52, 25);
+ this.opt_btncancel.Size = new System.Drawing.Size(98, 25);
this.opt_btncancel.TabIndex = 0;
- this.opt_btncancel.Text = "Cancel";
+ this.opt_btncancel.Text = "{GEN_CANCEL}";
this.opt_btncancel.UseVisualStyleBackColor = true;
this.opt_btncancel.Click += new System.EventHandler(this.opt_btncancel_Click);
//
@@ -231,11 +211,11 @@
this.btnsave.AutoSize = true;
this.btnsave.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.btnsave.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.btnsave.Location = new System.Drawing.Point(327, 3);
+ this.btnsave.Location = new System.Drawing.Point(241, 3);
this.btnsave.Name = "btnsave";
- this.btnsave.Size = new System.Drawing.Size(44, 25);
+ this.btnsave.Size = new System.Drawing.Size(84, 25);
this.btnsave.TabIndex = 1;
- this.btnsave.Text = "Save";
+ this.btnsave.Text = "{GEN_SAVE}";
this.btnsave.UseVisualStyleBackColor = true;
this.btnsave.Click += new System.EventHandler(this.btnsave_Click);
//
@@ -259,7 +239,7 @@
this.btnnewgame.Name = "btnnewgame";
this.btnnewgame.Size = new System.Drawing.Size(181, 23);
this.btnnewgame.TabIndex = 0;
- this.btnnewgame.Text = "New Game";
+ this.btnnewgame.Text = "{MAINMENU_NEWGAME}";
this.btnnewgame.UseVisualStyleBackColor = true;
this.btnnewgame.Click += new System.EventHandler(this.btnnewgame_Click);
//
@@ -270,7 +250,7 @@
this.btncontinue.Name = "btncontinue";
this.btncontinue.Size = new System.Drawing.Size(181, 23);
this.btncontinue.TabIndex = 1;
- this.btncontinue.Text = "Continue";
+ this.btncontinue.Text = "{GEN_CONTINUE}";
this.btncontinue.UseVisualStyleBackColor = true;
this.btncontinue.Click += new System.EventHandler(this.btncontinue_Click);
//
@@ -281,7 +261,7 @@
this.button10.Name = "button10";
this.button10.Size = new System.Drawing.Size(181, 23);
this.button10.TabIndex = 4;
- this.button10.Text = "Back";
+ this.button10.Text = "{GEN_BACK}";
this.button10.UseVisualStyleBackColor = true;
this.button10.Click += new System.EventHandler(this.button10_Click);
//
@@ -357,8 +337,6 @@
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
private System.Windows.Forms.Button opt_btncancel;
private System.Windows.Forms.Button btnsave;
- private System.Windows.Forms.TextBox txtubase;
- private System.Windows.Forms.Label label3;
private System.Windows.Forms.TextBox txtdsport;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.TextBox txtdsaddress;
diff --git a/ShiftOS.WinForms/MainMenu/MainMenu.cs b/ShiftOS.WinForms/MainMenu/MainMenu.cs
index 1936fec..7ace42a 100644
--- a/ShiftOS.WinForms/MainMenu/MainMenu.cs
+++ b/ShiftOS.WinForms/MainMenu/MainMenu.cs
@@ -116,29 +116,7 @@ namespace ShiftOS.WinForms.MainMenu
private string GetTickerMessage()
{
- switch (rnd.Next(0, 10))
- {
- case 0:
- return "Did you know that you can skin this very menu? Just goes to show how much you can shift it your way.";
- case 1:
- return "Want to pick up a few skins or mods from the community? Head on over to http://getshiftos.ml/Skins!";
- case 2:
- return "Sandbox mode is a special version of ShiftOS that allows you to use the operating system without having to deal with Codepoints, the Shiftorium or having to play through the storyline. Handy...";
- case 3:
- return "ArtPad not good enough? You can use an external image editor to create ShiftOS skin textures. Just save your files to the Shared Directory and they'll be imported into ShiftOS on the 1:/ drive.";
- case 4:
- return "Terminal too weird for ya? You can use the Format Editor to generate your own Terminal command parser. No coding knowledge needed!";
- case 5:
- return "Contests are a good way to earn heaps of Codepoints. Head on over to http://getshiftos.ml/Contests for info on current community contests.";
- case 6:
- return "There's no bugs in this game... But if you find some, please submit them to http://getshiftos.ml/Bugs.";
- case 7:
- return "SHIFTOS - PROPERTY OF MICHAEL VANOVERBEEK. FOR INTERNAL USE ONLY. Build number = sos_tr_133764 [Just kidding. ShiftOS is open-source. Find the code at http://github.com/shiftos-game/ShiftOS!]";
- case 8:
- return "Hold your Codepoints against the wall... when they take everything away. Hold your Codepoints against the wall...";
- default:
- return "Good God. We don't know what to put here.";
- }
+ return Localization.Parse("{MAINMENU_TIPTEXT_" + rnd.Next(10) + "}");
}
private void button1_Click(object sender, EventArgs e)
@@ -175,7 +153,6 @@ namespace ShiftOS.WinForms.MainMenu
{
var conf = ShiftOS.Objects.UserConfig.Get();
- txtubase.Text = conf.UniteUrl;
txtdsaddress.Text = conf.DigitalSocietyAddress;
txtdsport.Text = conf.DigitalSocietyPort.ToString();
@@ -201,32 +178,14 @@ namespace ShiftOS.WinForms.MainMenu
int p = 0;
- if(int.TryParse(txtdsport.Text, out p) == false)
+ if(int.TryParse(txtdsport.Text, out p) == false || p < 0 || p > 65535)
{
- Infobox.Show("Invalid port number", "The Digital Society Port must be a valid whole number between 0 and 65535.");
+ Infobox.Show("{TITLE_INVALIDPORT}", "{PROMPT_INVALIDPORT}");
return;
}
- else
- {
- if(p < 0 || p > 65535)
- {
- Infobox.Show("Invalid port number", "The Digital Society Port must be a valid whole number between 0 and 65535.");
- return;
- }
- }
conf.DigitalSocietyPort = p;
- string unite = txtubase.Text;
- if (unite.EndsWith("/"))
- {
- int len = unite.Length;
- int index = len - 1;
- int end = 1;
- unite = unite.Remove(index, end);
- }
- conf.UniteUrl = unite;
-
System.IO.File.WriteAllText("servers.json", Newtonsoft.Json.JsonConvert.SerializeObject(conf, Newtonsoft.Json.Formatting.Indented));
HideOptions();
diff --git a/ShiftOS.WinForms/Resources/strings_en.txt b/ShiftOS.WinForms/Resources/strings_en.txt
index f63f0e0..a3b407b 100644
--- a/ShiftOS.WinForms/Resources/strings_en.txt
+++ b/ShiftOS.WinForms/Resources/strings_en.txt
@@ -1,244 +1,134 @@
+/*
+ * ShiftOS English Language Pack
+ *
+ * This is the default language pack distributed within the game.
+ */
+
{
- "{SUBMIT}":"Submit",
+ //General strings
+ //These strings can be used anywhere in the UI where language context isn't necessary.
+ "{GEN_PROGRAMS}": "Programs",
+ "{GEN_COMMANDS}": "Commands",
+ "{GEN_OBJECTIVES}": "Objectives",
+ "{GEN_CURRENTPROCESSES}": "Current processes",
+ "{GEN_WELCOME}": "Welcome to ShiftOS.",
+ "{GEN_SYSTEMNAME}": "System name",
+ "{GEN_PASSWORD}": "Password",
+ "{GEN_LPROMPT}": "%sysname login: ",
+ "{GEN_SYSTEMSTATUS}": "System status",
+ "{GEN_USERS}": "Users",
+ "{GEN_CODEPOINTS}": "Codepoints",
+ "{GEN_LOADING}": "Loading...",
+ "{GEN_SAVE}": "Save",
+ "{GEN_CANCEL}": "Cancel",
+ "{GEN_CONTINUE}": "Continue",
+ "{GEN_BACK}": "Back",
+ "{GEN_YES}": "Yes",
+ "{GEN_NO}": "No",
+ "{GEN_OK}": "OK",
+ "{GEN_SETTINGS}": "Settings",
+ "{GEN_ABOUT}": "About",
+ "{GEN_EXIT}": "Exit",
-"{TERMINAL_TUTORIAL_1}":"Welcome to the ShiftOS terminal. This is where you will spend the bulk of your time within ShiftOS.
-
-A brief rundown of how to use the terminal is as follows. You can use the 'sos.help' command to show a list of all commands. Simply type it in and strike <enter> to view all commands.
-
-Commands can be sent arguments by specifying a key-value pair inside a {} block at the end of the command. For example:
-
-some.command{print:\"hello\"}
-math.add{op1:1,op2:2}
-set.value{key:\"somekey\", value:true}
-
-You have been given 50 Codepoints - use your knowledge to use them to buy the MUD Fundamentals Shiftorium Upgrade using the terminal.
-To buy MUD Fundamentals, type shiftorium.buy{upgrade:\"mud_fundamentals\"} This is also true for any other thing you want to buy from the shiftorium, just replace mud_fundementals with any other upgrade id.
-",
+ //General errors
+ //Syntax errors, command errors, you name it..
+ "{ERR_BADBOOL}": "The value you entered must be either true or false.",
+ "{ERR_BADPERCENT}": "The value you entered must be a value from 0 to 100.",
+ "{ERR_NOLANG}": "The language you entered does not exist!",
+ "{ERR_NOTENOUGHCODEPOINTS}": "You don't have enough Codepoints to do that.",
+ "{ERR_NOUPGRADE}": "We couldn't find that upgrade.",
+ "{ERR_GENERAL}": "An error has occurred performing this operation.",
+ "{ERR_EMPTYCATEGORY}": "The category you specified either has no items in it, or was not found.",
+ "{ERR_NOMOREUPGRADES}": "There are no more Shiftorium Upgrades to show!",
+ "{ERR_BADWINID}": "You must specify a value between 0 and %max.",
+ "{ERR_USERFOUND}": "That user already exists.",
+ "{ERR_NOUSER}": "That user was not found.",
+ "{ERR_REMOVEYOU}": "You can't remove your own user account.",
+ "{ERR_BADACL}": "You must specify a value between 0 (guest) and 3 (root) for a user permission.",
+ "{ERR_ACLHIGHERVALUE}": "You can't set a user's permissions to a value higher than your own.",
+ "{ERR_HIGHERPERMS}": "That user has more rights than you!",
+ "{ERR_PASSWD_MISMATCH}": "Passwords don't match!",
+ //Command results
+ "{RES_ACLUPDATED}": "User permissions updated.",
+ "{RES_LANGUAGE_CHANGED}": "System language changed successfully.",
+ "{RES_NOOBJECTIVES}": "No objectives to display! Check back for more.",
+ "{RES_UPGRADEINSTALLED}": "Upgrade installed!",
+ "{RES_WINDOWCLOSED}": "The window was closed.",
+ "{RES_CREATINGUSER}": "Creating new user with username %name.",
+ "{RES_REMOVINGUSER}": "Removing user with username %name from your system.",
+ "{RES_DENIED}": "Access denied.",
+ "{RES_GRANTED}": "Access granted.",
+ "{RES_PASSWD_SET}": "Password set successfully.",
- "{TERMINAL_TUTORIAL_2}":"You successfully passed the test. ShiftOS will now start installing it's base functionality.",
- "{ABOUT}":"About",
- "{HIGH_SCORES}":"High scores",
- "{PONG_VIEW_HIGHSCORES}":"See the high scores",
- "{PONG_HIGHSCORE_EXP}":"Want to see what other users have gotten?",
- "{START_SYSTEM_SCAN}":"Start system-wide scan",
- "{SCAN_HOME}":"Scan 0:/home",
- "{SCAN_SYSTEM}":"Scan 0:/system",
- "{RESULTS}":"Results",
- "{VIRUSSCANNER_ABOUT}":"Welcome to the ShiftOS virus scanner.
-
-The ShiftOS virus scanner is a utility that allows you to scan any file on your system and see if it is a virus. If a virus is detected, you have the option to delete it after the scan by clicking 'Remove'.
+ //Shiftorium messages.
+ "{SHFM_UPGRADE}": "%id - %cost Codepoints",
+ "{SHFM_CATEGORY}": " - %name: %available upgrades left.",
+ "{SHFM_QUERYERROR}": "Shiftorium Query Error",
+ "{SHFM_NOUPGRADES}": "No upgrades!",
-If a system file is deleted by the virus scanner, it will be replaced.",
- "{PLAY}":"Play",
- "{APPLICATIONS}":"Applications",
- "{TERMINAL}":"Terminal",
- "{PONG}":"Pong",
- "{CODEPOINTS}":"Codepoints",
- "{SHIFTORIUM}":"Shiftorium",
- "{HACK}":"Hack",
- "{SHIFTER}":"Shifter",
- "{MUD_SHORT}":"MUD",
- "{MUD}":"Multi-user domain",
- "{DESKTOP}":"Desktop",
- "{WINDOW}":"Window",
- "{WINDOW_MANAGER}":"Window manager",
- "{UPGRADE}":"Upgrade",
- "{UPGRADES}":"Upgrades",
- "{APPLICATION}":"Application",
- "{SCRIPT}":"Script",
- "{ERROR}":"Error",
- "{SCRIPTS}":"Scripts",
- "{NULL}":"null",
- "{ID}":"ID Num",
- "{SYSTEM_INITIATED}":"System initiated",
- "{PASSWORD}":"Password",
- "{CRACK}":"Crack",
- "{ARTPAD_UNDO_ERROR}":"Artpad - Undo error",
- "{ARTPAD_NEXT_STEP_WILL_KILL_CANVAS_JUST_FLIPPING_CLICK_NEW}":"You cannot undo the previous action as it would delete the canvas. If you'd like to clear the canvas, click New.",
- "{ARTPAD_REDO_ERROR}":"Artpad - Redo error",
- "{ARTPAD_NOTHING_TO_REDO}": "Artpad has nothing to redo! Remember that when you undo and then draw on the canvas, all redo history is wiped.",
- "{ARTPAD_MAGNIFIER_ERROR}": "Artpad - Magnifier error",
- "{ARTPAD_MAGNIFICATION_ERROR_EXP_2}": "Artpad cannot zoom out any further as the canvas would disappear!",
- "{ARTPAD_MAGNIFICATION_ERROR_EXP}": "Artpad cannot zoom any further into the canvas. Well, it can, it just doesn't want to.",
- "{SHUTDOWN}":"Shutdown",
- "{CONNECTING_TO_MUD}":"Connecting to the multi-user domain...",
- "{READING_FS}":"Reading filesystem...",
- "{INIT_KERNEL}":"Initiating kernel...",
- "{START_DESKTOP}":"Starting desktop session...",
- "{DONE}": "done",
- "{READING_CONFIG}":"Reading configuration...",
- "{ID_TAKEN}":"ID has been taken! Use chat.join to join this chat.",
- "{CHAT_NOT_FOUND_OR_TOO_MANY_MEMBERS}":"This chat either doesn't exist or has too many users in it.",
- "{CHAT_NOT_FOUND_OR_NOT_IN_CHAT}":"You are not currently in this chat.",
- "{CHAT_PLEASE_PROVIDE_VALID_CHANNEL_DATA}":"You did not specify valid chat metadata! Please do chat.create{id:\"your_id\", name:\"Your chat\", topic:\"Your chat's topic\"}.",
- "{UPGRADE_PROGRESS}":"Upgrade progress",
- "{WIN_PROVIDEID}":"Please provide a valid Window ID from win.list.",
- "{WIN_CANTCLOSETERMINAL}":"You cannot close this terminal.",
- "{WELCOME_TO_SHIFTORIUM}":"Welcome to the Shiftorium",
- "{SUCCESSFULLY_CREATED_CHAT}":"Successfully created chat. Use chat.join{id:\"chat_id_here\"} to join it.",
- "{CHAT_HAS_JOINED}":"has joined the chat.",
- "{HAS_LEFT_CHAT}":"has left the chat.",
- "{SHIFTORIUM_EXP}":"The Shiftorium is your one-stop-shop for ShiftOS system enhancements, upgrades and applications.
-
- You can buy upgrades in the Shiftorium using a currency called Codepoints, which you can earn by doing various tasks within ShiftOS, such as playing Pong, stealing them from other users, and finding ways to make your own. It's up to you how you get your Codepoints.
-
- You can then use them to buy new applications, features, enhancements and upgrades for ShiftOS that make the user experience a lot better. Be careful though, buying too many system enhancements without buying new ways of earning Codepoints first can leave you in the dust and unable to upgrade the system.
-
- Anyways, feel free to browse from our wonderful selection! You can see a list of available upgrades on the left, as well as a progress bar showing how much you've upgraded the system compared to how much you still can.",
- "{PONG_WELCOME}":"Welcome to Pong.",
- "{PONG_DESC}":"Pong is an arcade game where your goal is to get the ball past the opponent paddle while keeping it from getting past yours.
-
- In ShiftOS, Pong is modified - you only have one chance, the game is divided into 60 second levels, and you can earn Codepoints by surviving a level, and beating the opponent.",
- "{NO_APP_TO_OPEN}":"No app found for this file!",
- "{NO_APP_TO_OPEN_EXP}":"File Skimmer could not find an application that can open this file.",
- "{CLIENT_DIAGNOSTICS}":"Client diagnostics",
- "{GUID}":"GUID",
- "{CLIENT_DATA}":"Client data",
- "{CLOSE}":"Close",
- "{LOAD_DEFAULT}":"Load default",
- "{IMPORT}":"Import",
- "{EXPORT}":"Export",
- "{APPLY}":"Apply",
- "{TEMPLATE}":"Template",
- "{H_VEL}":"Horizontal velocity",
- "{V_VEL}":"Vertical velocity",
- "{LEVEL}":"Level",
- "{UPGRADE_DEVELOPMENT}":"Development Upgrade",
- "{UPGRADE_DEVELOPMENT_DESCRIPTION}":"Development Upgrade Don't Buy",
- "{SECONDS_LEFT}":"seconds left",
- "{CASH_OUT_WITH_CODEPOINTS}":"Cash out with your codepoints",
- "{PONG_PLAY_ON_FOR_MORE}":"Play on for more!",
- "{YOU_REACHED_LEVEL}":"You've reached level",
- "{PONG_BEAT_AI_REWARD}":"Reward for beating AI (CP)",
- "{PONG_BEAT_AI_REWARD_SECONDARY}":"Codepoints for beating AI:",
- "{CODEPOINTS_FOR_BEATING_LEVEL}":"Codepoints for beating level",
- "{YOU_WON}":"You won",
- "{YOU_LOSE}":"You lose",
- "{TRY_AGAIN}":"Try again",
- "{CODEPOINTS_SHORT}":"CP",
- "{TERMINAL_FORMATTING_DRIVE}":"Formatting drive... %percent %",
- "{INSTALLING_SHIFTOS}":"Installing ShiftOS on %domain.",
- "{YOU_MISSED_OUT_ON}":"You missed out on",
- "{BUT_YOU_GAINED}":"But you gained",
- "{PONG_PLAYON_DESC}":"Or do you want to try your luck on the next level to increase your reward?",
- "{PONG_CASHOUT_DESC}":"Would you like the end the game now and cash out with your reward?",
- "{INITIAL_H_VEL}":"Initial H Vel",
- "{INITIAL_V_VEL}":"Initial V Vel",
- "{INC_H_VEL}":"Increment H Vel",
- "{INC_V_VEL}":"Increment V Vel",
- "{MULTIPLAYER_ONLY}":"Program not compatible with single-user domain.",
- "{MULTIPLAYER_ONLY_EXP}":"This program cannot run within a single-user domain. You must be within a multi-user domain to use this program.",
- "{SHIFTER_SKIN_APPLIED}":"Shifter - Settings applied!",
- "{YOU_HAVE_EARNED}":"You have earned",
- "{CREATING_PATH}":"Creating directory: %path",
- "{CREATING_FILE}":"Creating file: %path",
- "{SHIFTORIUM_HELP_DESCRIPTION}": "Help Descriptions",
- "{CREATING_USER}":"Creating user %username",
- "{SEPERATOR}":" - ",
- "{NAMESPACE}":"Namespace ",
- "{COMMAND}": "| Command ",
- "{SHIFTOS_HAS_BEEN_INSTALLED}":"ShiftOS has been installed on %domain.",
- "{WARN}": "WARN: ",
- "{ERROR}": "!ERROR! ",
- "{OBSOLETE_CHEATS_FREECP}": "The %ns.%cmd command is obsolete and has been replaced with %newcommand",
- "{REBOOTING_SYSTEM}":"Rebooting system in %i seconds...",
- "{ERROR_ARGUMENT_REQUIRED}": "You must supply an %argument value",
- "{ERROR_ARGUMENT_REQUIRED_NO_USAGE}": "You are missing some arguments.",
- "{GENERATING_PATHS}":"Generating paths...",
- "{ERROR_COMMAND_WRONG}": "Check your syntax and try again",
- "{LOGIN_EXP}": "Login as the admin of the multi user domain.",
-
- "{USAGE}": "Usage: ",
-
- "{NAMESPACE_SOS_DESCRIPTION}":"The ShiftOS Namespace",
- "{COMMAND_HELP_USAGE}":"%ns.%cmd{[topic:]}",
- "{COMMAND_HELP_DESCRIPTION}":"Lists all commands",
- "{COMMAND_SOS_SHUTDOWN_USAGE}":"%ns.%cmd",
- "{COMMAND_SOS_SHUTDOWN_DESCRIPTION}":"Saves and shuts down ShiftOS",
- "{COMMAND_SOS_STATUS_USAGE}":"%ns.%cmd",
- "{COMMAND_SOS_STATUS_DESCRIPTION}":"Displays how many codepoints you have",
- "{COMMAND_SOS_LANG_USAGE}":"%ns.%cmd{language:\"deutsch\"}",
- "{COMMAND_SOS_LANG_DESCRIPTION}":"Change the language.",
- "{COMMAND_DEV_CRASH_USAGE}":"%ns.%cmd",
- "{COMMAND_DEV_CRASH_DESCRIPTION}":"Shuts down ShiftOS forcefully",
- "{COMMAND_DEV_UNLOCKEVERYTHING_USAGE}":"%ns.%cmd",
- "{COMMAND_DEV_UNLOCKEVERYTHING_DESCRIPTION}":"Unlocks all shiftorium upgrades",
- "{COMMAND_DEV_FREECP_USAGE}":"%ns.%cmd{amount:1000}",
- "{COMMAND_DEV_FREECP_DESCRIPTION}":"Gives [amount] codepoints",
- "{COMMAND_TRM_CLEAR_USAGE}":"%ns.%cmd",
- "{COMMAND_TRM_CLEAR_DESCRIPTION}":"Clears the terminal",
- "{COMMAND_SHIFTORIUM_BUY_USAGE}":"%ns.%cmd{upgrade:}",
- "{COMMAND_SHIFTORIUM_BUY_DESCRIPTION}":"Buys [upgrade]",
- "{COMMAND_SHIFTORIUM_LIST_USAGE}":"%ns.%cmd",
- "{COMMAND_SHIFTORIUM_LIST_DESCRIPTION}":"Lists the upgrades that you can get",
- "{COMMAND_SHIFTORIUM_INFO_USAGE}":"%ns.%cmd{upgrade:}",
- "{COMMAND_SHIFTORIUM_INFO_DESCRIPTION}":"Gives a description about an upgrade",
- "{COMMAND_DEV_MULTARG_USAGE}":"%ns.%cmd{id:,name:,type:}",
- "{COMMAND_DEV_MULTARG_DESCRIPTION}":"A command which requiers multiple arguments",
+ //Command data strings
+ "{COM_STATUS}": "ShiftOS build %version\r\n\r\nCodepoints: %cp \r\n Upgrades: %installed installed, %available available\r\n\r\n",
+ "{COM_UPGRADEINFO}": "%category: %name - %cost Codepoints.\r\n\r\n%description\r\n\r\nUpgrade ID: %id",
- "{ERR_COMMAND_NOT_FOUND}":"Command not found.",
- "{ERROR_EXCEPTION_THROWN_IN_METHOD}":"An error occurred within the command. Error details:",
- "{MUD_ERROR}":"MUD error",
-
- "{PROLOGUE_NO_USER_DETECTED}":"No user detected. Please enter a username.",
- "{PROLOGUE_BADUSER}":"Invalid username detected.",
- "{PROLOGUE_NOSPACES}":"Usernames must not contain spaces.",
- "{PROLOGUE_PLEASE_ENTER_USERNAME}":"Please enter a valid username. Blank usernames are not permitted.",
+ //Terminal Command Descriptions
+ //These strings show up when running the "commands" command in your Terminal.
+ "{DESC_CLEAR}": "Clears the screen of the current Terminal.",
+ "{DESC_SETSFXENABLED}": "Sets whether or not system sounds are enabled.",
+ "{DESC_SETMUSICENABLED}": "Sets whether or not music is enabled in ShiftOS.",
+ "{DESC_SETVOLUME}": "Sets the volume of sounds and music if they're enabled.",
+ "{DESC_SHUTDOWN}": "Safely shuts down your computer.",
+ "{DESC_LANG}": "Change the system language of ShiftOS.",
+ "{DESC_COMMANDS}": "Shows a list of Terminal commands inside ShiftOS.",
+ "{DESC_HELP}": "Type this command to get general help with using ShiftOS.",
+ "{DESC_SAVE}": "Saves the in-memory configuration of ShiftOS.",
+ "{DESC_STATUS}": "Shows basic status information such as how many Codepoints you have and your current objective.",
+ "{DESC_BUY}": "Buys the specified Shiftorium upgrade.",
+ "{DESC_BULKBUY}": "Buys the specified Shiftorium upgrades in bulk.",
+ "{DESC_UPGRADEINFO}": "Shows information about the specified Shiftorium upgrade.",
+ "{DESC_UPGRADECATEGORIES}": "Shows all the available Shiftorium categories and how many upgrades are available in them.",
+ "{DESC_UPGRADES}": "Shows a list of available Shiftorium upgrades.",
+ "{DESC_PROCESSES}": "Shows a list of currently running app processes.",
+ "{DESC_PROGRAMS}": "Shows a list of programs you can run.",
+ "{DESC_CLOSE}": "Closes the specified application window.",
+ "{DESC_ADDUSER}": "Add a user to your system.",
+ "{DESC_REMOVEUSER}": "Remove a user from your computer.",
+ "{DESC_SETUSERPERMISSIONS}": "Set the permissions of a user.",
+ "{DESC_USERS}": "Lists all users on your computer.",
+ "{DESC_SU}": "Change your identity to another user's.",
+ "{DESC_PASSWD}": "Change your user account password.",
- "{SHIFTORIUM_NOTENOUGHCP}":"Not enough codepoints: ",
- "{SHIFTORIUM_TRANSFERRED_FROM}":"Received Codepoints from",
- "{SHIFTORIUM_TRANSFERRED_TO}":"Transferred Codepoints to",
+ //Window titles.
+ "{TITLE_PONG_YOULOSE}": "You lose",
+ "{TITLE_CODEPOINTSTRANSFERRED}": "Codepoints transferred.",
+ "{TITLE_INVALIDPORT}": "Invalid port number.",
- "{SE_SAVING}":"Saving game to disk",
- "{SE_TIPOFADVICE}":"Tip of advice: ShiftOS will always save your game after big events or when you shut down the operating system. You can also invoke a save yourself using 'sos.save'.",
+ //Infobox prompt messages
+ "{PROMPT_PONGLOST}": "You lost this game of Pong. Guess you should've cashed out...",
+ "{PROMPT_CODEPOINTSTRANSFERRED}": "%transferrer has transferred %amount Codepoints to your system.",
+ "{PROMPT_INVALIDPORT}": "The Digital Society Port must be a valid whole number between 0 and 65535.",
- "{STORY_WELCOME}":"Welcome to ShiftOS",
- "{STORY_SENTIENCEUNKNOWN}":"Your sentience is currently unknown. Please strike the Enter key to prove you are alive.",
+ //Pong
+ "{PONG_LEVELREACHED}": "You've reached level %level!",
+ "{PONG_BEATAI}": "You've beaten the opponent! %amount Codepoints!",
+ "{PONG_STATUSCP}": "Codepoints: %cp",
+ "{PONG_STATUSLEVEL}": "Level %level. %time seconds to go!",
+ "{PONG_PLAY}": "Play some Pong!",
+ "{PONG_DESC}": "Pong is the modern-day recreation of the classic 70s game called, you guessed it, Pong.\r\n\r\nIn Pong, you must try your best to keep the fast-moving ball from going past your side of the screen using your mouse to move your paddle in the way of the ball, while getting the ball to go past the opponent's paddle.\r\n\r\nOnce you start Pong, you have 60 seconds to beat the opponent and survive as much as possible. The game will get faster as you play, and the more 60-second levels you play, the more Codepoints you'll earn. If you lose the level, you will start back at Level 1 with 0 Codepoints. At the end of the level, you may choose to cash out or play on.",
+ "{PONG_WELCOME}": "Welcome to Pong.",
+ "{PONG_BEATLEVELDESC}": "You have survived this level of Pong. You now have a chance to cash out your Codepoints or play on for more.",
+ "{PONG_PLAYON}": "Play on",
+ "{PONG_CASHOUT}": "Cash out",
- "{SENTIENCE_BASIC}":"Sentience: Basic - User can respond to basic instructions.",
- "{SENTIENCE_BASICPLUS}":"Sentience: Basic+ - User can invoke commands within the ecosystem.",
- "{SENTIENCE_POSSIBLEHUMAN}":"Sentience: Possible human - user can perform actions based on a choice.",
- "{SENTIENCE_POSSIBLEHUMANPLUS}":"Sentience: Possible human+ - user can infer, and can pass arguments.",
- "{SENTIENCE_HUMAN}":"Sentience: Human. Thanks for your patience.",
- "{SENTIENCE_INVALIDPASSWORD}":"The password you entered is invalid.",
-
- "{ARGS_PASSWORD}":"password",
+ //Main menu tip messages
- "{SHIFTOS_PLUS_MOTTO}":"ShiftOS, Shift it YOUR way.",
- "{SHIFTOS_VERSION_INFO}":"ShiftOS Version: ",
- "{USER_NAME}":"Username",
- "{DISCOURSE_INTEGRATION}":"Discourse Integration",
- "{SYSTEM_NAME}":"System Name",
- "{USER_INFO}":"User Information",
- "{SELECT_LANG}":"Select language",
- "{WELCOME_TO_SHIFTOS}":"Welcome to ShiftOS Alpha!",
- "{CREATE}":"Create",
- "{INSTALL}":"Install",
- "{ALIAS}":"Alias:",
- "{OBSOLETE_SYS_SHUTDOWN}":"sys.shutdown is obsolete",
- "{PY_EXCEPTION}":"There was an error running python code.",
- "{LUA_ERROR}":"There was an error running lua code.",
- "{LANGUAGE_CHANGED}":"The language has been changed. Please restart ShiftOS for changes to take full effect.",
+ //Main menu - Settings
+ "{MAINMENU_DSADDRESS}": "Digital Society address: ",
+ "{MAINMENU_DSPORT": "Digital Society port: ",
- "{TERMINAL_NAME}":"Terminal",
- "{ARTPAD_NAME}":"Artpad",
- "{PONG_NAME}":"Pong",
- "{WAV_PLAYER_NAME}":"WAV Player",
- "{SHIFTORIUM_NAME}":"Shiftorium",
- "{TEXTPAD_NAME}":"TextPad",
- "{VIRUS_SCANNER_NAME}":"Virus Scanner",
- "{SKIN_LOADER_NAME}":"Skin Loader",
- "{SHIFTER_NAME}":"Shifter",
- "{NAME_CHANGER_NAME}":"Name Changer",
- "{MUD_PASSWORD_CRACKER_NAME}":"Multi-User Domain Password Cracker v1.0",
- "{MUD_CONTROL_CENTRE_NAME}":"MUD Control Centre",
- "{MUD_AUTHENTICATOR_NAME}":"Multi-User Domain Admin Panel",
- "{GRAPHIC_PICKER_NAME}":"Graphic Picker",
- "{FILE_SKIMMER_NAME}":"File Skimmer",
- "{FILE_DIALOG_NAME}":"File Dialog",
- "{DIALOG_NAME}":"Dialog",
- "{COLOR_PICKER_NAME}":"Color Picker",
- "{CHAT_NAME}":"Chat",
- "{NOTIFICATIONS}":"Notifications",
-}
+ //Main Menu - General text
+ "{MAINMENU_TITLE}": "Main menu",
+ "{MAINMENU_CAMPAIGN}": "Campaign",
+ "{MAINMENU_SANDBOX}": "Sandbox",
+ "{MAINMENU_NEWGAME}": "New game",
+} \ No newline at end of file