对不起,提前我的英文,它是我的第一篇文章。 我在Resolve中遇到了奇怪的问题,在Silverlight中支持文化。 其主要项目(解决方案资源管理器屏幕:http://i.imgur.com/A4sHWRI.png?1)中的Silverlight应用程序具有1个启动整个Silverlight应用程序,1个主项目(silverlight,sl.Application)和其他用作模块(silverlight)的web(asp.net)项目。 Sl.Application可以调用其他项目和使用他们的意见放在sl.application主视图的一部分Silverlight 5中的资源文化问题
我试图添加不同的文化,所以:
我添加到我的应用程序支持的区域性EN和CS到每个cs.proj。
<SupportedCultures>pl;en;cs;de;ru;cz;sk</SupportedCultures>
我的中性文化在每个项目的装配信息中设置为PL。
[assembly: NeutralResourcesLanguageAttribute("pl-PL")]
对不同文化的创建RESX文件,这里FOL PL,EN,CS:http://i.imgur.com/P6woiV2.png
在启动应用程序,你可以选择你想要的文化,通过点击特定的标志。首先让我们从PL开始 - 它的中立文化,所以我不需要改变任何东西。使用
var culture = System.Threading.Thread.CurrentThread.CurrentUICulture;
var test_en = Resources.DrivesBook.ResourceManager.GetString("AdresArrival", culture);
我检查了区域性设置为PL和资源(DriveBook.resx)在PL
下一页返回正确的字符串: 让我们尝试EN,启动应用程序,选择EN标志 - 改变文化为en -GB。
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en-GB");
使用相同的代码上面,我返回字符串EN所以它还是不错的
最好的开始,当我试图使用CS。 同上,我选择CS标志 - 改变文化CS-CZ 使用SL.Application
var culture = System.Threading.Thread.CurrentThread.CurrentUICulture;
其回报我的CS-CZ文化,所以我想会有好了,当我打电话
var test_cs = Resources.DrivesBook.ResourceManager.GetString("AdresArrival", culture);
它从CS文化返回我字符串,仍然一切正常,那么问题在哪里?
,当我在其他项目(从公共或模块文件夹)试过同样的,这里谈到魔术:)
同上 使用Modules.Auxiliary
var culture = System.Threading.Thread.CurrentThread.CurrentUICulture;
还OK,我们得到了CS -CZ文化,似乎工作正常,但
var test_cs = Resources.DrivesBook.ResourceManager.GetString("AdresArrival", culture);
它返回字符串我从PL文化,而不是从CS
总结: 更改文化对于EN来说工作正常,整个应用程序从resx文件中获得EN字符串,但是当我更改为CS时,只有SL.Application可以解析* .cs.resx文件,其他项目看起来像没有看到* .cs.resx文件。虽然添加恩和CS我完全相同的工作,两者和EN工作正常,但CS不是。它有任何posibily,在cs.proj中有一些属性限制当前项目中最大支持的文化,或者你有什么想法我做错了什么?