/ / angularjs: gettext no funciona en ngSwitch - angularjs, gettext, ng-switch, angular-gettext

angularjs: gettext no funciona en ngSwitch - angularjs, gettext, ng-switch, angular-gettext

Estoy tratando de usar gettext en combinación con ngSwithc, de la siguiente manera:

<ANY ng-switch="expression">
<ANY ng-switch-when="matchValue1" translate>...</ANY>
<ANY ng-switch-when="matchValue2" translate>...</ANY>
<ANY ng-switch-default translate>...</ANY>
</ANY>

aquí Es un jsfiddle demostrando el problema. El error que recibo es

Error: [$compile:multidir] Multiple directives [ngSwitchWhen, translate] asking for transclusion on: <div ng-switch-when="opt0" translate="">

¿Alguna sugerencia de cómo puedo usar gettext en combinación con ngSwitch?

Respuestas

3 para la respuesta № 1

Arreglo simple es mover translate atribuir a otra etiqueta dentro de la switch etiquetas


1 para la respuesta № 2

He resuelto esto de una manera ligeramente diferente haciendo uso de un servicio de traducción y tal.

<div>
<select class="form-control" id="selectLocale" ng-model="selectedLocale"
ng-options="locale as translate(locale.name) for locale in locales">
</select>
</div>

Esto me permitió agregar una función en el $ scope para obtener la cadena traducida llamando

$scope.translate = function(str) {
return LanguageService.getTranslatedString(str);
};

Ahora, cada vez que la selección se itera a través de la matriz, llamará a esta función para traducir la cadena por usted. Para obtener más información sobre la etiqueta de selección, echa un vistazo a un AngularJS: API: directiva select en la documentación.

Por favor visite mi entrada de blog Fragmentos de un texto de texto angular Para más información en profundidad.