【问题标题】:Possible to use one resource file with multiple languages?可以使用多种语言的一个资源文件吗?
【发布时间】:2013-06-11 02:54:54
【问题描述】:

我有一个 .net 4.0 网站,我们有 2 个副本在运行。一个用于美国用户,另一个用于 AU 用户。代码基本相同,唯一的区别是这里或那里引用美国和澳大利亚的一些文字和措辞。现在我有两个非常愚蠢的网站副本。所以我想只保留一份副本,并将所有这些区域文本更改放在一个资源文件中。

是否有可能只有一个资源文件包含多种“语言”,还是我需要创建一个 Resource.US.resx 和一个 Resource.AU.resx 文件?另外,如果我确实创建了两个文件,我如何告诉 .net 在每个站点中使用哪个文件?我假设在 web.config 全球化中 uiCulture &culture='en-AU' 或 en-US 会告诉 .net 使用这两个文件中的哪一个?

【问题讨论】:

    标签: asp.net c#-4.0 localization


    【解决方案1】:

    是的,你是对的,你可以使用 Resource.US.resx 和一个 Resource.AU.resx 文件并在 web.config 中告诉全球化 uiCulture &culture='en-AU' 或 en-US

    在代码中:

        string culturePref = [Your setting from web-config]; // "en-US" or "en-EU"
        try
        {
            Thread.CurrentThread.CurrentCulture =
                CultureInfo.CreateSpecificCulture(culturePref);
    
        }
        catch
        {
            Thread.CurrentThread.CurrentCulture =
                new CultureInfo("en-US");
        }
        Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
    

    【讨论】:

    • 谢谢 - 任何方式只使用一个文件还是我必须为每个区域使用单独的文件?
    • 您应该为每个区域使用单独的文件
    • 这在后面的代码中是如何工作的?理想情况下,我想要一个名为 Resource.en-us.resx 和 Resource.en-au.resx 的资源文件,但如果我这样做,我必须指定在代码中使用哪个资源文件,这意味着我必须拥有2 个代码隐藏文件,它破坏了使用资源文件的目的。我可以有 2 个名为 Resource.resx 的资源文件,然后将正确的副本放入每个网站。但我宁愿拥有 2 个不同名称的文件,并且能够使用相同的代码从每个文件中读取。
    • nm - 看起来需要有一个 Filename.resx 的默认文件,然后我可以添加任何名为 Filename.culture.resx 的文化特定文件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多