2016-11-07 6 views
0

наш текущий проект находится в ASP.Net MVC с Razor. Мы используем файлы ResX для нескольких тысяч переводов. В C# и ASP.NET Razor это довольно легко с HTML:Лучший способ использовать C# -Ressources (файлы ResX) в TypScript?

<div>@Ressources.Local.Test</div> 

Теперь, когда я писал JavaScript Я нормально сделал это в пределах cshtml файлов с бритвой, как это:

<script>alert('@Ressources.Local.Test');</script> 

который работает, но кажется немного уродливым ...

Несколько недель назад мы столкнулись с машинописным текстом и, конечно, исключая (почти) весь код javascript для ts-файлов.

Единственное решение, которое мы нашли здесь, чтобы получить RESSOURCES из C# в машинописном через «рубить»:

Мы сделали файл ressources.cshtml, в котором мы просто включить JavaScript переменные:

var ressourceTest = "@Ressource.Local.Test"; 

Загрузите этот ressource.cshtml сначала в нашем _layout.cshtml. Дополнительно, у нас есть собственная личности нужна самопроизведённые declarion для этого переменных, чтобы перейти от JavaScript к машинописи в нашем projectDeclarions.d.ts:

var ressourceTest:string; 

И теперь мы можем использовать Ressource в нашем test.ts машинописи файлов:

alert(ressourceTest); 

Как вы можете видеть, что это работает «взломать» или «обходной путь», но это, кажется, likly нас убить несколько thousend RESSOURCES ... это ручная работа, то сохранить продолжительность и работа высока ...

Любые лучшие идеи?

ответ

0

Я видел несколько хороших идей вокруг этого.

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

Другой вариант - разместить переводы в представлении, чтобы сделать их доступными, но контекстуально. Так что если у вас была кнопка, которую вы используете, чтобы вызвать некоторые AJAX вызов на сервер, и вы должны сказать «Обновление Работали» или «Update Failed» вы могли бы поставить атрибуты инлайн ...

<button ... data-msg-success="Saved OK" data-msg-failed="A problem occurred" /> 

И вы могут заполнить эти атрибуты вашими ресурсами.

+0

Спасибо, последняя идея с рендерингом html не так проста во всех местах, но ваша идея json звучит разумно ... можете ли вы объяснить, как это будет работать немного больше? –

 Смежные вопросы

  • Нет связанных вопросов^_^