嗨我想创建一个自定义日历,这个日历将有自定义月份名称和日期名称
它将包含13个月,每个28天
我需要创建和整个文化还是我可以创建自己的System.Globalization.Calendar实现?
只是试图理解 - 我以前从未使用过它.文化如何与ToUpper()/ ToLower()不同?
我在asp.net mvc视图上有几个隐藏的输入.它们的值包含类型的对象double.我希望它们能够被渲染,InvariantCulture因为它们习惯于被提供给客户端上的api(谷歌地图).就像现在一样,它们以逗号(,)作为小数分隔符进行渲染,而api则希望将点(.)作为小数分隔符.
最好的解决方案是,如果我可以DisplayFormat在模型的属性上的数据注释属性中指定文化,但我认为这不可能:
public class Position
{
[DisplayFormat(DataFormatString="{0:G}, CultureInfo.InvariantCulture")]
public double Latitude;
...
}
Run Code Online (Sandbox Code Playgroud)
我也不能在我的方法中设置CurrentCultureto ,因为屏幕上还有其他值必须在适当的用户文化中.InvariantCultureApplication_Start
那么,有没有办法暂时改变当前的文化,就在我Html.HiddenFor(Model => Model.Latitude)为特定属性做一个之前,然后重置它?
或者还有另一种更好的方法吗?什么是最佳做法?
我可以依赖事实a Task总是在一个线程中执行吗?它可以是任何一种,但对于整个身体应该是相同的,因为我需要Culture正确设置线程.
Task bind = Task.Factory.StartNew(() =>
{
Thread.CurrentThread.CurrentCulture = culture;
// do some asp.net binding stuff with automatic
// date formatting
gridView.DataSource = table;
gridView.DataBind();
}
Run Code Online (Sandbox Code Playgroud)
如果我不能,是否有一个参数左右来获得这种行为?
干杯,马蒂亚斯
我正在编写一些代码以将字符串解析为双精度型,但是此字符串是从另一台计算机传递给我的。自然会出现文化可能不同的问题。因此,虽然机器A可能发送给我:
"0.5"
Run Code Online (Sandbox Code Playgroud)
机器B可能会寄给我
"0,6"
Run Code Online (Sandbox Code Playgroud)
因为它在德国,有着不同的文化。
正确解析这两个输入的最佳方法是什么?有人建议使用CultureInfo.InvariantCulture作为参数,Convert.ToDouble但这不会仅在我生成上述字符串的地方提供帮助,而不是在其他人可以给我发送不同的字符串时提供帮助吗?
我是否认为我Thread.CurrentThread.CurrentCulture在转换之前需要了解原始语言并进行更改以匹配?
我正在使用德语PS版本,我正在尝试使用该命令显示powershell v.3.0的主题
Get-Help about_*
Run Code Online (Sandbox Code Playgroud)
这似乎是列出主题的正确命令.我还使用了更新了PS帮助
Update-Help
Run Code Online (Sandbox Code Playgroud)
CMDlet,以防万一有关主题遗失.无论如何:Get-Help cmdlet处理并返回:什么都没有.使用fl格式化输出或将输出保存到变量没有帮助,根本找不到about主题.但是,通常情况下,通配符似乎有效.运行
get-help get-*
Run Code Online (Sandbox Code Playgroud)
奇迹般有效.有任何想法吗?
我正在用马拉地语开发一个程序.在其中,我想通过获取它们的实际整数值来添加/验证在Marathi Unicode中输入的数字.
例如,在马拉地语中:
如何将此Marathi字符串转换"??"为实际的整数值,即45?
我google了很多,但没有发现任何有用的东西.我尝试使用System.Text.Encoding.Unicode.GetString()获取字符串然后尝试解析,但也失败了.
我只想获得EPi Server网站所有已启用语言的列表(在管理模式下的"管理网站语言"面板中启用),并且最好还能够检索标志图标的路径,当然还有文化名称/ ID.
我正在使用EPiServer 6 R2,所以如果代码适用于该版本,那将是可爱的.把我指向正确的方向也会很棒.
经过与Infragistics的长时间讨论后,看来带有SHIFT的ShortCuts在我的文化"nl-BE"中显示为MAJ.首先,文化"nl-BE"和AZERTY有点奇怪.如果想了解更多,请阅读http://en.wikipedia.org/wiki/AZERTY.重要的是:
其他键是相同的,即使传统上特殊键的名称用英语打印在它们上面.这是因为比利时主要是双语(法语 - 荷兰语)和官方三种语言(第三语言,德语,在东方语言中使用).
所以MAJ印刷为SHIFT.例如,在Office中,带有SHIFT的快捷方式显示为SHIFT.在Infragistics控件中,它们显示为MAJ.这让我们的客户感到沮丧.
因此,在与Infragistics讨论后,他们声称这是一个Windows Api调用,它返回MAJ而不是SHIFT.我从他们那里得到了一个展示行为的示例项目.所以现在我的问题是为什么Windows Api调用不会返回SHIFT,如果它是正常的,那么Office如何才能正确显示它?
获取密钥文本的代码是:
NativeWindowMethods.GetKeyNameText((int)scanCode, sb, 256);
Run Code Online (Sandbox Code Playgroud)
和
class NativeWindowMethods
{
#region MapVirtualKey
[DllImport("user32.dll")]
internal static extern int MapVirtualKey(uint uCode, uint uMapType);
#endregion //MapVirtualKey
#region GetKeyNameText
[DllImport("user32.dll", CharSet = CharSet.Auto)]
internal static extern int GetKeyNameText(
int lParam,
[MarshalAs(UnmanagedType.LPWStr), Out]System.Text.StringBuilder str,
int size);
#endregion //GetKeyNameText
}
Run Code Online (Sandbox Code Playgroud)
如果是Shiftkey,则扫描码为2752512(2a),并返回MAJ.
那么,我的问题是什么?
为了完整性,我将粘贴Utilities类的完整代码.从Form下一次调用完成:
systemLocalizedString = Utilities.GetLocalizedShortcutString(shortcut);
使用快捷键= ShiftF12.调用后,systemLocalizedString等于"MAJ + F12".
更新:在Hans Passant的帮助下,我下载了Microsoft Keyboard Layout Creator并导出了我当前的键盘布局.在.klc文件中没有找到MAJ,只有Shift(例如2a Shift).那么为什么user32.dll会返回MAJ?甚至更奇怪的是,当我复制.klc文件并将其安装为新键盘时,突然user32.dll确实为新安装的键盘返回Shift(虽然它是一个精确的副本).
Utilities.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using …Run Code Online (Sandbox Code Playgroud) 我在一个需要显示价格的项目中使用Xamarin Forms(XAML).要显示我正在使用的格式正确的价格,StringFormat例如:
<Label Text="{Binding Price, StringFormat='{}{0:C}'}"/>
Run Code Online (Sandbox Code Playgroud)
结果取决于应用程序运行的设备的文化(德语:€,美国:$,...).我的目标始终是运用德国文化.根据adrianbanks的回答,这在WPF中是可行的.我尝试使用这种方法
<Label Text="{Binding Price, StringFormat='{}{0:C}', ConverterCulture='de-DE'}"/>
Run Code Online (Sandbox Code Playgroud)
但结果如下XamlParseException:
Xamarin.Forms.Xaml.XamlParseException:无法赋值属性"CultureInfo":属性不存在,或者不可赋值,或者值和属性之间的类型不匹配
似乎Xamarin Forms不提供此功能.我搜索了很多,但没有找到解决方法如何在XAML中设置格式化程序的文化.没有实现我自己的转换器,有没有想解决我的问题?
culture ×10
c# ×9
localization ×3
.net ×2
.net-4.0 ×1
asp.net ×1
asp.net-mvc ×1
calendar ×1
converter ×1
episerver ×1
formatting ×1
infragistics ×1
numbers ×1
powershell ×1
render ×1
task ×1
user32 ×1
xamarin ×1
xaml ×1