Skip to content
This repository has been archived by the owner on Jan 29, 2024. It is now read-only.

Introducing the JSON language package through `angular-translate-loader-static-files', several page refresh strikes #1870

Open
huangmeixiang opened this issue Jan 11, 2019 · 0 comments

Comments

@huangmeixiang
Copy link

Subject of the issue

Describe your issue here.

Your environment

  • version of angular-translate :-v2.18.1
  • version of angular: v1.5.11
  • which browser and its version:google

Steps to reproduce

I refreshed my browser and the page translation was not updated immediately. I use angular-translate-loader-static-files to introduce the JSON language package. The page is to create filters to internationalize the content of Html pages. Here is my code.
index.html:

<script src="resource/angular-translate/angular-translate.js?v=3a7e434f" type="text/javascript"></script>
    <script src="resource/angular-translate-loader-static-files/angular-translate-loader-static-files.js?v=eee20da7" type="text/javascript"></script>

app.js:

 angular.module('admin', ['pascalprecht.translate'])
    .config(['$translateProvider',function($translateProvider){
        let version = za.config.version || (new Date()).getTime();
        var _domain= za.config.template_url;
        var lang = LANG || 'cn';
        console.log("lang..i8n ",lang);
        $translateProvider.preferredLanguage(lang);
        $translateProvider.useStaticFilesLoader({
            prefix: `${_domain}/i18n/`,
            suffix: '.json' + '?v=' + version
        });
       
        $translateProvider.useSanitizeValueStrategy('escape');
    }]);

TranslateFilter.js:

(function () {
    "use strict";

    try {
        angular.module('admin');
    } catch (e) {
        angular.module('admin', []);
    }

    angular.module('admin')
        .filter('Translate', ['$translate', ($translate) => {
            console.log("Translate...")
            return (key) => {
                var arrEntities={'lt':'<','gt':'>','nbsp':' ','amp':'&','quot':'"'};

                if(key){

                    return $translate.instant(key).replace(/&(lt|gt|nbsp|amp|quot);/ig,function(all,t){return arrEntities[t];});
                    
                }
            };
        }]);


}).call();

error.html:

<div class="console-message-dialog"  id="timeoutDialog">
    <div class="modal-header">
        <h5 class="modal-title" id="modal-title">{{'ErrorMessage' | Translate}}</h5>
    </div>
    <div class="modal-body clearfix" id="modal-body">
        <div class="col-sm-1 text-center">
            <span class="text-size-32 fa fa-times-circle text-warning"></span>
        </div>
        <div class="col-sm-11 breakall">
            <p>{{'SessionTimedOut' | Translate}},{{'Please' | Translate}}<a href="{{vm.loginUrl}}">{{'ReLogin' | Translate}}</a>。</p>
        </div>
    </div>
    <div class="modal-footer">
        <button class="btn console-btn btn-primary" type="button" ng-click="vm.confirm()" ng-keypress="vm.confirmKey()">{{'Sure' | Translate}}</button>
    </div>
</div>


Tell us how to reproduce this issue. Please provide a working demo, you can use this template as a base.

Expected behaviour

Tell us what should happen

Actual behaviour

Tell us what happens instead

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant