1) 卸载要本地化的项目
2) 编辑项目 .cproj 文件
3) 在最后一个属性组的末尾添加属性组
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
英文版
4) 重新加载项目并编译这将在 bin\debug 位置的 en-GB 文件夹中创建一个附属程序集“yourlibrary.resources.dll”,该程序集将是默认程序集。
5) 打开 Properties\AssemblyInfo.cs 文件并取消注释这一行 [assembly: NeutralResourcesLanguage("en-GB", UltimateResourceFallbackLocation.Satellite)] 这是一个备用卫星程序集。我们需要这个条目,否则对于 wpf 应用程序它会在 app.xaml.cs 无法加载时引发异常
6) 从命令提示符运行此命令,该命令使用 msbuild 生成 UID C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild /t:updateuid 。\yourlibrary.csproj,打开 xaml 文件并检查您的控件,所有元素上都会有 UID。
7) 从https://github.com/JeremyDurnell/locbaml下载 locabaml.exe 源代码工具
8) 将 locabaml.exe 文件复制到 \yourprojectname\bin\debug 文件夹
9)我们现在将为法语创建一个卫星程序集。首先,我们需要解析默认的卫星程序集并将内容写入 csv 文件,如下所示
10:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild /parse C:\yourprojectname\bin\Debug\yourlibrary.resources.dll /out:C:\yourprojectname\bin\Debug\yourlibrary.resources_FR.csv
11) 打开 yourlibrary.resources_FR.csv 进行必要的翻译
12) 现在我们需要使用命令行在法语中创建一个卫星程序集
13) C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild /生成 C:\yourprojectname\bin\Debug\yourlibrary.Resources.dll /trans: C:\yourprojectname\bin\Debug\yourlibrary.resources_FR。 csv /out:C:\yourporjectname\bin\Debug\temp /cul:fr-FR
14) 上面的命令将在 \bin\debug 位置创建一个文件夹 fr-FR
15)将您的计算机区域设置切换为法语(法国)
16) 在代码集中本地化为 Thread.CurrentThread.CurrentCulture = CultureInfo.CurrentCulture; Thread.CurrentThread.CurrentUICulture = CultureInfo.CurrentUICulture;
17) 编译并运行应用程序,您会在控件上看到翻译文本