# HG changeset patch # User IBBoard # Date 1293803598 0 # Node ID e40d892a22985c49867b3b6afadfb5f471c49bf5 # Parent 58779fcd01660cc3b012a5e4174bc3a71fa2dbb4 Fixes #308: Make GTK# UI translatable * Move all remaining buttons to translatable buttons * Make the About dialog translatable (where appropriate) * Move to UTF-8 encoding in the XML to correctly handle copyright symbol * Switch About dialog to using Close button as per other apps diff -r 58779fcd0166 -r e40d892a2298 FrmAbout.cs --- a/FrmAbout.cs Fri Dec 31 12:01:18 2010 +0000 +++ b/FrmAbout.cs Fri Dec 31 13:53:18 2010 +0000 @@ -25,12 +25,12 @@ private FrmAbout() { this.Build(); - ControlTranslator.TranslateWidget(this); + Translate(); } - protected virtual void OkayClicked(object sender, System.EventArgs e) + protected virtual void CloseClicked(object sender, System.EventArgs e) { - Respond(ResponseType.Ok); + Respond(ResponseType.Close); } } } diff -r 58779fcd0166 -r e40d892a2298 gtk-gui/IBBoard.WarFoundry.GUI.GTK.FrmAbout.cs --- a/gtk-gui/IBBoard.WarFoundry.GUI.GTK.FrmAbout.cs Fri Dec 31 12:01:18 2010 +0000 +++ b/gtk-gui/IBBoard.WarFoundry.GUI.GTK.FrmAbout.cs Fri Dec 31 13:53:18 2010 +0000 @@ -4,12 +4,12 @@ { public partial class FrmAbout { - private global::Gtk.Image image1; + private global::Gtk.Image logoImage; private global::Gtk.Label label1; - private global::Gtk.Label label4; - private global::Gtk.Label label2; - private global::Gtk.Label label3; - private global::Gtk.Button buttonOk; + private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblWarFoundryDesc; + private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblWarFoundryCopyright; + private global::Gtk.Label lblWarFoundryLink; + private global::IBBoard.GtkSharp.Translatable.TranslatableButton bttnClose; protected virtual void Build() { @@ -26,11 +26,11 @@ w1.Name = "dialog1_VBox"; w1.BorderWidth = ((uint)(2)); // Container child dialog1_VBox.Gtk.Box+BoxChild - this.image1 = new global::Gtk.Image(); - this.image1.Name = "image1"; - this.image1.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("IBBoard.WarFoundry.GUI.GTK.App-lrg.png"); - w1.Add(this.image1); - global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(w1[this.image1])); + this.logoImage = new global::Gtk.Image(); + this.logoImage.Name = "logoImage"; + this.logoImage.Pixbuf = global::Gdk.Pixbuf.LoadFromResource("IBBoard.WarFoundry.GUI.GTK.App-lrg.png"); + w1.Add(this.logoImage); + global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(w1[this.logoImage])); w2.Position = 0; w2.Expand = false; w2.Fill = false; @@ -45,32 +45,32 @@ w3.Expand = false; w3.Fill = false; // Container child dialog1_VBox.Gtk.Box+BoxChild - this.label4 = new global::Gtk.Label(); - this.label4.Name = "label4"; - this.label4.LabelProp = global::Mono.Unix.Catalog.GetString("WarFoundry is an open-source army creation tool that lets you create rosters for multiple game systems."); - this.label4.Wrap = true; - this.label4.Justify = ((global::Gtk.Justification)(2)); - w1.Add(this.label4); - global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(w1[this.label4])); + this.lblWarFoundryDesc = new global::IBBoard.GtkSharp.Translatable.TranslatableLabel(); + this.lblWarFoundryDesc.Name = "lblWarFoundryDesc"; + this.lblWarFoundryDesc.LabelProp = global::Mono.Unix.Catalog.GetString("WarFoundry is an open-source army creation tool that lets you create rosters for multiple game systems."); + this.lblWarFoundryDesc.Wrap = true; + this.lblWarFoundryDesc.Justify = ((global::Gtk.Justification)(2)); + w1.Add(this.lblWarFoundryDesc); + global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(w1[this.lblWarFoundryDesc])); w4.Position = 2; w4.Expand = false; w4.Fill = false; // Container child dialog1_VBox.Gtk.Box+BoxChild - this.label2 = new global::Gtk.Label(); - this.label2.Name = "label2"; - this.label2.LabelProp = global::Mono.Unix.Catalog.GetString("© 2007-2010, IBBoard and others"); - w1.Add(this.label2); - global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(w1[this.label2])); + this.lblWarFoundryCopyright = new global::IBBoard.GtkSharp.Translatable.TranslatableLabel(); + this.lblWarFoundryCopyright.Name = "lblWarFoundryCopyright"; + this.lblWarFoundryCopyright.LabelProp = global::Mono.Unix.Catalog.GetString("© 2007-2010, IBBoard and others"); + w1.Add(this.lblWarFoundryCopyright); + global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(w1[this.lblWarFoundryCopyright])); w5.Position = 3; w5.Expand = false; w5.Fill = false; // Container child dialog1_VBox.Gtk.Box+BoxChild - this.label3 = new global::Gtk.Label(); - this.label3.Name = "label3"; - this.label3.LabelProp = global::Mono.Unix.Catalog.GetString("http://warfoundry.co.uk"); - this.label3.UseMarkup = true; - w1.Add(this.label3); - global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(w1[this.label3])); + this.lblWarFoundryLink = new global::Gtk.Label(); + this.lblWarFoundryLink.Name = "lblWarFoundryLink"; + this.lblWarFoundryLink.LabelProp = global::Mono.Unix.Catalog.GetString("http://warfoundry.co.uk"); + this.lblWarFoundryLink.UseMarkup = true; + w1.Add(this.lblWarFoundryLink); + global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(w1[this.lblWarFoundryLink])); w6.Position = 4; w6.Expand = false; w6.Fill = false; @@ -81,15 +81,15 @@ w7.BorderWidth = ((uint)(5)); w7.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild - this.buttonOk = new global::Gtk.Button(); - this.buttonOk.CanDefault = true; - this.buttonOk.CanFocus = true; - this.buttonOk.Name = "buttonOk"; - this.buttonOk.UseStock = true; - this.buttonOk.UseUnderline = true; - this.buttonOk.Label = "gtk-ok"; - this.AddActionWidget(this.buttonOk, -5); - global::Gtk.ButtonBox.ButtonBoxChild w8 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w7[this.buttonOk])); + this.bttnClose = new global::IBBoard.GtkSharp.Translatable.TranslatableButton(); + this.bttnClose.CanDefault = true; + this.bttnClose.CanFocus = true; + this.bttnClose.Name = "bttnClose"; + this.bttnClose.UseStock = true; + this.bttnClose.UseUnderline = true; + this.bttnClose.Label = "gtk-close"; + this.AddActionWidget(this.bttnClose, -7); + global::Gtk.ButtonBox.ButtonBoxChild w8 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w7[this.bttnClose])); w8.Expand = false; w8.Fill = false; if ((this.Child != null)) @@ -99,7 +99,6 @@ this.DefaultWidth = 305; this.DefaultHeight = 300; this.Show(); - this.buttonOk.Activated += new global::System.EventHandler(this.OkayClicked); } } } diff -r 58779fcd0166 -r e40d892a2298 gtk-gui/IBBoard.WarFoundry.GUI.GTK.FrmAddEquipment.cs --- a/gtk-gui/IBBoard.WarFoundry.GUI.GTK.FrmAddEquipment.cs Fri Dec 31 12:01:18 2010 +0000 +++ b/gtk-gui/IBBoard.WarFoundry.GUI.GTK.FrmAddEquipment.cs Fri Dec 31 13:53:18 2010 +0000 @@ -18,8 +18,8 @@ private global::Gtk.RadioButton rbEquipPercent; private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblEquipAmount; private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblEquipment; - private global::Gtk.Button buttonCancel; - private global::Gtk.Button buttonOk; + private global::IBBoard.GtkSharp.Translatable.TranslatableButton buttonCancel; + private global::IBBoard.GtkSharp.Translatable.TranslatableButton buttonOk; protected virtual void Build() { @@ -195,7 +195,7 @@ w16.BorderWidth = ((uint)(5)); w16.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild - this.buttonCancel = new global::Gtk.Button(); + this.buttonCancel = new global::IBBoard.GtkSharp.Translatable.TranslatableButton(); this.buttonCancel.CanDefault = true; this.buttonCancel.CanFocus = true; this.buttonCancel.Name = "buttonCancel"; @@ -207,7 +207,7 @@ w17.Expand = false; w17.Fill = false; // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild - this.buttonOk = new global::Gtk.Button(); + this.buttonOk = new global::IBBoard.GtkSharp.Translatable.TranslatableButton(); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; diff -r 58779fcd0166 -r e40d892a2298 gtk-gui/IBBoard.WarFoundry.GUI.GTK.FrmEditEquipment.cs --- a/gtk-gui/IBBoard.WarFoundry.GUI.GTK.FrmEditEquipment.cs Fri Dec 31 12:01:18 2010 +0000 +++ b/gtk-gui/IBBoard.WarFoundry.GUI.GTK.FrmEditEquipment.cs Fri Dec 31 13:53:18 2010 +0000 @@ -15,8 +15,8 @@ private global::Gtk.RadioButton rbEquipNumeric; private global::Gtk.RadioButton rbEquipPercent; private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblEquipAmount; - private global::Gtk.Button buttonCancel; - private global::Gtk.Button buttonOk; + private global::IBBoard.GtkSharp.Translatable.TranslatableButton buttonCancel; + private global::IBBoard.GtkSharp.Translatable.TranslatableButton buttonOk; protected virtual void Build() { @@ -165,7 +165,7 @@ w13.BorderWidth = ((uint)(5)); w13.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild - this.buttonCancel = new global::Gtk.Button(); + this.buttonCancel = new global::IBBoard.GtkSharp.Translatable.TranslatableButton(); this.buttonCancel.CanDefault = true; this.buttonCancel.CanFocus = true; this.buttonCancel.Name = "buttonCancel"; @@ -177,7 +177,7 @@ w14.Expand = false; w14.Fill = false; // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild - this.buttonOk = new global::Gtk.Button(); + this.buttonOk = new global::IBBoard.GtkSharp.Translatable.TranslatableButton(); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; diff -r 58779fcd0166 -r e40d892a2298 gtk-gui/IBBoard.WarFoundry.GUI.GTK.FrmReplaceEquipment.cs --- a/gtk-gui/IBBoard.WarFoundry.GUI.GTK.FrmReplaceEquipment.cs Fri Dec 31 12:01:18 2010 +0000 +++ b/gtk-gui/IBBoard.WarFoundry.GUI.GTK.FrmReplaceEquipment.cs Fri Dec 31 13:53:18 2010 +0000 @@ -18,8 +18,8 @@ private global::Gtk.RadioButton rbEquipPercent; private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblEquipAmount; private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblEquipment; - private global::Gtk.Button buttonCancel; - private global::Gtk.Button buttonOk; + private global::IBBoard.GtkSharp.Translatable.TranslatableButton buttonCancel; + private global::IBBoard.GtkSharp.Translatable.TranslatableButton buttonOk; protected virtual void Build() { @@ -195,7 +195,7 @@ w16.BorderWidth = ((uint)(5)); w16.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4)); // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild - this.buttonCancel = new global::Gtk.Button(); + this.buttonCancel = new global::IBBoard.GtkSharp.Translatable.TranslatableButton(); this.buttonCancel.CanDefault = true; this.buttonCancel.CanFocus = true; this.buttonCancel.Name = "buttonCancel"; @@ -207,7 +207,7 @@ w17.Expand = false; w17.Fill = false; // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild - this.buttonOk = new global::Gtk.Button(); + this.buttonOk = new global::IBBoard.GtkSharp.Translatable.TranslatableButton(); this.buttonOk.CanDefault = true; this.buttonOk.CanFocus = true; this.buttonOk.Name = "buttonOk"; diff -r 58779fcd0166 -r e40d892a2298 gtk-gui/IBBoard.WarFoundry.GUI.GTK.Widgets.UnitDisplayWidget.cs --- a/gtk-gui/IBBoard.WarFoundry.GUI.GTK.Widgets.UnitDisplayWidget.cs Fri Dec 31 12:01:18 2010 +0000 +++ b/gtk-gui/IBBoard.WarFoundry.GUI.GTK.Widgets.UnitDisplayWidget.cs Fri Dec 31 13:53:18 2010 +0000 @@ -23,10 +23,10 @@ private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblAbilities; private global::IBBoard.GtkSharp.Translatable.TranslatableLabel lblNotes; private global::Gtk.VBox vbox3; - private global::Gtk.Button bttnAddEquipment; - private global::Gtk.Button bttnEditEquipment; - private global::Gtk.Button bttnReplaceEquipment; - private global::Gtk.Button bttnRemoveEquipment; + private global::IBBoard.GtkSharp.Translatable.TranslatableButton bttnAddEquipment; + private global::IBBoard.GtkSharp.Translatable.TranslatableButton bttnEditEquipment; + private global::IBBoard.GtkSharp.Translatable.TranslatableButton bttnReplaceEquipment; + private global::IBBoard.GtkSharp.Translatable.TranslatableButton bttnRemoveEquipment; protected virtual void Build() { @@ -187,7 +187,7 @@ this.vbox3.Name = "vbox3"; this.vbox3.Spacing = 6; // Container child vbox3.Gtk.Box+BoxChild - this.bttnAddEquipment = new global::Gtk.Button(); + this.bttnAddEquipment = new global::IBBoard.GtkSharp.Translatable.TranslatableButton(); this.bttnAddEquipment.CanFocus = true; this.bttnAddEquipment.Name = "bttnAddEquipment"; this.bttnAddEquipment.UseUnderline = true; @@ -198,7 +198,7 @@ w19.Expand = false; w19.Fill = false; // Container child vbox3.Gtk.Box+BoxChild - this.bttnEditEquipment = new global::Gtk.Button(); + this.bttnEditEquipment = new global::IBBoard.GtkSharp.Translatable.TranslatableButton(); this.bttnEditEquipment.Sensitive = false; this.bttnEditEquipment.CanFocus = true; this.bttnEditEquipment.Name = "bttnEditEquipment"; @@ -210,7 +210,7 @@ w20.Expand = false; w20.Fill = false; // Container child vbox3.Gtk.Box+BoxChild - this.bttnReplaceEquipment = new global::Gtk.Button(); + this.bttnReplaceEquipment = new global::IBBoard.GtkSharp.Translatable.TranslatableButton(); this.bttnReplaceEquipment.Sensitive = false; this.bttnReplaceEquipment.CanFocus = true; this.bttnReplaceEquipment.Name = "bttnReplaceEquipment"; @@ -222,7 +222,7 @@ w21.Expand = false; w21.Fill = false; // Container child vbox3.Gtk.Box+BoxChild - this.bttnRemoveEquipment = new global::Gtk.Button(); + this.bttnRemoveEquipment = new global::IBBoard.GtkSharp.Translatable.TranslatableButton(); this.bttnRemoveEquipment.Sensitive = false; this.bttnRemoveEquipment.CanFocus = true; this.bttnRemoveEquipment.Name = "bttnRemoveEquipment"; diff -r 58779fcd0166 -r e40d892a2298 gtk-gui/gui.stetic --- a/gtk-gui/gui.stetic Fri Dec 31 12:01:18 2010 +0000 +++ b/gtk-gui/gui.stetic Fri Dec 31 13:53:18 2010 +0000 @@ -927,7 +927,7 @@ 6 - + True TextOnly @@ -943,7 +943,7 @@ - + False True @@ -960,7 +960,7 @@ - + False True @@ -977,7 +977,7 @@ - + False True @@ -1327,7 +1327,7 @@ 2 End - + True True @@ -1344,7 +1344,7 @@ - + True True @@ -1627,7 +1627,7 @@ 2 End - + True True @@ -1644,7 +1644,7 @@ - + True True @@ -1973,7 +1973,7 @@ 2 End - + True True @@ -1990,7 +1990,7 @@ - + True True @@ -2024,7 +2024,7 @@ 2 - + resource:IBBoard.WarFoundry.GUI.GTK.App-lrg.png @@ -2049,7 +2049,7 @@ - + WarFoundry is an open-source army creation tool that lets you create rosters for multiple game systems. True @@ -2063,7 +2063,7 @@ - + © 2007-2010, IBBoard and others @@ -2075,7 +2075,7 @@ - + <a href="http://warfoundry.co.uk">http://warfoundry.co.uk</a> True @@ -2097,16 +2097,15 @@ 1 End - + True True True StockItem - gtk-ok - -5 - - gtk-ok + gtk-close + -7 + gtk-close False diff -r 58779fcd0166 -r e40d892a2298 translations/en.translation --- a/translations/en.translation Fri Dec 31 12:01:18 2010 +0000 +++ b/translations/en.translation Fri Dec 31 13:53:18 2010 +0000 @@ -1,7 +1,5 @@ - - + + _File _Edit _Help @@ -27,10 +25,16 @@ Remove Unit WarFoundry Army Files (*.army) Cancel +Cancel +OK Select system Save army Unit of {0} {1} {0} pts / {1} pts +Add +Edit +Remove +Replace Equipment: Abilities: Notes: @@ -53,6 +57,9 @@ Edit Equipment Equipment About WarFoundry +Close +© 2007-2010, IBBoard and others +WarFoundry is an open-source army creation tool that lets you create rosters for multiple game systems. Export army Cancel Export