1

상황 :AngularJs : 날짜 개체를 변환하는 방법?

나는 내 응용 프로그램에 대한 angular-translate을 사용하고 그것은 완벽하게 작동한다.

누락 된 유일한 것은 날짜 개체를 번역하는 것입니다. 앱에 요일 이름 ('EEEE')도 표시하는 일정이 있습니다.

이 이름은 영어이며 다른 언어로 어떻게 번역 할 수 있는지 알 수 없습니다.

하는 코드 :

이것은 'EEEE'의 날짜 객체를 표시하는 간단한이다 :

<span class="day">{{ day | date : 'EEEE'}}</span> 

결과는

같은 수요일입니다 - 목요일 - 등 ..

이 예제에서는 각도 트란 응용 프로그램의 다른 부분 슬레이트 :

<span class="input-label" ng-bind-html="'EMAIL' | translate"></span> 
<span class="input-label" ng-bind-html="'PASSWORD' | translate"></span> 

질문 :

어떻게 내가 날짜 객체를 변환 할 수 있습니까?

간단한 방법이 있습니까?

대단히 감사합니다!

답변

2

moment.js을 번역 할 수 있습니다. angular version도 있습니다.

angular.module('core', ['angularMoment']).config(config); 

config.$inject = ['moment']; 

function config(moment) { 
    moment.changeLocale('fr'); 
} 

은 그런 다음 각 순간을 사용할 수있어 :

<script src="moment/moment.js"></script> 
<script src="moment/locale/fr.js"></script> 
<script src="moment/locale/de.js"></script> 
<script src="angular-moment.js"></script> 

는 그런 다음 로케일을 config (설정) 할 필요가 :

먼저 당신은 html 파일에 파일을 추가 할 필요가

<span>{{day |amDateFormat:'dddd'}}</span> 
+0

HTTP :/여기

해설과 코드 /momentjs.com/docs/#/displaying/format/하지만 정확히 어떻게 요일의 이름을 번역 할 수 있는지 찾을 수 없었습니다. – johnnyfittizio

0

다음과 같이 할 수 있습니다 (예 : 불어로) :

<span>{{date.toLocaleDateString("fr-FR",{weekday: "long"})}}</span> 
0

각도에는 ngLocale (소스 코드 링크 클릭)이라는 모듈이 있습니다. 당신이 관련 로케일 파일을 제공하는 경우

은 자동 등 날짜, 통화, 시간

같은 각도 필터에 내가 사용하는 내장 각도 번역 기능 tmhDynamicLocale와 결합에서 일의 전체 호스트를 변환합니다.

나는이 블록과 동적 로케일을 구성합니다

function appConfigBlock(tmhDynamicLocaleProvider) { 
    //this needs to point to wherever you put angulars locale files. 
    tmhDynamicLocaleProvider.localeLocationPattern('common/thirdparty/locale/angular-locale-{{locale}}.js'); 
} 

이 블록

function appRunBlock($rootScope, tmhDynamicLocale, $translate){ 
    $rootScope.$on('$translateChangeSuccess', function() { 
    tmhDynamicLocale.set($translate.use()); 
    }); 
} 
0

나는 각 순간을 시도와 변화를 감지. 날짜 형식에는 멋진 형식이 많이 있지만 'EEEE'형식을 실제로 번역하는 방법을 찾지 못했습니다. 2 일 동안 가능한 해결책을 찾았지만 실제 해결책을 찾지 못했습니다.

나는 지시어를 만들려고 빠른 해결책이 필요했다. 이것은 성가신 솔루션이지만 적어도 현재는 효과가 있습니다. 더 나은 솔루션을 기대합니다.

내가 있으면 올바른지 확인하십시오.

보기 :

<div translate-date-object> 
    <span class="day">{{ day | date : 'EEEE'}}</span> 
</div> 

지침 : 나는 문서 많은 좋은 형식으로 발견

.directive('translateDateObject', function($timeout) { 
return { 
    controller: function ($scope) { 
     return {}; 
    }, 
    requires: 'translateDateObject', 
    link: function(scope, element, attrs, thisController) { 

     $timeout(function() { 

      thisController.html = element[0].innerHTML; 

      // CLEAN THE STRING TO GET A CLEAN NAME DAY 
      var content_temp1 = thisController.html.replace('<span class="day ng-binding">',''); 
      var content_temp2 = content_temp1.replace('</span>','').toLowerCase(); 

      var day_name = ''; 

      for (var i = 0, len = content_temp2.length; i < len; i++) 
      { 
       // CHECK IF IS A CHAR 
       if (content_temp2[i].match(/[a-z]/i)) 
       { 
        day_name += content_temp2[i]; 
       } 
      } 

      // CHECK THE ACTIVE LANGUAGE 
      if (localStorage['language_code'] == 'tr') 
      { 
       // ASSIGN A DIFFERENT TRANSLATION FOR EACH DAY 
       switch(day_name) 
       { 
        case 'monday': 
         element.html('<span class="day">Pazartesi</span>'); 
        break; 
        case 'tuesday': 
         element.html('<span class="day">Salı</span>'); 
        break; 
        case 'wednesday': 
         element.html('<span class="day">Çarsamba</span>'); 
        break; 
        case 'thursday': 
         element.html('<span class="day">Persembe</span>'); 
        break; 
        case 'friday': 
         element.html('<span class="day">Cuma</span>'); 
        break; 
        case 'saturday': 
         element.html('<span class="day">Cumartesi</span>'); 
        break; 
        case 'sunday': 
         element.html('<span class="day">Pazar</span>'); 
        break; 
       } 
      } 
     }); 
    } 
} 
}); 
관련 문제