From bfc8450488fc304eb3a217eb670c2cfb98df8783 Mon Sep 17 00:00:00 2001 From: "kenneth.skovhede@gmail.com" Date: Mon, 10 Aug 2009 17:55:29 +0000 Subject: [PATCH] Improved the LocalizationTool and updated the Localization build script to also include the WizardForm project. git-svn-id: https://duplicati.googlecode.com/svn/trunk@252 59da171f-624f-0410-aa54-27559c288bec --- Duplicati/GUI/Program.cs | 13 +- .../Localization/Duplicati.Library.Core.dll | Bin 32768 -> 32768 bytes Duplicati/Localization/LocalizationTool.exe | Bin 20480 -> 20992 bytes Duplicati/Localization/configuration.xml | 72 ++++---- .../LocalizationTool/LocalizationTool.csproj | 2 +- LocalizationTool/LocalizationTool/Program.cs | 157 +++++++++--------- WizardForm/Dialog.cs | 4 +- 7 files changed, 136 insertions(+), 112 deletions(-) diff --git a/Duplicati/GUI/Program.cs b/Duplicati/GUI/Program.cs index 946ca8f60..68d2e1ca0 100644 --- a/Duplicati/GUI/Program.cs +++ b/Duplicati/GUI/Program.cs @@ -115,7 +115,6 @@ namespace Duplicati.GUI //The official Mono SQLite provider is also broken with less than 3.6.3 MessageBox.Show(string.Format(Strings.Program.WrongSQLiteVersion, System.Data.SQLite.SQLiteConnection.SQLiteVersion, "3.6.3"), Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); return; - } System.Data.IDbConnection con = new System.Data.SQLite.SQLiteConnection(); @@ -138,9 +137,15 @@ namespace Duplicati.GUI if (!string.IsNullOrEmpty(new Datamodel.ApplicationSettings(DataConnection).DisplayLanguage)) try { - System.Threading.Thread.CurrentThread.CurrentUICulture = - System.Threading.Thread.CurrentThread.CurrentCulture = - System.Globalization.CultureInfo.GetCultureInfo(new Datamodel.ApplicationSettings(DataConnection).DisplayLanguage); + System.Threading.Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.GetCultureInfo(new Datamodel.ApplicationSettings(DataConnection).DisplayLanguage); + try + { + System.Threading.Thread.CurrentThread.CurrentCulture = System.Threading.Thread.CurrentThread.CurrentUICulture; + } + catch + { + //We still get the userinterface translated, but numbers and other formating is incorrect :( + } } catch(Exception ex) { diff --git a/Duplicati/Localization/Duplicati.Library.Core.dll b/Duplicati/Localization/Duplicati.Library.Core.dll index a7fba344926f96497ac6af7e83e226a10ce827a9..536dd86498e1fd210dbbca2dfb239fc7e4cc1198 100644 GIT binary patch delta 13364 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 delta 13322 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 diff --git a/Duplicati/Localization/LocalizationTool.exe b/Duplicati/Localization/LocalizationTool.exe index fb0f2e7fadae8af8dd659ff4ebd06ce8dd761a97..23e33abd9ced83d3dc03a0747bf8d507da30b2bd 100644 GIT binary patch delta 3100 zcmZozz}T>aaYBcZVQ_;N0~9=9U}EHEqJFio&^jHJPZsBI;ji{GLr?}btXqLYH+$SFfb@EFfe#b?qbwt^qRblQJpbh@;ydn z)l`sXh`~$@tPCn{3=ACd3=E763=B*R3~Uqh7#JprPZo67+8n@S!p5r1%)r1hxsgX< z@=6ZAdSQNxvrG&Og8ccu3=CW)1`G_0+!{^{3|veaZVU`u8Ui4~kAZ=UhrP&youMG# zpMilZKL92Qmgi+JN&-oFgQR>I7`TK5EJ8ts3Lp#>X5kcM$q!^;;3_HssSN_D4Q8lk z;DXpA2I7l@^a@)1V`N|u64a0Y@mK{}^CdyHf!qXU<;yTIa9Q1AWMB|vExN?Up zz`$jBl97RdLy(m--v(roEl3N<1Hx>AtVK=i3>10_IKXjP4~E82^mg7UO_$$kdFn0@*_d9s9pd6|NncUfJTOT5GA65qB`t?q7Wro4370R;7r2M$;iOK$H2faoe`4vKv{~3fq~&XBLl-71_p-J zObiU7AVEl`V%Q4`MJ5J@b4(C@ASsagCI$wE3?>GKS7_>W85kHIFflOjG9%29Heg|x z9Kvm55yim3rK8WT5e={Fz&y2RVsO*5eUpjG64lW5#64G`WsP8J6YmgK`gYmS-!*P$Q)4S z=3y^#LJsNne-~CJrrk z>KV8o5?nBebubM&5*R{YrP@q_oWhV|QNtPJcwsSN5$zH|VL_2upq!)O0utmE!ivtmxv@0A)80 zL0&;t4MqkAHbD{b2w@RH5kcX;OrsW97FhHToP(fQ04043LbHG97lm zK>|&Sfq}s>1(FGlFfcG^GB7Z_Wk4iSP{M9vWMJT8U|{HBWME)s0M{&xpu|3%fq@~F zk%8e4BSJk$9F*8UF)}d7BV_`qIz|Qt7Ok*iu22RBHjPA3Wy8Y2z|;U1mSfULVqoCX zl4H_H0nrQ$48jJ?491{z&cGm8$Hc(EBBGHB$|nj%4>%YKF0e8%FlnTLl50As1kISN z&#%U>!^u!k2ddukGeM?o&fwo6ZmYu1z@S{mz%YTGfgy#9fk8RAq$o2ly%^-PFMjURx3(Yn4I-tO3n8?7%sKCI(5TXro(L@G*Fz*j25E-U%s59y^@GwZ~f#ljG zj2Vp>co>+$yonM?oFILQU|us+P6y1J%rT$QnSqBP8_L_v=)u6lPz2@eXY^&@VW?u% z+nk~$#8j`%(a+e)c$Z}w<3z^SEOQuNGK6t7Gc+>hax7qMWGv&@#?Z((n`1fSLdNYJ zYZ)6E4{>Z`ILL5@V+-R=27C71jE;;KIa0wQ2N`cNT<18>IFV72^%%oVhWi{@j4v79 zax^m>WcbCQ!tj!Tk@Fu|4I|S=Mv!NAG8)%2-eWk(SjIVvNss{~bP_DV31)LLEZ}^? zbdm8m=PRa*j5j$yGbu6{GyY^!WO&BO#{7`cn30!Rk3pKjm|2gZnqeWc9s@UnEVCYi zFjz#H!ID{zK^rV$%;3VT$6yT>_Xd-}42jHo49N^W-OPFn*$g7gdJM%3GngG1n3+-; zJsE%&Clv!6J(pn3)$d888+wHZY!HWMdL!Vq~6t zO!o+j2^Ryy<{mv|j>%8W%yr#UOWaCxasm=dG8iIqb6j&$b5rw57}8Tq;yp`Jb0Lhp zywswQ)QXbH(&nCA&iMtE4BDGaF$MGOpri44UI#SEzoxeQ4R zISiEy47`&a9rhaXXEUTSRDw;*VMt|QkS_zPFNT_kp-XbIucIWR_~b%IaS8rZh6;vc zh8%`cuq_Onc?^jRxeTe3PdQE#VqnldD)I1I;4|N)eaF7e*pTsIbAi(o#`>dttO^W5 z4JVlu7-ZNK7=;?nLIf^?Iam4E7?>IP_?TD~nD{t2SQ(fY`S@5A7&-V1*~Nq!_6ju| z@0kId|)|!c6M=yp2>AC zGMo)3g$iZ)ID`r}&vR*I)P*(JL4{Zbs0c`9VDNBfU+498O=5e`n_kIXuu8t DSVSxB delta 2818 zcmZoz!q~8YaYBcZU{<~i0|S@U1x5x2&Z0Za3U{MD1tnKJYba?&~SwE zAmPZPAyf|vUQR)7K_0Mg1^M!$K#`~a|NsAcqJn&-G9dr(3-ar*3-Ut(Mu=BK7Nmsf z-~a#j_=I@>i7_!SNJHeb7#J8FeLzW&fkB;-fq{>Kfx(m!l9E9Ql!<|XA)Aqb;RXW( zgEJEYgD8VINEo6ak%57Mm5G5NjfsJQZ?Yf!hiC49(@(G)WLyB9pIFq!^W-=J6Va> zjOj1qgWOJ(n;iOyUSkLPr8a2yBKnlOTsM z7r6Y;a0ZzvC?+hVT`VXlC^So$Taa7B1tbVci>{yye2-b}UI3>c4^rag7375^Q4T>~ z4N&T=R}R&Ma!eY@3=CXaa!eYjAew=JLD+zq!5EZe85jiXKqaz>Mj9x|D-?a>5N0U2z{&Cvf*GKaD06bOfSRxqCqqFUGXn!leiqaihRqWMc8J?*urn|y*D)|mVP{~d;9_7< z4lXIm%u6o@d4xxZfgysEfk8Pmm?1@)fkA+QfkD|l)YFB5fuTg2fnmesRt;;$?9B%? zf*E~6IexRVF*I=Ga)>eXaQtQ$W7q^HuYkohIiE0dF~o4XaB?wJadtDXF-+lH$IQlX zkh7M7jo}z)Edv*WI2R)q7lQ#8BiG~vtu^%lppa#l$iT^{z`(;$0Sb49i46Q;-US_y z`=)WIGwL$%FuVox+9Zq_jTm?su7i0KC5kyg`o4mB%}_Z8U68)X9P=5S8F(1%p}ftE z9t=DTZcyHSMqdUV20upK%{|&eO!e{{{fv!_1{~WMUNYEmG&3Az@Zy-pc$2}NeJ-OT zqd!L~SY$C{BV!`RO2$scyDS?RCo;Zf*~Zw&xR_%X<4nf=90wR18BcL+V`yZ&&vBgb zCc_JkbBq%i6@RjlOO}gmnRuPBqx~7$*__0GSfxI8=NRb^%%6lBE}5H%z6ygU~z9S8O#tAz^uoR z%uvOw$B@my%&f;y%+Sv4z`)Fu%IL`u&CJZ42_~Bvn3+=t zS`zP>mzP=;l3G#1;GSCIR+^I&kXVwz;GADj$q-(YSu**ex#eUF3lHIl+#J`O)ZEm( z5{R~v)ZEQo7X6Hj44cKRl-aqJix~15@)=4P^cf~6I!aES<+wpr5+Rn&kjhZWkj9Y7 zki(G5z@UkcnH=pTkD|NUNzz6UAz#1%Vy7^aG9)vUFyt{LGUS3xkOqlD>`P=QW+-Mz zWyobnV#r~roV?0OhKDzeA)g_KA%!88p=k0Er)dICb5FW{TszHk*@?HYK6#Njn{%9} zFxDUBV`E@u>tMm+{t^AuF1WiT)>*rYHp*tjt;1O>YU2TwfC zT6gcK`<@+o(`x76yu&;>);*Z-478~U%6{)sChv2XW=xr=D6;vHyAI=KKCj=bjHa6f IJ-#sl0O7X(FaQ7m diff --git a/Duplicati/Localization/configuration.xml b/Duplicati/Localization/configuration.xml index 4fa2ffff1..045c65fcf 100644 --- a/Duplicati/Localization/configuration.xml +++ b/Duplicati/Localization/configuration.xml @@ -1,33 +1,45 @@  - - Datamodel - - - Datamodel - - - Decrypter - - - - - - - - + + + Datamodel + + + Datamodel + + + Decrypter + + + + + + + + - - - - - - - - - - ..\GUI\Duplicati.snk - ..\GUI\bin\release\Duplicati.exe - .. - compiled - Duplicati + + + + + + + + + + ..\GUI\Duplicati.snk + ..\GUI\bin\release\Duplicati.exe + .. + compiled + Duplicati + + + + + + ..\..\WizardForm\WizardForm.snk + ..\GUI\bin\release\System.Windows.Forms.Wizard.dll + ..\.. + compiled + WizardForm + \ No newline at end of file diff --git a/LocalizationTool/LocalizationTool/LocalizationTool.csproj b/LocalizationTool/LocalizationTool/LocalizationTool.csproj index b96fc00ce..ed0531bb9 100644 --- a/LocalizationTool/LocalizationTool/LocalizationTool.csproj +++ b/LocalizationTool/LocalizationTool/LocalizationTool.csproj @@ -45,7 +45,7 @@ pdbonly true - bin\Release\ + ..\..\Duplicati\Localization\ TRACE prompt 4 diff --git a/LocalizationTool/LocalizationTool/Program.cs b/LocalizationTool/LocalizationTool/Program.cs index b6fbb8457..c33a8b899 100644 --- a/LocalizationTool/LocalizationTool/Program.cs +++ b/LocalizationTool/LocalizationTool/Program.cs @@ -110,62 +110,67 @@ namespace LocalizationTool { System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); doc.Load(System.IO.Path.Combine(Application.StartupPath, "configuration.xml")); - string sourcefolder = System.IO.Path.GetFullPath(Duplicati.Library.Core.Utility.AppendDirSeperator(doc.SelectSingleNode("root/sourcefolder").InnerText)); - string outputfolder = System.IO.Path.GetFullPath(Duplicati.Library.Core.Utility.AppendDirSeperator(System.IO.Path.Combine(Application.StartupPath, culture))); - string target = System.IO.Path.Combine(outputfolder, culture); - - foreach (string s in Duplicati.Library.Core.Utility.EnumerateFiles(sourcefolder)) + foreach (System.Xml.XmlNode conf in doc.SelectNodes("root/configuration")) { - if (s.ToLower().StartsWith(Application.StartupPath.ToLower())) - continue; + string outputfolder = System.IO.Path.GetFullPath(Duplicati.Library.Core.Utility.AppendDirSeperator(System.IO.Path.Combine(Application.StartupPath, culture))); + string sourcefolder = Duplicati.Library.Core.Utility.AppendDirSeperator(System.IO.Path.GetFullPath(conf["sourcefolder"].InnerText)); - if (s.EndsWith(".resx")) + foreach (System.Xml.XmlNode fn in conf.SelectNodes("assembly")) { - string targetName = System.IO.Path.Combine(outputfolder, s.Substring(sourcefolder.Length)); - - string csFile = System.IO.Path.ChangeExtension(s, ".cs"); - - bool isForm = System.IO.File.Exists(csFile); - - if (!System.IO.Directory.Exists(System.IO.Path.GetDirectoryName(targetName))) - System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(targetName)); - - if (isForm) - System.IO.File.Copy(s, targetName, true); //Copy the updated resx - - targetName = targetName.Substring(0, targetName.Length - "resx".Length) + culture + ".resx"; - - if (System.IO.File.Exists(targetName)) - { - //TODO: Merge - } - else + foreach (string s in Duplicati.Library.Core.Utility.EnumerateFiles(System.IO.Path.Combine(sourcefolder, fn.Attributes["folder"].Value))) { - if (isForm) //Form - using (System.IO.StreamWriter sw = new System.IO.StreamWriter(targetName)) - sw.Write(Properties.Resources.Empty_resx); - else - System.IO.File.Copy(s, targetName); - } + if (s.ToLower().StartsWith(Application.StartupPath.ToLower())) + continue; - System.Xml.XmlDocument doc2 = new System.Xml.XmlDocument(); - doc2.Load(s); - - foreach(System.Xml.XmlNode n in doc2.SelectNodes("root/data")) - if (n.Attributes["type"] != null && n.Attributes["type"].Value == "System.Resources.ResXFileRef, System.Windows.Forms") + if (s.EndsWith(".resx")) { - string relname = n["value"].InnerText; - relname = relname.Substring(0, relname.IndexOf(";")); - string sourceRes = System.IO.Path.GetFullPath(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(s), relname)); - string targetRes = System.IO.Path.GetFullPath(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(targetName), relname)); - if (!System.IO.Directory.Exists(System.IO.Path.GetDirectoryName(targetRes))) - System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(targetRes)); + string targetName = System.IO.Path.Combine(outputfolder, s.Substring(sourcefolder.Length)); + + string csFile = System.IO.Path.ChangeExtension(s, ".cs"); + + bool isForm = System.IO.File.Exists(csFile); + + if (!System.IO.Directory.Exists(System.IO.Path.GetDirectoryName(targetName))) + System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(targetName)); + + if (isForm) + System.IO.File.Copy(s, targetName, true); //Copy the updated resx + + targetName = targetName.Substring(0, targetName.Length - "resx".Length) + culture + ".resx"; + + if (System.IO.File.Exists(targetName)) + { + //TODO: Merge + } + else + { + if (isForm) //Form + using (System.IO.StreamWriter sw = new System.IO.StreamWriter(targetName)) + sw.Write(Properties.Resources.Empty_resx); + else + System.IO.File.Copy(s, targetName); + } + + System.Xml.XmlDocument doc2 = new System.Xml.XmlDocument(); + doc2.Load(s); + + foreach (System.Xml.XmlNode n in doc2.SelectNodes("root/data")) + if (n.Attributes["type"] != null && n.Attributes["type"].Value == "System.Resources.ResXFileRef, System.Windows.Forms") + { + string relname = n["value"].InnerText; + relname = relname.Substring(0, relname.IndexOf(";")); + string sourceRes = System.IO.Path.GetFullPath(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(s), relname)); + string targetRes = System.IO.Path.GetFullPath(System.IO.Path.Combine(System.IO.Path.GetDirectoryName(targetName), relname)); + if (!System.IO.Directory.Exists(System.IO.Path.GetDirectoryName(targetRes))) + System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(targetRes)); + + if (!System.IO.File.Exists(targetRes)) + System.IO.File.Copy(sourceRes, targetRes); + } - if (!System.IO.File.Exists(targetRes)) - System.IO.File.Copy(sourceRes, targetRes); } - + } } } @@ -194,41 +199,43 @@ namespace LocalizationTool System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); doc.Load(System.IO.Path.Combine(Application.StartupPath, "configuration.xml")); - string keyfile = doc.SelectSingleNode("root/keyfile").InnerText; - string versionassembly = doc.SelectSingleNode("root/versionassembly").InnerText; - string sourcefolder = doc.SelectSingleNode("root/sourcefolder").InnerText; - string outputfolder = doc.SelectSingleNode("root/outputfolder").InnerText; - string productname = doc.SelectSingleNode("root/productname").InnerText; - - foreach (System.Xml.XmlNode n in doc.SelectNodes("root/assembly")) + foreach (System.Xml.XmlNode conf in doc.SelectNodes("root/configuration")) { - List excludes = new List(); - foreach (System.Xml.XmlNode x in n.SelectNodes("exclude")) - excludes.Add(x.InnerText); + string keyfile = conf["keyfile"].InnerText; + string versionassembly = conf["versionassembly"].InnerText; + string outputfolder = conf["outputfolder"].InnerText; + string productname = conf["productname"].InnerText; - - string assemblyName = n.Attributes["name"].Value; - string folder = n.Attributes["folder"].Value; - string @namespace = n.Attributes["namespace"] == null ? assemblyName : n.Attributes["namespace"].Value; - - foreach (string bf in System.IO.Directory.GetDirectories(Application.StartupPath)) + foreach (System.Xml.XmlNode n in conf.SelectNodes("assembly")) { - string culture = System.IO.Path.GetFileName(bf); + List excludes = new List(); + foreach (System.Xml.XmlNode x in n.SelectNodes("exclude")) + excludes.Add(x.InnerText); - try + + string assemblyName = n.Attributes["name"].Value; + string folder = n.Attributes["folder"].Value; + string @namespace = n.Attributes["namespace"] == null ? assemblyName : n.Attributes["namespace"].Value; + + foreach (string bf in System.IO.Directory.GetDirectories(Application.StartupPath)) { - System.Globalization.CultureInfo.GetCultureInfo(culture); - } - catch - { - continue; - } + string culture = System.IO.Path.GetFileName(bf); - string outfolder = System.IO.Path.GetFullPath( System.IO.Path.Combine(outputfolder, culture)); - if (!System.IO.Directory.Exists(outfolder)) - System.IO.Directory.CreateDirectory(outfolder); + try + { + System.Globalization.CultureInfo.GetCultureInfo(culture); + } + catch + { + continue; + } - ResXCompiler.CompileResxFiles(System.IO.Path.Combine(bf, folder), excludes, @namespace, System.IO.Path.Combine(outfolder, assemblyName + ".resources.dll"), System.IO.Path.GetFullPath(versionassembly), keyfile, culture, productname); + string outfolder = System.IO.Path.GetFullPath(System.IO.Path.Combine(outputfolder, culture)); + if (!System.IO.Directory.Exists(outfolder)) + System.IO.Directory.CreateDirectory(outfolder); + + ResXCompiler.CompileResxFiles(System.IO.Path.Combine(bf, folder), excludes, @namespace, System.IO.Path.Combine(outfolder, assemblyName + ".resources.dll"), System.IO.Path.GetFullPath(versionassembly), keyfile, culture, productname); + } } } } diff --git a/WizardForm/Dialog.cs b/WizardForm/Dialog.cs index 89e9f6e3f..e77811952 100644 --- a/WizardForm/Dialog.cs +++ b/WizardForm/Dialog.cs @@ -114,9 +114,9 @@ namespace System.Windows.Forms.Wizard _BackButton.Enabled = m_visited.Count > 0; if (m_isLastPage) - _NextButton.Text = Strings.Dialog.NextButtonText; - else _NextButton.Text = Strings.Dialog.FinishButtonText; + else + _NextButton.Text = Strings.Dialog.NextButtonText; } public virtual void UpdateDisplay()