如何在ASP.NET Web应用程序项目中使用它们?有什么区别?
非常感谢
asp.net localization vs-web-application-project app-globalresources
我即将为我的MVC3 Web应用程序实现本地化.通过大量的方式搜索我的方式,我不确定实现这个的方式.我发现如何做到这一点:
我找到的第一个选项是使用App_GlobalResources和ViewData以及使用Map Routing进行文化选择.(链接)
其次是在我的项目中创建一个单独的Resources文件夹,并将其构建为Model和View文件夹.然后在这些文件夹中创建资源文件.使用这些资源字符串就像使用Viewbag一样.然后编辑Global.asax以处理文化变化并创建部分视图以允许更改文化.执行此操作的说明非常彻底,因此这可能是最好的选择.(链接)
第三是使用DisplayAttribute和resx文件.这个有点朦胧,我找不到那种信息,这样我才能理解这实际是如何实现的以及它的限制.(链接)
第四是创建一个自定义类来处理资源.这看起来非常花哨,易于实现和使用,但如果它确实有效,则没有找到真正的信息.(链接)
然后我发现了一条警告使用App_GlobalResouces和App_LocalResources的帖子.(链接)
在经历了可能的本地化方式之后.我找不到一种得到普遍认可或接受的方式.这让我思考,其中哪些,或者一些我没有找到,将是在ASP.NET MVC3中实现本地化的最佳方式?
globalization localization internationalization asp.net-mvc-3
我在Chrome上运行的Web应用程序上工作,我输入了类型number.在我的语言环境中,逗号用于十进制数字,空格用于千位分隔(不那么重要),但是当我将这些字符输入到数字字段中时,它们被简单地删除,有效地增加了一百个金额.
我已经在浏览器设置和页面上设置了语言,但我仍然需要使用句点作为小数.有什么办法可以配置字段来接受逗号吗?
或者,我将不得不使用javascript解决这个问题.我想我可以处理keydown事件并在用户输入时将逗号更改为句点,但这不会给用户带来很好的体验,是吗?那么如何在我的代码中以最小的占用空间实现这一目标呢?
是否有可能在没有Lint抱怨MissingTranslation的单独资源文件中翻译某些字符串,而不是全部?
例如:我的应用程序的字符串都在res/values/strings.xml中.其中一个字符串是
<string name="postal_code">Postal Code</string>
由于"邮政编码"在美国通常被称为"邮政编码",我想在内容中添加另一个资源res/values-en-rUS/strings.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="postal_code">Zip Code</string>
</resources>
Run Code Online (Sandbox Code Playgroud)
但是,Lint在values/strings.xml中抱怨其他字符串,但在values-en-rUS/strings.xml中没有
我意识到你可以通过tools:ignore在values/strings.xml中指定来抑制警告.但这是不可取的,因为Lint警告在翻译成另一种语言时实际上很有用.
相反,是否可以在values-en-rUS/strings.xml文件中禁止警告,如在查找缺少的翻译时告诉Lint不要将该文件用作标准?
我的百分比被默认的java.text.MessageFormat函数截断,如何格式化百分比而不会丢失精度?
例:
String expectedResult = "12.5%";
double fraction = 0.125;
String actualResult = MessageFormat.format("{0,number,percent}", fraction);
assert expectedResult.equals(actualResult) : actualResult +" should be formatted as "+expectedResult;
Run Code Online (Sandbox Code Playgroud) 我在学习代码测试时遇到了"土耳其测试"这个词.我真的不知道这意味着什么.
什么是土耳其测试?为什么这么称呼?
我有一个WinForms应用程序,我想将其翻译成多种语言.但是,我没有任何本地化WinForms应用程序的经验,我发现有关此主题的非常矛盾的信息.
基本上,我想要的是:
我见过的大多数解决方案要么每个表单都有一个.resx文件和/或外部附属程序集.
我必须自己动手吗?或者框架中有什么东西吗?
.net Framework 3.5 SP1如果重要的话.
编辑:在大多数情况下,Visual Studio已经提供了我想要的支持,但有两个问题.当我将Form.Localizable设置为true时,我有这个很好的设计器支持,但是这会为每个表单生成一个resx.在InitializeComponent中手动覆盖它的想法失败了,因为它是经常被覆盖的设计者编写的代码.从理论上讲,我只想a)覆盖ComponentResourceManager的创建,将其指向我的全局resx,b)将对ApplyResources的调用更改为将CultureInfo作为第三个参数的重载.
好像我必须在我的构造函数中添加一个函数调用,该函数调用在InitializeComponent()之后调用并覆盖它的行为.这似乎非常低效,但Visual Studio在警告触摸InitializeComponent时是正确的.目前,我确实正在推出自己的WinForms本地化框架......
我在数据库中有两个nvarchar字段来存储DataType和DefaultValue,我有一个DataType Double,值为65.89875英文格式.
现在我希望用户按照所选的浏览器语言格式查看值(英语中的65.89875应显示为德语中的65,89875).现在,如果用户从德语格式编辑为65,89875(英语为65.89875),而英语浏览器中的其他用户视图则为6589875.
发生这种情况是因为在数据库中它在nvarchar列中存储为65,89875,并且在使用英语文化转换时,它变为6589875,因为它将其视为,分隔符,它是德语的十进制运算符.
如何让这个适用于所有浏览器?
我在应用开发中使用Android Studio.我想通过导出/导入Android语言资源(strings.xml)到Excel文件(xlsx)来翻译字符串.最好的方法是什么?
localization ×10
.net ×3
c# ×3
android ×2
android-lint ×1
asp.net ×1
enums ×1
excel ×1
html5 ×1
java ×1
javascript ×1
lint ×1
testing ×1
text ×1
translation ×1
turkey-test ×1
winforms ×1