WP7 локализация не работает - PullRequest
1 голос
/ 01 октября 2011

Я пытаюсь выполнить простую локализацию своего приложения, чтобы оно поддерживало английский (по умолчанию) и датский языки.Я следовал учебному пособию по MS и посмотрел некоторые примеры, но по какой-то причине симулятор не показывает версию на датском, когда я выбираю датский язык в качестве языка симулятора.

Вот что я сделал:

Добавлена ​​поддерживаемая культура: dk-DK;

Изменена информация о сборке, чтобы по умолчанию использовался английский язык.

Добавлен ресурс в app.xaml:

<Application.Resources>
        <local:LocalizedStrings xmlns:local="clr-namespace:LåneRegnskab" x:Key="LocalizedStrings" />
</Application.Resources>

Добавлены «AppResources.resx» и «AppResources.dk-DK.resx» для проецирования со строками.

Чтобы использовать строки, которые я пишу:

"{Binding Path=LocalizedResources.Title, Source={StaticResource LocalizedStrings}}" 

Класс LocalizedStrings:

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

Все это работает для английских строк, но они не меняются, когда я 'м в датском режиме.Что мне здесь не хватает?:(

Ответы [ 4 ]

4 голосов
/ 01 октября 2011

Ничего очевидного не так с вашим кодом. Попробуйте принудительно изменить культуру в App.xaml.cs с помощью следующего кода в методе InitializePhoneApplication.

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

Обновление

Также убедитесь, что SupportedCultures в вашем файле ProjectName.csproj поддерживает оба языка, например: <SupportedCultures>en;da-DK</SupportedCultures>

1 голос
/ 28 апреля 2012

Благодаря Клаусу я решил свои проблемы (я, кажется, сделал все ошибки, добравшись туда), но вот все настройки, которые работают для меня. Я поддерживаю английский и испанский языки и меняю регион эмулятора, чтобы он работал.

В .csproj

<SupportedCultures>en;es;</SupportedCultures> <- я слишком конкретизировал язык здесь </p>

File names

У меня также было AppResources-es.resx <- Вместо .es </p>

В моем GamePage.xaml Binding

Я сделал здесь ошибку, имея LocalisedStrings как в источнике, так и в Пути.

В App.xaml Я не добавил встроенное пространство имен, но в остальном тоже самое.

App.xaml

Надеюсь, это ошибка в одном из этих шагов, как это было в моем случае.

0 голосов
/ 19 августа 2012

Я боролся с той же проблемой, и я только что нашел решение. В файле csproj узел определен по умолчанию, но я этого не заметил и создал еще один в первых строках ...

Так что, если вы удалите это (или установите здесь свои культуры), это, вероятно, сработает.

<SilverlightApplication>true</SilverlightApplication>
<SupportedCultures>
</SupportedCultures>
<XapOutputs>true</XapOutputs>
0 голосов
/ 28 февраля 2012

Вы должны изменить файл csproj, как в примере ниже

http://msdn.microsoft.com/en-us/library/dd941931%28v=vs.95%29.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...