2016-08-11 2 views
0

현재 정적 파일 로더와 함께 각도 변환을 사용하고 있습니다. 현재 적어도 3 개의 언어를 구현 중입니다. 그러나 일반적으로 언어 파일을로드하려고 할 때 언어 파일을로드하는 데 시간이 오래 걸리는 경우 뷰 자체에 비해 시간이 오래 걸리는 것으로 나타났습니다. 이로 인해 부분적으로 번역 된 UI가 생성됩니다. . 화면에있는 대부분의 항목은 번역되지 않은 상태로 유지되지만 특정 항목은 그대로 유지됩니다.각진 번역 - 다국어 - 정적 파일 - 경쟁 조건?

나는 변경없이 다음을 시도했다 :

  • $ translateProvider를 구성 할 때 (사실) forceAsyncRefresh 설정.
  • 로그인 컨트롤러에서 $ rootScope보기를 설정하고 (사용자가 처음 볼 때) translateLoadedSuccess에서 $ translate.refresh()를 호출하십시오.
  • 번역 각도 최신으로 업그레이드
모든 번역의

99.9 %가 현재 뷰, 예컨대 : {{: '내 번역 키'에서 수행되고있다 | 번역}}

이 문제를 해결하기 위해 무엇이 누락 되었습니까? 이 언어 파일을 수동으로로드하고 초기로드 시간에 설정해야합니까? 그렇다면 구성에서 어떻게 사용합니까?

저는 각도 1.5.0과 각도 2.11.1을 사용하고 있습니다.

TIA!

답변

0

처음에는 언어 파일을로드하는 데 걸리는 시간이 길었고 (항상은 아니지만) 언어 파일을로드하는 정적 파일로 각도 변환하는 것보다 길었습니다.

내가 알 수있는 한, 언어 파일을 수동으로로드하고 설정하거나 언어 파일을 별도의 작은 파일로 옮기는 두 가지 옵션을 사용할 수있었습니다. 그러나 저는 이것이 앞으로 문제가되지 않을 것이라는 점을 항상 보장 받기를 원했기 때문에 수동으로 언어 파일을로드하고 설정하기로했습니다. 이것은 실제로 간단하고 다음을 필요로했습니다 :

1) 언어 파일은 index.html 파일의 항목 맨 위에로드됩니다.

2) 언어 파일 (들) 자체에 변수를 할당 할 것 - 즉, VAR ENUS = { 'LOGIN': '로그인', '사용자': '사용자}

3) 언어는 것 app.config에서 수동으로 설정하십시오.

app.config(['$translateProvider', function($translateProvider){ 
    $translateProvider.translations('en_US', enUS); // this is the variable we assigned to the language json in step 2 
    $translateProvider.preferredLanguage('en_US'); 
    $translateProvider.useSanitizeValueStrategy('sanitize'); 
}]); 

모든 클라이언트의 모든 문제를 완전히 수정했습니다.