标签: culture

不区分大小写的字符串替换正确使用"ß"<=>"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
查看次数

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

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

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

c# culture cultureinfo hebrew right-to-left

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

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

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

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

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

代码段:

对于英语:

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
查看次数

如何在Android EditText中强制英文键盘

我知道如何强制数字,文本等。但是如果我的数据库字段只能接受英语字符,我是否有标志或IME选项可以强迫EditText只接受某些语言,例如英语?当然我可以检查输入错误并通知用户,但这并不完全是用户友好的...

也可以在EditText上实现我自己的过滤器,但是我不确定这是否会迫使键盘布局本身使用我需要的语言。

任何的想法 ?

keyboard culture android

5
推荐指数
3
解决办法
5771
查看次数

无需使用代码即可更改Windows区域设置/区域性

这应该很简单,也许是,但是我似乎找不到这个问题的答案...

我正在使用Visual Studio 2008开发C#应用程序,并且该应用程序支持多种不同的语言。在开发机上测试不同的语言很简单(例如,临时添加Thread.CurrentThread.CurrentUICulture = new CultureInfo("sv")到应用程序中将让我测试瑞典语翻译),但是如何在不使用代码的情况下在测试机上更改语言环境/文化?我想使用以下步骤进行测试:

  1. 在测试机(英文版)上安装Windows。
  2. 在测试机上安装应用程序。
  3. 使用英语运行测试。
  4. 将测试机器上的区域设置/文化更改为瑞典语。
  5. 使用瑞典语重复测试。
  6. 重复市场部门可能想到的每种语言;)

windows culture locale

5
推荐指数
1
解决办法
5319
查看次数

为整个解决方案设置当前文化

我正在尝试在具有多个项目和线程的解决方案中支持多种语言.

我有2个资源文件,一个用英文字符串,一个用法文字符串.

我将当前的文化设置如下:

Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(isEnglish ? "en-US" : "fr-CA");
Run Code Online (Sandbox Code Playgroud)

有没有办法在全局范围内为整个解决方案设置当前文化,或者我是否必须为需要访问字符串的每个线程执行此操作?

c# multilingual culture

5
推荐指数
2
解决办法
5992
查看次数

CultureInfo(来自同一文化)的实例基于OS的变化

我有一个写下这样日期的网站:

CultureInfo cultureInfo = CultureInfo.GetCultures(CultureTypes.AllCultures).FirstOrDefault(c => string.Equals(c.TwoLetterISOLanguageName, MvcApplication.Language));
return string.Concat(date.Day, ".", cultureInfo.DateTimeFormat.GetAbbreviatedMonthName(date.Month));
Run Code Online (Sandbox Code Playgroud)

在这两个我的电脑(Windows 7的Service Pack 1起,西班牙文化)和服务器(Windows Server 2012中,英文化)的MvcApplication.Languagees让我从列表中得到文化是:es-ES.

我希望他们都写相同的字符串(他们有不同的文化,但我没有使用CurrentCulture).但结果是abr在我的电脑和Abr.服务器中.

我试过这个与MvcApplication.Language使用LinqPAD隔离但它仍然不同.我已经打印了各种计算机的数组,AbbreviatedDayNames并且AbbreviatedMonthNames它们各不相同.

我做错了什么或这是预期的行为?如何使其完全独立于Windows /用户文化?

c# asp.net-mvc culture cultureinfo datetime-format

5
推荐指数
1
解决办法
373
查看次数

在MVC,Asp.net的波斯日历

我在MVC中使用DateTime变量,我想显示波斯日历

@Html.EditorFor(x=> x.ProductionDate)
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

javascript asp.net-mvc culture calendar persian

5
推荐指数
1
解决办法
3929
查看次数

在不更改Windows区域设置的情况下更改应用程序的区域设置

我有一个有趣的情况,其中语言环境设置与我的C#应用​​程序混乱,因为我没有意识到像Double.Parse这样的方法不会将"1000"转换为1000,而是由于编号格式不同而做了一些意外的事情.

我的问题的一个解决方案是使用类似的东西double d = double.parse( "1000", new CultureInfo("en-US"));.目前,我没有通过CultureInfo.但是,我不想在整个代码中进行此更改,而是想知道在启动时是否可能影响我的应用程序的区域设置.

在MSDN上发现了一篇文章说我可以使用以下代码实现这一目的:

using System.Threading;
using System.Globalization;
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
Run Code Online (Sandbox Code Playgroud)

但它没有说明从主线程产生的工作线程是否也会继承父文化.

我认为情况并非如此,因为在.NET 4.5中显然有一个 CultureInfo.DefaultThreadCurrentCulture属性为app域中的所有线程指定了文化,但在.NET 4.0中没有这样的东西.

有人可以为这个区域设置问题推荐一个很好的解决方案

c# culture locale .net-4.0

5
推荐指数
1
解决办法
2786
查看次数

使用URL处理器正确格式化规范URL结构

编辑:你能更仔细地阅读我的问题吗?这个问题具体而且没有重复,如前所述.显然我在发帖前看过这个问题.


在这个来自文档的演示代码中,lang参数之后的片段将是静态的.所以,用英语/en/about,例如葡萄牙语/pt/about.好吧,应该是正确的/pt/sobre.

有关使用URL处理器的正确方法的任何想法?

from flask import Flask, g

app = Flask(__name__)

@app.url_defaults
def add_language_code(endpoint, values):
    if 'lang_code' in values or not g.lang_code:
        return
    if app.url_map.is_endpoint_expecting(endpoint, 'lang_code'):
        values['lang_code'] = g.lang_code

@app.url_value_preprocessor
def pull_lang_code(endpoint, values):
    g.lang_code = values.pop('lang_code', None)

@app.route('/<lang_code>/')
def index():
    ...

@app.route('/<lang_code>/about')
def about():
Run Code Online (Sandbox Code Playgroud)

python culture internationalization flask

5
推荐指数
1
解决办法
583
查看次数