标签: culture

在C#中循环使用不同语言/文化的嵌入式资源

从一个层次了这个问题,这将是(通过环)来存储所有可用的资源和相关的文化,允许特定文化的用户选择的方式是什么?

进一步说明:

假设有三个资源文件:

  • GUILanguage.resx
  • GUILanguage.fr.resx
  • GUILanguage.it.resx

我可以在每个称为一个字符串LanguageName.我如何能够以编程方式循环遍历不同的LanguageName值以列出它们(例如列表框)?

编辑:WinForms项目,嵌入式资源.

c# culture resources localization embedded-resource

7
推荐指数
1
解决办法
4806
查看次数

CultureInfo瑞典语

我想将日期时间转换为瑞典文化.

DateTime.Today.ToString("dd MMMM yyyy");
Run Code Online (Sandbox Code Playgroud)

上面的代码行为给出了2013年12月27日的结果

我想要用瑞典语显示十二月的结果.

c# asp.net culture

7
推荐指数
2
解决办法
1万
查看次数

在asp.net中收到阿拉伯语日期时间错误

我使用ADO断开模式通过填充数据集ds从数据库获取数据.除日期字段外,所有数据都成立

string strDate = ds.Tables[0].Rows[0]["H_DT"].ToString();
Run Code Online (Sandbox Code Playgroud)

抛出异常说:

此日历不支持指定的时间.它应该在04/30/1900 00:00:00(格里高利日)和11/16/2077 23:59:59(格里高利日期)之间.

我试着写这段代码

System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("ar-sa");
System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("ar-sa");
Run Code Online (Sandbox Code Playgroud)

把文化改成阿拉伯语,但没有任何运气.

更新

以下是变量快速监视的屏幕截图

在此输入图像描述

c# culture datetime calendar

7
推荐指数
1
解决办法
4110
查看次数

什么是弦乐文化

只是试图理解 - 我以前从未使用过它.文化如何与ToUpper()/ ToLower()不同?

c# culture internationalization

6
推荐指数
2
解决办法
5335
查看次数

不区分大小写的字符串替换正确使用"ß"<=>"ss"之类的连字

我已经构建了一个小的asp.net表单,可以搜索某些内容并显示结果.我想在搜索结果中突出显示搜索字符串.例:

Query: "p"
Results: a<b>p</b>ple, banana, <b>p</b>lum
Run Code Online (Sandbox Code Playgroud)

我的代码是这样的:

public static string HighlightSubstring(string text, string substring)
{
 var index = text.IndexOf(substring, StringComparison.CurrentCultureIgnoreCase);
 if(index == -1) return HttpUtility.HtmlEncode(text);
 string p0, p1, p2;
 text.SplitAt(index, index + substring.Length, out p0, out p1, out p2);
 return HttpUtility.HtmlEncode(p0) + "<b>" + HttpUtility.HtmlEncode(p1) + "</b>" + HttpUtility.HtmlEncode(p2);
}
Run Code Online (Sandbox Code Playgroud)

我主要是工作,但尝试用例如HighlightSubstring("ß", "ss").这崩溃是因为在德国,"ß"和"ss"被认为是相同IndexOf方法,但它们有不同的长度!

现在,如果有办法找出"文本"中的匹配有多长,那就没关系了.请记住,这个长度可以!= substring.Length.

那么如何找出IndexOf在存在连字和外来语言字符时出现的匹配长度(在这种情况下是连字)?

.net culture encoding localization cultureinfo

6
推荐指数
1
解决办法
352
查看次数

在C#中解析来自不同文化的数字

我正在编写一些代码以将字符串解析为双精度型,但是此字符串是从另一台计算机传递给我的。自然会出现文化可能不同的问题。因此,虽然机器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在转换之前需要了解原始语言并进行更改以匹配?

c# culture

6
推荐指数
1
解决办法
3949
查看次数

我可以从文化代码中获取文本方向吗?

如果我有国家/语言组合的文化代码,是否可以从中找到文本方向.

例如,对于en-US,我如何从中得到文本方向从左到右?从ar-EG开始,我怎么知道文本方向是从右到左?

c# culture cultureinfo hebrew right-to-left

6
推荐指数
1
解决办法
1028
查看次数

SHIFT快捷方式显示为文化"nl-BE"的MAJ,它应该是SHIFT(C#.NET)

经过与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.

那么,我的问题是什么?

  • 对于文化"nl-BE",MAJ是否正常归还?或者它是user32.dll中的错误?
  • 如果Office能够做到正确,那么Infragistics是否也能做到正确呢?
  • Infragistics是否使用正确的user32.dll api调用?

为了完整性,我将粘贴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)

c# culture infragistics localization user32

6
推荐指数
1
解决办法
791
查看次数

如何在XAML中的Xamarin Forms中设置ConverterCulture

我在一个需要显示价格的项目中使用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中设置格式化程序的文化.没有实现我自己的转换器,有没有想解决我的问题?

c# culture xaml converter xamarin

6
推荐指数
0
解决办法
662
查看次数

将语音文化转换为其他语言

除了英国文化,我还有一些文字.例如:泰米尔文化.

如果我不提及文化,将采用默认英语.

如何将文本转换为语音(英语除外)?

代码段:

对于英语:

public static void ConvertTextToVoice()
    {
        SpeechSynthesizer speech = new SpeechSynthesizer();
        speech.Volume = 100;
        speech.Rate = 0;            
        speech.Speak("Welcome to india");
    }
Run Code Online (Sandbox Code Playgroud)

对于其他语言:

public static void ConvertTextToVoice()
{
    SpeechSynthesizer speech = new SpeechSynthesizer();
    speech.Volume = 100;
    speech.Rate = 0;

    //Tamil Text
    string text = "??????? ???? ??????? ????? ???????? ?????? ???? ???? ???";

    PromptBuilder builder = new PromptBuilder(new System.Globalization.CultureInfo("ta-IN"));
    builder.AppendText(text);           
    speech.SpeakAsync(builder);
}
Run Code Online (Sandbox Code Playgroud)

c# culture text-to-speech speech-synthesis

6
推荐指数
1
解决办法
211
查看次数