C# 工程中多语言资源的迁移

背景

C#工程中有些对话框等多语言的资源,想移动到其他的工程中,如果只是通过菜单add Existed Item...导入相关的资源文件,并不能关联多语言的资源,自己重新创建多语言资源,工作量很大。网上找了很多资料,没看到相关的文章,MSDN也没找到。只能自己研究手动移植,经过半天的努力,终于成功了,分享出来,以飨C#工程师。

迁移方法

(1)找到要迁移的资源文件

以一个Form为例,class FormSelectChannel: From,我们支持3种语言,如何添加多语言支持,请参考其他msdn或者其他文章。这里假定是在可视化设计中,窗口的属性中将Localizable设置为true,然后在Language属性中选择某种语言,从而生成语言资源文件。假设我们Default语言是英文,还有简体中文和越南语,则3个资源文件分别是:FormSelectChannel.resx,FormSelectChannel.vi-VN.resx,FormSelectChannel.zh-CN.resx

还有两个代码文件:FormSelectChannel.cs和FormSelectChannel.Designer.cs

(2)修改代码文件的名称空间,以适合新的工程

(3)手动修改新的工程文件,添加进这5个文件和依赖关系

假设新工程文件为CommUI.csproj,用文本编辑器打开,这是个xml文件。

(3.1) 在代码文件的<ItemGroup>标签中,加入两个代码文件名,如下:

<ItemGroup> <Compile Include="FormSelectChannel.cs"> <SubType>Form</SubType> </Compile> <Compile Include="FormSelectChannel.Designer.cs"> <DependentUpon>FormSelectChannel.cs</DependentUpon> </Compile>

......

</ItemGroup>

(3.2) 在资源文件的<ItemGroup>标签中,加入3个资源文件:

<ItemGroup> <EmbeddedResource Include="FormSelectChannel.resx"> <DependentUpon>FormSelectChannel.cs</DependentUpon> </EmbeddedResource> <EmbeddedResource Include="FormSelectChannel.vi-VN.resx"> <DependentUpon>FormSelectChannel.cs</DependentUpon> </EmbeddedResource> <EmbeddedResource Include="FormSelectChannel.zh-CN.resx"> <DependentUpon>FormSelectChannel.cs</DependentUpon> </EmbeddedResource>

......

</ItemGroup>

编辑完,保存CommUI.csproj文件即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值