resx файлы как сделать сайт на 3 языках

Я никогда раньше не пытался использовать файлы resx в проекте MVC, поэтому я заинтересовался этим сейчас, потому что у меня есть требование на 3 языка для моего веб-сайта: глобальный английский и два местных датский и испанский. поэтому я подумал, что это легко сделать, я просто сделаю то, что делал раньше, я сделаю свои собственные файлы xml и просто попрошу браузер переключаться между ними по запросу пользователя и всегда сначала загружаю глобальный язык.

затем я прочитал о resx и о том, как ASP.Net MVC может выбрать датский или испанский язык в зависимости от языка пользователя по умолчанию и всегда возвращаться к английскому, если пользователь не использовал ни один из этих языков. это заставило меня начать читать о том, как Globalize интернационализировать и локализовать мой веб-сайт.

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

@Resources.myString

и каким-то образом он узнает, какой из ресурсов взять, проблема, однако, заключается в том, что intellisense не распознает мои файлы resx как Resources.mystring и в любом случае не принимает их как компилируемую сборку. Короче говоря, я не могу найти или сделать ссылку из файлов resx на страницы просмотра Razor2 или любые другие места в моем коде, поэтому, пожалуйста, кто-нибудь объясните или свяжите учебник для чайников, потому что я явно не понимаю, почему это должно быть так сложно использовать что-то, что должно быть простым.

Спасибо, что прочитали всю мою стену текста, я не умею формулировать себя короткими предложениями на английском языке, поэтому мне жаль, если я кого-то сбиваю с толку относительно моей реальной проблемы.




Ответы (1)


Насколько мне известно, существует несколько способов работы с файлами resx в MVC. Мы решили дать им всем пространство имен и скопировать их в каталог Resources, а затем использовать тот же путь, что и представления MVC. Вот как это выглядит, и убедитесь, что вы установили свойство resx files в соответствии с моей картинкой:

введите здесь описание изображения

Затем вы можете получить доступ к ресурсам следующим образом:

<h1>@ViewResources.Creation.Index.Headline</h1>

Вы можете изменить язык по умолчанию следующим образом: Просто убедитесь, что вы где-то сохранили hte languageCode или получили его по URL-адресу. Лично я предлагаю добавить код языка в URL. пример: www.supertext.ch/en. Если вы перейдете к нижней части страницы, там есть языковые ссылки.

protected void Application_BeginRequest(object sender, EventArgs e)
{                    
    //Dateformats, etc. (not the language)
    Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(languageCode);
    //Language
    Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(languageCodeUI);
}
person Remy    schedule 11.02.2014
comment
Большое спасибо, вы заставили это работать для меня :) вы предоставили мне именно недостающую ссылку в своем ответе: D У меня есть небольшой вопрос, помимо этого, можно ли активно перезаписать настройки местного языка с помощью кнопки выбора языка также в этом наборе- вверх или это просто автоматическое решение? - person Helbo; 12.02.2014
comment
Да, вы можете перезаписать настройку языка. Это происходит на многих страницах. Я обновил свой ответ. - person Remy; 12.02.2014
comment
Большое спасибо за ваши ответы, вы были очень полезны. - person Helbo; 13.02.2014