У меня есть многоязычный веб-сайт, а просмотр контента (включая разметку) может отличаться от языка к языку. Вот почему я не могу просто локализовать строки и поместить их в ресурсы.Как локализовать структуры HTML-представлений в ASP.NET?
Например, мой взгляд на русском:
<div class="card">
<div class="card-image">
<img src="~/Images/CardHeaders/Business_CreditsSME.jpg" />
</div>
<div class="card-content">
Text
</div>
</div>
Посмотреть на английском языке:
<p>Text</p>
Я вижу два способа локализовать это:
Создать Page.cshtml и Page.en.cshtml и создать настраиваемый метод
LocaleView()
в контроллере, который будет использовать локализованные файлы представлений.- Проблема в том, что виды не всегда отличаются друг от друга. Это означает, что иногда я дублирую разметку.
Скопируйте всю разметку HTML в мои ресурсы так, как есть, и используйте
Html.Raw(Resources.PageView)
.- Это не удобно создавать, изменять или читать HTML, который расположен в ресурсе летит
- Кроме того, мне не нравится
Html.Raw
метод вообще и предпочитают не использовать его в любом месте
Как вы локализуете большие виды разных структур?
только способ, я могу думать о том, чтобы иметь грязный код в контроллере, чтобы иметь корпус коммутатора и вернуть требуемый вид. –