сообщение на многоязычном сайте - PullRequest
2 голосов
/ 24 августа 2011

Я использую файлы ресурсов для отображения html-контента (например, названий меток) на моем многоязычном веб-сайте. Файлы ресурсов различаются для разных стран. Веб-сайт построен на Asp.Net MVC3.

Я показываю предупреждение javascript, сообщение которого выбирается из файла ресурсов, как показано ниже: предупреждение ( '@ Resources.Areas.Admin.Views.Program.Local.Create.msgDate3'); Теперь в файле ресурсов для msgDate3 у меня есть текст на французском языке "La fecha de inicio deberá ser menor que la fecha de término" Это оповещение на веб-сайте отображается как «La fecha de inicio deberá ser menor que la fecha de término», где «á» и «é» не отображаются должным образом. Как отобразить эти специальные символы?

У меня также есть данные на других языках, где подобные символы возникают с этими символами. Как их отобразить?

EDIT: -

(В моем приложении английские файлы ресурсов называются «cshtmlfilename.resx», например, create.resx, а другие файлы ресурсов культуры называются «cshtmlfilename.culturename.resx», например, create.es-MX.resx)

Я обнаружил, что код javascript моей страницы разбивается на предупреждения, которые я разместил на странице в формате alert('@Html.Raw(Resources.Areas.Admin.Views.Program.Local.Create.msgDate2)'); где «Create.msgDate2» относится к файлу ресурса ключ Create.resx msgDate2. MSG перерыв в Firebug появляется как `

неопределенный строковый литерал [Прервать эту ошибку] ​​предупреждение (ควร จะ ลง วัน ที่ ที่ เริ่ม ก่อน วัน สุดท้าย ของ สิ้นสุด สิ้นสุด (это сообщение, которое я получаю за Таиланд (th-th) когда я изменяю перевод для msgDate2, тогда скрипт работает нормально. Я уверен, что возникает некоторая проблема с символами этого языка, которые заставляют JavaScript останавливаться. Какие-либо решения для этого ??

Ответы [ 2 ]

1 голос
/ 24 августа 2011

Используйте Html.Raw, чтобы избежать кодирования строки:

alert('@Html.Raw(Resources.Areas.Admin.Views.Program.Local.Create.msgDate3)');

Htmlhelpers, например Html.LabelFor (..), возвращают IHtmlString, которые не закодированы как обычные строки в представлении, поэтому вы не используетепроблем с ярлыками.

0 голосов
/ 24 августа 2011

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

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...