У меня есть код в моем проекте, который не является частью моего углового приложения. Этот код отображается в шаблонах ngInclude, используя <script type="text/x-jquery-tmpl"...
и по существу является просто шаблоном, который динамически используется моим угловым приложением.
Я хочу, чтобы иметь возможность переводить эти шаблоны. Есть ли в любом случае я могу вызвать службу $ translate с помощью html-шаблона и некоторые переменные для перевода, и он может вернуть мне переведенный шаблон в виде строки, которую я могу использовать в своем приложении?
Я просмотрел документацию api и не нашел ничего подходящего.
Благодарю!
Я думаю, вы можете загрузить свой переводный шаблон через Ajax и получить исходный ответ. Этот ответ должен быть строкой с содержимым документа.
После этого вам просто нужно перевести эту строку и ввести ее в свой документ как script type="text/ng-template"
.
Он должен выглядеть так:
<script type="text/ng-template" id="bar.html">
// your content should be injected here
</script>
Теперь вам просто нужно называть его обычным шаблоном для вашего маршрута, указывая маршрут на bar.html
.
Что-то вроде
$routeProvider.
when("/foo",{ controller: "MyController", templateUrl: "bar.html"});
Другой способ - создать директиву для выполнения этой работы. Возможно, расширьте директиву <script type="text/ng-template"
позволяющую ему получать переводный URL-адрес документа и перевод его.
Что-то вроде:
<script type="text/ng-template" id="foo.html" doc-url="translatableDoc.html" attr-language="English" />