Windows phone 7 WP7本地化不起作用

Windows phone 7 WP7本地化不起作用,windows-phone-7,localization,Windows Phone 7,Localization,我正在尝试对我的应用程序进行简单的本地化,使其支持英语(默认)和丹麦语。 我遵循了MS教程,并查看了一些示例,但由于某种原因,当我选择丹麦语作为模拟器语言时,模拟器没有显示丹麦语版本 以下是我所做的: 添加了支持的区域性:dk-dk 将程序集信息更改为默认使用“英语” 已将资源添加到app.xaml: <Application.Resources> <local:LocalizedStrings xmlns:local="clr-namespace:LåneRe

我正在尝试对我的应用程序进行简单的本地化,使其支持英语(默认)和丹麦语。 我遵循了MS教程,并查看了一些示例,但由于某种原因,当我选择丹麦语作为模拟器语言时,模拟器没有显示丹麦语版本

以下是我所做的:

添加了支持的区域性:dk-dk

将程序集信息更改为默认使用“英语”

已将资源添加到app.xaml:

<Application.Resources>
        <local:LocalizedStrings xmlns:local="clr-namespace:LåneRegnskab" x:Key="LocalizedStrings" />
</Application.Resources>
本地化字符串类:

public class LocalizedStrings
{
    public LocalizedStrings()
    {
    }
    private static AppResources localizedResources = new AppResources();
    public AppResources LocalizedResources { get { return localizedResources; } }
}

这一切都适用于英语字符串,但当我使用丹麦语模式时,它们不会改变。我错过了什么(

您的代码没有明显错误。请尝试在
App.xaml.cs
中使用
InitializePhoneApplication
方法中的以下代码强制执行区域性

private void InitializePhoneApplication()
{
    Thread.CurrentThread.CurrentCulture = new CultureInfo("da-DK");
    Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
更新


还要确保ProjectName.csproj文件中的
SupportedCultures
设置为支持两种语言,如下所示:
en;da DK

代码没有明显错误。请在
App.xaml.cs
中使用
InitializePhone应用程序
方法中的以下代码强制使用区域性

private void InitializePhoneApplication()
{
    Thread.CurrentThread.CurrentCulture = new CultureInfo("da-DK");
    Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
更新


还要确保ProjectName.csproj文件中的
SupportedCultures
设置为支持两种语言,如下所示:
en;da DK
您必须更改csproj文件,如下面的示例所示


您必须更改csproj文件,如下面的示例所示


多亏了克劳斯,我解决了我的问题(我似乎犯了所有的错误),但以下是所有对我有用的设置。 我支持英语和西班牙语,并更改模拟器的区域以使其正常工作

.csproj


en;es;
多亏了克劳斯,我解决了我的问题(我似乎犯了所有的错误),但以下是所有适合我的设置。 我支持英语和西班牙语,并更改模拟器的区域以使其正常工作

.csproj


en;es;
我也遇到了同样的问题,我刚刚找到了解决方案。在csproj文件中,节点是默认定义的,但我没有注意到,我在第一行创建了另一个

因此,如果你删除这个(或在这里设置你的文化),它可能会起作用

<SilverlightApplication>true</SilverlightApplication>
<SupportedCultures>
</SupportedCultures>
<XapOutputs>true</XapOutputs>
true
真的

我也遇到了同样的问题,我刚刚找到了解决方案。在csproj文件中,节点是默认定义的,但我没有注意到,我在第一行创建了另一个

因此,如果你删除这个(或在这里设置你的文化),它可能会起作用

<SilverlightApplication>true</SilverlightApplication>
<SupportedCultures>
</SupportedCultures>
<XapOutputs>true</XapOutputs>
true
真的

发布LocalizedStrings类的代码。LocalizedStrings类发布:)您使用的是仿真器还是实际设备?我注意到并非所有设备都可以切换到所有语言。*emulator(模拟是其他东西)发布LocalizedStrings类的代码。LocalizedStrings类发布:)您使用的是模拟器还是实际设备?我注意到并非所有设备都可以切换到所有语言。*emulator(模拟是其他东西)验证输出文件夹中是否存在
da DK
文件夹。嗯,在我的bin->debug and bin->release中有一个DK DK文件夹是的。这里面有一个广告dll:“Microsoft.Advertising.Mobile.resources”。还有其他所有语言的文件夹,都以该文件作为唯一的内容。它意味着包含一个
.appresources.dll
文件。因此,这表明您的资源文件没有正确编译。这也解释了为什么强制区域性无效。请验证资源文件的编译设置是否如下所示:它仍然没有正确编译
AppResources.da DK.resx
。默认(英语)资源已正确编译。验证
AppResources.da DK.Designer.cs
是否为空(它不应该包含任何代码)验证输出文件夹中是否存在
da DK
文件夹。嗯,在我的bin->debug and bin->release中有一个DK DK文件夹是。这里面有一个广告dll:“Microsoft.Advertising.Mobile.resources”。还有其他所有语言的文件夹,都以该文件作为唯一的内容。它意味着包含一个
.appresources.dll
文件。因此,这表明您的资源文件没有正确编译。这也解释了为什么强制区域性无效。请验证资源文件的编译设置是否如下所示:它仍然没有正确编译
AppResources.da DK.resx
。默认(英语)资源已正确编译。验证
AppResources.da DK.Designer.cs
是否为空(它不应该包含任何代码)