.NET库本地化工具使用指南

.NET库本地化工具是一个云API,用于处理编译后的.NET库,这些库可以是用C#或VB.NET编写的。它支持从框架版本4.0到4.6的.NET程序集(DLL)的翻译。本文旨在为使用Visual Studio和已安装NuGet的.NET软件开发者提供指导。要使用API,需要有互联网连接,并且最低框架版本要求为4.0。

项目设置

打开Visual Studio并创建一个新的类库项目,如果使用VB.NET,项目命名为TestLibrary.VB;如果使用C#,则命名为TestLibrary.CSharp。删除Class1.vb或Class1.cs文件,并创建一个新的类,命名为Test.vb或Test.cs。

打开项目属性,然后打开程序集信息编辑器;指定中立语言(对于本教程)为英语(美国)。接下来,通过NuGet安装Newtonsoft.Json包:

PM> Install-Package Newtonsoft.Json

添加辅助类到项目中:

如果使用VB.NET,下载这个文件(Helper.vb.zip);如果使用C#,下载这个文件(Helper.cs.zip)。打开Test.vb或Test.cs,并添加一个返回字符串的函数。

Function GetString() As String Return "Hello World!" End Function public string GetString() { return "Hello World!"; }

到目前为止的结果...

TestLibrary.VB - Start.zip(无依赖项)

TestLibrary.CSharp - Start.zip(无依赖项)

将DLL加载到云中

首先,需要编译DLL项目,然后将TestLibrary.VB.dll或TestLibrary.CSharp.dll复制到一个新文件夹中,同时复制Newtonsoft.Json.dll。

打开Visual Studio并创建一个新的控制台应用程序项目,如果使用VB.NET,项目命名为NLL.Com.VB;如果使用C#,则命名为NLL.Com.CSharp。现在,需要在连接到API之前添加3个引用:

首先,下载NLL.zip并添加对NLL.dll文件的引用。

PM> Install-Package Newtonsoft.Json PM> Install-Package DotNetZip

打开Module1.vb或Program.cs并编辑Sub Main()或static void Main(string[] args);这里是要插入的代码...

Dim NLLClient As New NLL.Client NLLClient.Load("", "TestLibrary.VB", "en-US") File.WriteAllBytes("TestLibrary.VB.dll", NLLClient.DLLFile) File.WriteAllBytes(NLLClient.LanguageFileName, NLLClient.LanguageFile) Console.WriteLine(String.Format("OK! (Elapsed: {0}...", NLLClient.Elapsed.ToString)) Console.ReadLine() NLL.Client NLLClient = new NLL.Client(); NLLClient.Load("", string.Empty, "en-US"); File.WriteAllBytes("TestLibrary.CSharp.dll", NLLClient.DLLFile); File.WriteAllBytes(NLLClient.LanguageFileName, NLLClient.LanguageFile); Console.WriteLine(string.Format("OK! (Elapsed: {0}...", NLLClient.Elapsed.ToString())); Console.ReadLine();

运行应用程序并等待结果。结果将是两个文件保存在应用程序文件夹中,修改后的库"TestLibrary.VB.dll"或"TestLibrary.CSharp.dll",以及另一个名为"TestLibrary.VB en-US"或"TestLibrary.CSharp en-US"的文件。第二个文件简单地包含输入DLL中字符串的JSON数据。

现在使用任何文本编辑器(如记事本)打开创建的两个文件。在名为"TestLibrary.VB fr-FR"或"TestLibrary.CSharp fr-FR"的文件中查找"Hello World!"并将其更改为"Bonjour le monde!",在"TestLibrary.VB es-ES"或"TestLibrary.CSharp es-ES"中更改为"Hola Mundo!"。

就是这样!现在有一个完全可本地化的DLL,带有翻译。但这还没有结束,让进行测试!

使用GUI工具

下载GUI工具。确保为每个项目语言正确输入所有值。

VB.NET项目示例(如果VB项目中未留空,则需要根命名空间,否则服务器会返回错误)。

CSharp项目选项(默认命名空间与Visual Basic中的根命名空间不同,留空)。

测试结果

现在有了API的结果DLL,应该测试它。将TestLibrary.VB.dll或TestLibrary.CSharp.dll的引用从服务器添加回一个新的控制台应用程序项目,项目名为ConsoleDemo.VB或ConsoleDemo.CSharp。

打开Module1.vb或Program.cs,并更新Sub Main()或static void Main(string[] args),使用以下代码:

Dim Test As New TestLibrary.VB.Test Dim CultureName As String = "en-US" Console.WriteLine(CultureName) TestLibrary.VB.HandCode.Helper.ChangeLanguage(CultureName) Console.WriteLine(Test.GetString) Console.WriteLine() CultureName = "fr-FR" Console.WriteLine(CultureName) TestLibrary.VB.HandCode.Helper.ChangeLanguage(CultureName) Console.WriteLine(Test.GetString) Console.WriteLine() CultureName = "es-ES" Console.WriteLine(CultureName) TestLibrary.VB.HandCode.Helper.ChangeLanguage(CultureName) Console.WriteLine(Test.GetString) Console.ReadLine() TestLibrary.CSharp.Test Test = new TestLibrary.CSharp.Test(); string CultureName = "en-US"; Console.WriteLine(CultureName); HandCode.Helper.ChangeLanguage(CultureName); Console.WriteLine(Test.GetString()); Console.WriteLine(); CultureName = "fr-FR"; Console.WriteLine(CultureName); HandCode.Helper.ChangeLanguage(CultureName); Console.WriteLine(Test.GetString()); Console.WriteLine(); CultureName = "es-ES"; Console.WriteLine(CultureName); HandCode.Helper.ChangeLanguage(CultureName); Console.WriteLine(Test.GetString()); Console.ReadLine();

在项目中,将三个翻译文件("TestLibrary.VB en-US"、"TestLibrary.VB fr-FR"和"TestLibrary.VB es-ES"或"TestLibrary.CSharp en-US"、"TestLibrary.CSharp fr-FR"和"TestLibrary.CSharp es-ES")添加到项目的根目录,选择全部三个,然后切换到文件属性,选择"始终复制"到输出目录。

4. 运行项目并看到它在行动...

下载VB.NET演示ConsoleDemo.VB

下载C#演示ConsoleDemo.CSharp

(由"asimonassi"建议)

并没有打算创建一个将取代Visual Studio中资源文件的东西,仍然使用它们来处理图像和文件,但这种技术可能是在某些情况下的有用补充或替代;例如:

如果想允许其他开发者在没有源代码的情况下翻译库中的字符串。

另一个优点是,每次对任何翻译文件进行更改时,都不必重新构建项目。

即使在混淆之后,库仍然可以工作;可以在混淆之后对翻译文件进行额外的更改,它仍然会工作。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485