我们有一个Android应用程序,用作远程PC程序的客户端。 我们希望添加一个function,以便PC可以指示Android应用程序在运行时更改其区域设置,即启动应用程序; 把它与电脑沟通; 稍后PC会告诉应用程序切换到西class牙语或中文。 我们已经为各自的区域设置了所有的布局和string资源。 我们的应用程序是用户看到的唯一应用程序,因此如果设备的其余部分保持英语,则无关紧要。 在Android上有另一个编程语言的线程,但它似乎没有得出结论。 我可以放。 。 。 Locale locale = new Locale(sTheNewLocale); Locale.setDefault(locale); Configuration config = new Configuration(); config.locale = locale; getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics()); 。 。 。 在setContentView ()之前的onCreate()中 ,但是如果我想在屏幕启动并运行后更改区域设置,那么这并没有什么帮助。 在Activity已经运行之后,有没有办法重新加载内容视图? 那么是否有切实可行的方法可靠地更改区域设置,还是必须告诉我的老板,除非在启动应用程序之前将整个设备设置为新的区域设置,否则无法完成此任务?
我想将我作为string得到的一些数字转换成双精度,但是这些数字不是在美国标准语言环境中,而是在不同的数字中。 我怎样才能做到这一点?
我一直在考虑在C#中使用适合多种语言的应用程序,因为我需要在这样的小项目上工作。 我发现基本上有两种方法来做到这一点: 将表单的Localizable属性设置为true,设置Language属性,填充所有标签等,然后就完成了。 我在这里看到的主要缺点是:如何使其他东西不是表单的一部分准备好多种语言(如popup窗口,日志文件或窗口等)。 创build一个资源文件,例如“Lang.en-us.resx”,每个语言一个,例如“Lang.nl-nl.resx”,并用Strings填充。 IDE似乎为我自动生成一个类,所以在代码中我可以使用Lang.SomeText。 我看到的最大的缺点是:对于每一个表单我需要在代码中自己设置所有的标签和其他标题(而且它似乎没有数据绑定与这些资源一起工作)。 不过,我确定还有其他方法可以做到这一点。 那么,最佳做法是什么? 对于小型应用程序(几种forms,数据库连接等)最简单的是什么?对于大型应用程序最适合什么?
我正在为欧洲的客户开发一个应用程序。 我在美国是个讲英语的人。 我们的应用程序将支持多种语言,但不支持英语。 我在我们的应用程序中翻译了Localized.strings文件中的所有string,为不同的语言正确设置,当设备设置为正确的语言时,它们都可以正常工作(设备的语言是German = app正确的德语本地化) 。 如果设备未设置为我们支持的语言之一,例如在设置为英语的手机上,则会出现问题。 在这种情况下,我们希望电话能够回到德国,但是这并没有发生。 我们所看到的是手机正在使用Settings.app国际部分的语言列表中显示最高的语言。 对于我的手机,列表中最高的非英语语言是法语,所以当我运行该应用程序时,它被本地化为法语。 如果我将手机更改为德语,然后再更改为英语(这会更改“语言”列表中的顺序),然后该应用程序将本地化为德语。 我如何确保应用程序默认为德语不支持的语言? 我使用这个教程来设置项目的语言环境。 这包括删除首次本地化文件时创build的默认“英文”语言环境。 在项目文件中,我添加了: developmentRegion = de; 另外,在Info.plist中,我有 <key>CFBundleDevelopmentRegion</key> <string>de</string> 没有成功。 任何想法将不胜感激!
我正在编写一个iOS应用程序,我希望用户能够独立于iPhone或iPad的语言来更改UI语言。 问题是,如何在语言改变时为当前显示的视图重新加载相应的NIB文件,以及如何加载合适的.strings文件,以便NSLocalizedString正常工作?
我有一个简单的Windows窗体(C#,.NET 2.0)应用程序,使用Visual Studio 2008构build。 我想支持多种UI语言,并使用表单的“Localizable”属性和特定于文化的.resx文件,本地化方面可以无缝,轻松地工作。 Visual Studio自动编译特定于文化的resx文件到附属程序集,所以在我编译的应用程序文件夹中有特定文化的子文件夹包含这些附属程序集。 我希望将应用程序部署(复制到位)作为一个单一的程序集 ,但仍然保留包含多组文化特定资源的能力。 使用ILMerge (或ILRepack ),我可以将附件程序集合到主要的可执行程序集中,但标准的.NET ResourceManager回退机制找不到编译到主程序集中的区域性资源。 有趣的是,如果我把我的合并(可执行)程序集,并将其复制到文化特定的子文件夹,然后一切正常! 同样,当我使用Reflector (或ILSpy )时,我可以看到合并组合中主要和文化特定的资源。 但是将主要程序集复制到特定于文化的子文件夹中,无论如何都会破坏合并的目的 – 我真的需要那里只有单个程序集的单个副本… 我想知道是否有任何方法来劫持或影响ResourceManager后备机制在相同的程序集中查找文化特定的资源,而不是在GAC和文化命名的子文件夹中查找 。 我看到以下文章中描述的回退机制,但不知道如何修改: BCL团队博客文章ResourceManager 。 有没有人有任何想法? 这似乎是一个相对频繁的在线问题(例如,另一个关于堆栈溢出的问题:“ ILMerge和本地化的资源集合 ”),但我还没有find任何权威的答案。 更新1:基本解决scheme 遵循casperOne的build议 ,我终于能够完成这项工作。 我把解决scheme的代码放在这里,因为casperOne提供了唯一的答案,我不想自己添加。 我可以通过从“InternalGetResourceSet”方法中实现的Framework资源寻找回退机制中取出内容,并使我们的相同程序集search所使用的第一个机制,从而得以实现。 如果在当前程序集中找不到资源,那么我们调用基本方法来启动默认的search机制(感谢下面的@ Wouter的注释)。 为此,我派生了“ComponentResourceManager”类,并重写了一个方法(并重新实现了一个私有的框架方法): class SingleAssemblyComponentResourceManager : System.ComponentModel.ComponentResourceManager { private Type _contextTypeInfo; private CultureInfo _neutralResourcesCulture; public SingleAssemblyComponentResourceManager(Type t) : base(t) { _contextTypeInfo […]
在WPF 3.5SP1中,我使用了DataBindings中的最后一个特性StringFormat: <TextBlock Text="{Binding Path=Model.SelectedNoteBook.OriginalDate, StringFormat='f'}" FontSize="20" TextTrimming="CharacterEllipsis" /> 我面对的问题是,date总是用英语格式化…虽然我的系统是法语的吗? 我如何强制date跟随系统date?
我正在寻找一种方法来本地化PropertyGrid中显示的属性名称。 该属性的名称可以使用DisplayNameAttribute属性“覆盖”。 不幸的是,属性不能有非常量expression式。 所以我不能使用强types的资源,如: class Foo { [DisplayAttribute(Resources.MyPropertyNameLocalized)] // do not compile string MyProperty {get; set;} } 我看了一下,发现一些build议从DisplayNameAttributeinheritance,以便能够使用资源。 我最终会得到如下的代码: class Foo { [MyLocalizedDisplayAttribute("MyPropertyNameLocalized")] // not strongly typed string MyProperty {get; set;} } 但是,我失去了强烈的types资源利益,这绝对不是一件好事。 然后我碰到DisplayNameResourceAttribute这可能是我正在寻找。 但它应该是在Microsoft.VisualStudio.Modeling.Design命名空间,我无法find我应该为这个命名空间添加什么参考。 有人知道是否有一个更好的方法来实现DisplayName本地化的更简单的方法? 或者如果有什么方法可以使用微软似乎用于Visual Studio的?
本地化你的ASP.NET MVC应用程序最好的做法是什么? 我想介绍两种情况: 在IIS中处理多种语言的一个应用程序部署 一种语言/应用程序部署。 在第一种情况下,你应该使用某种基于视图的东西,比如〜/ View / EN,〜/ View / FI,〜/ View / SWE或者其他什么东西? 那么第二种情况,通过Web.configconfiguration基于应用程序的configuration,并将这些不同的语言指向不同的URL?
Asp.net-MVC现在允许隐式绑定DateTime对象。 我有一个行动 public ActionResult DoSomething(DateTime startDate) { … } 这成功地将string从ajax调用转换为DateTime。 但是,我们使用date格式dd / MM / yyyy; MVC转换为MM / dd / yyyy。 例如,使用string'09 / 02/2009'提交对操作的调用会导致date时间为'02 / 09/2009 00:00:00',或在本地设置中为9月2日。 为了date格式,我不想推出自己的模型绑定器。 但似乎不必要改变的行动接受一个string,然后使用DateTime.Parse如果MVC是能够做到这一点对我来说。 有什么办法可以改变默认模型联编程序中用于DateTime的date格式吗? 不应该默认模型联编程序使用您的本地化设置吗?