我有一个 .NET 自定义控件,它以依赖于文化的方式显示信息。为了提高性能,我在控件内缓存了一些信息,而不是每次都生成它。我需要知道文化是否发生了变化,以便我可以适当地重新生成这些内部信息。
有什么我参与过的活动吗?或者我是否必须在每次绘画时测试文化设置,看看它是否发生了变化?
我有多个资源文件来支持不同的语言。用户将以他的首选语言呈现资源。正在对应用程序日志进行附加记录,我只想使用中性语言(英语)进行记录。
我不想要仅用于英语消息的专用资源文件。以最终用户的语言向最终用户显示的相同消息应该能够以英语另外记录到应用程序日志文件中。
这样做的最佳方法是什么?
我有一个用 vb2010 编写的 winform 应用程序。
我将应用程序的 winform 的“语言”属性更改为德语,仅用于测试目的。我构建了应用程序,并在 \bin\debug 文件夹中创建了一个新的 \de 文件夹,其中包含本地化资源文件“appname.resources.dll”。
然后我将“Language”属性设置回(默认)并将“Localizes”设置为 FALSE,并再次构建应用程序,但再次创建了 \de 文件夹及其 appname.resources.dll。我已经控制了应用程序中的每个表单,以及“我的项目”设置,没有任何内容指向任何其他文化。我删除了整个 \debug 文件夹,但每次构建后,我总是得到 \de 子文件夹。
我现在无法理解我的应用程序中发生了什么变化:如果我设置回表单属性,为什么编译器会创建本地化资源?
我对新文化(南非荷兰语)重复了相同的操作,以发现表单属性的任何变化:我没有找到任何可以帮助我的东西,但现在我得到两个子文件夹。: \de 和 \af
有什么建议吗?谢谢您的回复。
编辑:找到解决方案! 在解决方案资源管理器中,您必须单击“显示所有文件”;然后在表单(或多个表单)下有一个名为“formname.de-DE.resx”的文件,这是表单“formname”的语言资源文件。您必须手动删除此文件才能构建非本地化项目。
culture localization visual-studio-2010 visual-studio winforms
我想改变当前交互式 Powershell 会话中接受的数据和错误的文化。我知道这个问题powershell:改变当前会话的文化和这个问题改变SuperUser 上的当前文化。主要问题是它不适用于 Powershell 3.0 和 4.0。
PS C:\users\me\Documents> [system.threading.thread]::currentthread.currentculture
LCID Name DisplayName
---- ---- -----------
1049 ru-RU ??????? (??????)
PS C:\users\me\Documents> [system.threading.thread]::currentthread.currentculture=[system.globalization.cultureinfo]"en-US"
PS C:\users\me\Documents> [system.threading.thread]::currentthread.currentculture
LCID Name DisplayName
---- ---- -----------
1049 ru-RU ??????? (??????)
Run Code Online (Sandbox Code Playgroud)
UI 文化也不接受新设置。Set-Culture无论我是否使用管理员访问权限,总的来说都不起作用 - 无论如何,它不应受此影响,因为效果仅适用于单个进程。在Using-Culture从MSDN博客Powershell的,适于通过SO社会的作品,但只是部分,例如,以“RU-RU”当前文化我能够从“15年6月19日下午2时26分02秒”获得合适的日期字符串,它通过 位于“en-US”区域性中Using-Culture "en-US" {get-date -date "6/19/15 2:26:02 PM"},但不可能收到另一种语言的错误:sayUsing-Culture "en-US" {$null.test='1'}导致俄语区域设置错误,就好像区域性没有改变一样。
此行为已在我安装了 Powershell 4.0 的本地 Win7 Professional 工作站和安装了 Powershell 3.0 的 Windows Server 2012 上进行了测试,这是解析错误本地化日期字符串所必需的。后者具有“en-US”的 UI 文化和系统区域设置“ru-RU”。 …
适用于多语言 asp.net mvc 网站。
我应该在哪里将线程的文化设置为默认语言(对于我的情况是 tr-TR),此外,如果它不存在,我需要将其保存在 cookie 中。在 Application_Start() 或其他?
我有多个站点(域),所以我需要更改特定于站点的默认语言。
example.com must set default culture to tr-TR
example2.com must set default culture to en-US
Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我需要显示货币换算。
例如:
1 ?= 0.015 $
Run Code Online (Sandbox Code Playgroud)
同样,我想显示从 AED 到 USD 的转换。当我尝试时,转换方程会失真。
1 ?.? = 0.99 $
Run Code Online (Sandbox Code Playgroud) 我正在尝试在 xamarin.mac 中使用 .resx 文件进行本地化
在 AppDelegate 中,我改变了线程的当前文化:
System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo ("ru");
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo ("ru");
Run Code Online (Sandbox Code Playgroud)
我的应用程序中还有两个资源文件:
但是字符串总是从默认资源文件中显示出来......有什么解决办法吗?
我也使用本地语言更改,这里是整个 AppDelegate 构造函数:
public AppDelegate ()
{
string [] lang = { "ru", "en" };
NSUserDefaults.StandardUserDefaults.SetValueForKey (NSArray.FromObjects (lang), (Foundation.NSString)"AppleLanguages");
NSUserDefaults.StandardUserDefaults.Synchronize ();
System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo ("ru");
System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo ("ru");
Resources.Culture = GetCurrentCultureInfo ();
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,如果我的项目中有 resource.ru,xamarin studio 6.1.1(build 15)不允许我添加 resource.ru.resx,有点错误!
我已经创建了 resource-ru.resx 文件并重命名了它。
当我在我的服务器的 IIS 上上传我的 ASP.Net 站点时,它抛出以下错误
错误
不支持文化。参数名称:名称 en-SA 是无效的区域性标识符。异常详细信息:System.Globalization.CultureNotFoundException:不支持文化。参数名称:名称 en-SA 是无效的区域性标识符。
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常来源和位置的信息。
堆栈跟踪:
[CultureNotFoundException:不支持文化。参数名称:name en-SA 是无效的文化标识符。] System.Globalization.CultureInfo.GetCultureInfo(String name) +14364298 WebApplication3.UserHomePage.getHourChart1001() +369 版本信息:Microsoft .NET Framework 版本:4.0.30319;ASP.NET 版本:4.0.30319.34209`
我在堆栈溢出上看到了很多关于这个问题的页面。他们中的一些人建议删除此位置上的文件
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files
Temporary ASP.NET Files 中没有文件或文件夹。
问题是什么?
我有一个 CLR .NET dll 和 SQL 服务器。系统本地设置(Region/administrative/locallanaguagesettings)从 en-IN 更改为 en-US。但是用 Thread.CurrentThread.CurrentCulture 追踪的 CLR 中的文化仍然是 en-IN
选择@@Language 打印 englishUS
SQL 服务器从哪里为 CLR 文化选择文化?最后一个问题,如何通过系统设置 SQL CLR 程序集中使用的区域性来更改?
我有一个像 202667.4. 我想根据文化将其转换为数字。
例如:
在“de”(德语)中,数字应为202.667,40。
任何帮助将不胜感激。
谢谢。
culture ×10
localization ×4
c# ×3
cultureinfo ×2
.net ×1
asp.net ×1
asp.net-mvc ×1
clr ×1
html ×1
multilingual ×1
powershell ×1
resources ×1
resx ×1
sql ×1
winforms ×1
xamarin.mac ×1