Перевести код, который находится под углом, с angular-translate

0

У меня есть код в моем проекте, который не является частью моего углового приложения. Этот код отображается в шаблонах ngInclude, используя <script type="text/x-jquery-tmpl"... и по существу является просто шаблоном, который динамически используется моим угловым приложением.

Я хочу, чтобы иметь возможность переводить эти шаблоны. Есть ли в любом случае я могу вызвать службу $ translate с помощью html-шаблона и некоторые переменные для перевода, и он может вернуть мне переведенный шаблон в виде строки, которую я могу использовать в своем приложении?

Я просмотрел документацию api и не нашел ничего подходящего.

Благодарю!

Теги:
angular-translate

1 ответ

0

Я думаю, вы можете загрузить свой переводный шаблон через 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" />
  • 0
    Шаблон в вопросах не отформатирован как угловой шаблон. Поэтому я не уверен, что этот подход будет работать: - /
  • 0
    Когда вы переводите строку, формат не имеет значения. Для JS это все еще является строкой. Если вам нужно перевести только некоторые части документа, вы можете использовать регулярное выражение, чтобы найти и заменить то, что и где вы хотите.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню