0

J'ai besoin de traduire mon HTML dans différentes langues en fonction des préférences de l'utilisateur. Pour cela, j'utilise la méthode de traduction Angular JS. L'exemple lorsque j'écris dans le bloc-notes et enregistré sous ".html" fonctionne correctement. Mais lorsque j'ai collé le même code dans ma page Salesforce Visualforce, son comportement change.ie. Lorsque je clique sur le bouton "IT" pour traduire le contenu en "Italics", le contenu traduit en italique mais en quelques secondes le contenu retourne à sa langue préférée "EN". J'ai donné ci-dessous ma capture d'écran de la sortie.Angualr JS traduction ne fonctionne pas correctement à l'intérieur de la page Visualforce

enter image description here

J'ai donné mon code ci-dessous, peut-on dire ce qui ne va pas dans ce domaine.

<!DOCTYPE html> 
<html ng-app="app"> 
<head> 
</head> 
<body> 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script> 
<script src="https://cdn.rawgit.com/angular-translate/bower-angular-translate/2.5.2/angular-translate.js"></script> 
<script> 
// Code goes here 
var app = angular.module('app', ['pascalprecht.translate']); 

app.config(['$translateProvider', 
function($translateProvider) { 

$translateProvider.translations('it', { 
    'Purchase order': "Ordine di acquisto ", 
    'Number:': "Numero:", 
    'Customer data': "Dati Cliente", 
    'Surname/Company':"Cognome/Società", 
    'Name':"Nome", 
    'Piazza way':"Via/Piazza", 
    'City':"Città", 
    'VAT tax code':"Codice Fiscale/Partita IVA", 
    'Phone':"Telefono", 
    'E-Mail':"E-Mail", 
    'CAP':"CAP" 


}); 
$translateProvider.preferredLanguage("en"); 
} 
]); 

app.controller('AppController', function ($translate) { 
// this.browser = navigator.userAgent; 
this.useLang = function (lang) { 
$translate.use(lang); 
} 
}); 
</script> 


<div ng-controller="AppController as app"> 
<h3 translate>  Purchase order </h3> 
<p translate>Number:</p> 
<h3 translate>Customer data</h3> 
<p><span translate>Surname/Company</span>_________</p> 
<p> <span translate>Name</span>__________</p> 
<p><span translate>Piazza way</span>____________</p> 
<p><span translate>CAP</span>_______<span translate>City</span>______</p> 
<p><span translate>VAT tax code</span>__________</p> 
<p><span translate>Phone</span>____________</p> 
<p><span translate>E-Mail</span>_________</p> 

<button ng-click="app.useLang('it')">IT</button> 
<button ng-click="app.useLang('en')">EN</button> 

</div> 
</body> 
</html> 
+0

Lorsque j'exécute ce code tel qu'il est dans un extrait ou dans un plunker, cela fonctionne très bien, comme si vous aviez un autre code qui déclenche le retour à l'anglais dans la boucle angulaire. Mettez un peu de débogage autour de votre code de langue préféré dans votre application complète. –

+0

Oaky vérifiera – Aruna

Répondre

0

Après avoir parcouru les solutions fournies dans les forums de développeurs, j'ai finalement trouvé la solution à mon problème. En fait, la raison derrière mon contenu qui revient à "anglais" de "italique" est "actualisation de la page". Pour arrêter la mise à jour de la page, je dois définir le type <button> comme "bouton".
-à-dire <button type="button">

changement de code

<button type="button" ng-click="app.useLang('it')">IT</button> <button type="button" ng-click="app.useLang('en')">EN</button> Je l'ai fait le changement dans mon code et arrêté la page de rafraîchissement, ce qui a donné mon résultat attendu.

0

essayer cette

{{ 'variable_name' | Traduire}}

+0

Votre solution n'affiche rien – Aruna

+0

essayer

{{}} translations.variablename

immanuelRocha

+0

ne fonctionne pas .... – Aruna