标签: globalization

为全球应用程序设计国际翻译/语言适配器

我将为Node.js(服务器端Javascript)实现这个,但这个问题是关于如何解决这个问题的一般方法.

有许多平台支持国际申请的翻译.

例如,Zend的翻译适配器的工作方式如下:

printf($translate->_("Today is the %1\$s") . "\n", date("d.m.Y"));
Run Code Online (Sandbox Code Playgroud)

Android的系统为每种语言使用strings.xml文件,并使用与Zend相同的概念.

这些适用于大多数西方语言.但是,许多非西方语言需要不同的单词顺序,或者甚至从右到左而不是从左到右的方向读取.

因此,在上述翻译调用中定义的指定顺序对于"外来"语言可能是无效的.

这让我想到了一个问题,如何设计适合任何语言的翻译系统/适配器?

globalization translation internationalization

3
推荐指数
1
解决办法
216
查看次数

.net中的全球化和本地化有什么不同?

我试图找出全球化和本地化之间的基本区别?但找不到一些正确的不同

我参考这个链接

http://msdn.microsoft.com/en-us/library/aa292205(v=vs.71).aspx

如果有人知道正确的不同请在此解释.

为什么他们在VS2010中提供两个不同的文件夹App_GlobalResources和App_LocalResources.

asp.net globalization localization c#-4.0

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

.NET(3.5)使用点而不是冒号格式化时间作为它的IT文化的TimeSeparator?

根据维基百科(并在Dario Solera的回答中证实),在意大利,他们使用冒号格式化时间:

24小时表示法以书写形式使用冒号作为分隔符.示例:14:05.会议记录以两位数字写成; 小时数可以写入或不带前导零.

但是,运行以下代码似乎输出点:

using System.Globalization;

Thread.CurrentThread.CurrentCulture = new CultureInfo("it-IT");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("it-IT");
// Outputs "11.08"
Console.WriteLine(DateTime.Now.ToShortTimeString());

// Outputs "."
Console.WriteLine(new CultureInfo("it-IT").DateTimeFormat.TimeSeparator);
Run Code Online (Sandbox Code Playgroud)

这是一个框架错误吗?什么是"修复"它的最佳方法?TimeSeparator是可设置的 - 我们应该在分配之前覆盖它Thread.CurrentThread.CurrentCulture吗?

.net c# globalization localization cultureinfo

3
推荐指数
1
解决办法
3114
查看次数

为什么DateTimeFormatInfo.GetAllDateTimePatterns在不同的.NET版本中返回不同的结果?

我在当前项目中做了一些全球化工作,我遇到了一个奇怪的行为.我在Windows 7上运行,只安装了英语 - 美国,我的应用程序在.NET 3.5上运行.

给出以下代码段:

var culture = new CultureInfo("zh-CN", true);
var formats = culture.GetAllDateTimePatterns('D');
Run Code Online (Sandbox Code Playgroud)

在.NET 4下,返回以下格式:

    yyyy'?'M'?'d'?'
    yyyy'?'M'?'d'?',dddd 
    dddd,yyyy'?'M'?'d'?'
Run Code Online (Sandbox Code Playgroud)

这是控制面板中的日期和时间格式对话框显示的内容(我的目标).

但是在.NET 3.5(及更早版本)中,返回以下内容:

   yyyy'?'M'?'d'?'
   yyyy-MM-dd
   dddd, yyyy-MM-dd
   dddd, yyyy'?'M'?'d'?'
Run Code Online (Sandbox Code Playgroud)

我去检查了使用EnumDateFormatsExEx(和早期版本)返回了什么值,它与.NET 4的结果相匹配.

差异不会打扰我; 我的问题是为什么结果不同?我认为底层实现是在呼唤EnumDateFormatsExEx或类似,但在我解雇了Ilspy后,我没有看到任何类似的东西.我想显示控制面板中显示的相同列表,所以当格式不同时我感到很惊讶.我认为格式列表将来自操作系统,并且在运行时版本之间没有区别.

c# globalization cultureinfo

3
推荐指数
1
解决办法
509
查看次数

ASP.net MVC中的全球化(每个视图与域的资源文件)

在ASP.net MVC全球化方面,保留资源文件的最佳做法是什么?

例如,如果我们尝试保留域的资源文件,即order.resx,customer.resx等,我们有订单处理系统

或者我们可以尝试保持每个视图的资源文件,即OrderProcessingView.resx,CustomerView.resx等

常用字符串,如"添加","编辑","删除"可以使用common.resx文件处理.

或者还有其他方法来保存资源文件吗?

我们也在使用一些客户端渲染(Jquery模板,Kendo模板).

globalization asp.net-mvc-3

3
推荐指数
1
解决办法
1377
查看次数

Getter/Setter正在崩溃我的代码,但在函数中很好

我想以英国格式返回日期,而不是当前存储的美国格式.

因此,我决定在我班级的值中添加一个getter和setter.

但是,当我使用getter和setter运行代码时,页面无法加载.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

// Globalisation for converting dates from American to British format
using System.Globalization;

/// <summary>
/// Class to hold the summary of an order take from database TOEHEAD
/// </summary>
public class OrderSummary
{

    public string order_number { get; set; }
    public string order_date
    {
        get
        {
            try
            {
                string ukDateTimeFormat = Convert.ToString(DateTime.Parse(this.order_date, CultureInfo.CreateSpecificCulture("en-US")));

                return ukDateTimeFormat;
            }
            catch (FormatException e)
            {
                return "Error";
            }
        }

        set
        {
            this.order_date = value; …
Run Code Online (Sandbox Code Playgroud)

c# globalization performance get set

3
推荐指数
1
解决办法
475
查看次数

ASP.NET应用程序不反映区域设置

我已经在我的区域设置(捷克语,文化cs-CZ)中设置了以下短时间/长时间模式:

  • 短时间:H.mm
  • 好久不见了:H.mm.ss

设置

我正在尝试在C#应用程序中使用这些设置.在以下控制台应用中,一切正常:

使用系统; 使用System.Globalization;

class Program
{
    static void Main()
    {

        Console.WriteLine(CultureInfo.CurrentCulture.Name);
        Console.WriteLine(CultureInfo.CurrentCulture.DateTimeFormat.LongTimePattern);

        Console.ReadLine();
    }
}
Run Code Online (Sandbox Code Playgroud)

正如我想的那样,输出如下:

cs-CZ
H.mm.ss
Run Code Online (Sandbox Code Playgroud)

我创建了ASP.NET应用程序,令我惊讶的是,它并没有反映出这一点.

最小的例子:

<%@ Page Language="C#" %>

<%= System.Globalization.CultureInfo.CurrentCulture.Name %><br />
<%= System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.LongTimePattern %>
Run Code Online (Sandbox Code Playgroud)

输出:

cs-CZ
H:mm:ss
Run Code Online (Sandbox Code Playgroud)

我试过重启,.NET2.0,.NET4.0,仍然没有效果.

注意 - 这个问题是bug的一部分,我们忘记在DateTime.ToString()中包含InvariantCulture,然后由JSON反序列化器解析.(有这个问题的人有一些不同的时间格式分隔符).

解决重新创建CultureInfo的问题不是我正在寻找的问题,我只是想看看原因,因为我无法以任何方式重现问题.

.net asp.net globalization regional-settings

3
推荐指数
1
解决办法
3540
查看次数

全球化C#:百分比数据格式:

百分比数据的格式化方式也是一部分CultureInfo吗?通过格式化,我的意思是,是否将其显示为47.3或0.473等.

我的实际问题是,对于DE语言,我必须使用47.3%表示法,而其他人使用0.473,所以我看这些东西是否也取决于文化,就像用于小数点的符号一样.

c# globalization

3
推荐指数
1
解决办法
773
查看次数

全球化.net将字符串转换为double

我有这样的字符串,我想将其转换为双倍.

string x = "65.50";
double y = Convert.ToDouble(x);
Run Code Online (Sandbox Code Playgroud)

但结果是6550.0

我希望它是65.50.

我正在使用ASP.NET和C#.我认为这是全球化的问题.

这是我的问题抱歉(:

c# asp.net globalization

3
推荐指数
1
解决办法
2536
查看次数

为什么IIS7 Invariant Culture默认为en-US?

我们刚刚设置了一个新的Windows 2008 R2服务器,当它被设置(包括IIS)时,文化设置设置为英语("美国").然后他们根据其他服务器改为英语("英国").没有其他设置被更改.

IIS设置尚未更改,Web服务中没有设置文化的位置,我还检查了machine.config和web.config - 在所有级别.Net全球化设置为在新旧服务器上保持不变.

但是在新的2008R2服务器中,Threading.Thread.CurrentThread.[CurrentUICulture/CurrentCulture].Name是:

UI Culture = en-US (1033)
Culture = en-US (1033)
Run Code Online (Sandbox Code Playgroud)

在旧服务器(2008年,而不是R2)中,它是:

UI Culture = en-US (1033)
Culture = en-GB (2057)  
Run Code Online (Sandbox Code Playgroud)

我们有一些旧的遗留代码,要求默认为en-GB,我需要以与旧服务器相同的方式实现,但无法弄清楚为什么这是默认为en-US而不是en-GB.

我已经检查了这个答案/sf/answers/779473551/,但它没有帮助.(我意识到我可以强迫新服务器这样做).

那么为什么文化违约到了美国呢?

.net globalization iis-7

3
推荐指数
1
解决办法
2686
查看次数