[angular] AngularJS와 Angular 간의 언어 서비스 및 현지화 호환성
AngularJS와 Angular은 모두 JavaScript 기반의 웹 프레임워크로,
두 프레임워크를 사용하면서 기존의 코드를 최대한 유지하면서 새로운 프로젝트에 Angular로 마이그레이션하는 것이 일반적입니다.
언어 서비스와 현지화는 이러한 마이그레이션 중에 매우 중요한 부분입니다.
AngularJS에서 사용되던 $translate
서비스는 Angular에서 @ngx-translate/core
라이브러리를 사용하여 이와 같은 모듈을 기능적으로 대치할 수 있습니다.
AngularJS의 $translate
서비스
angular.module('app', ['pascalprecht.translate'])
.config(function ($translateProvider) {
$translateProvider.translations('en', {
'TITLE': 'Hello',
'FOO': 'This is a paragraph.'
});
$translateProvider.preferredLanguage('en');
});
<div>{{ 'TITLE' | translate }}</div>
<div translate="FOO"></div>
Angular의 @ngx-translate/core
라이브러리
import { TranslateModule, TranslateService } from '@ngx-translate/core';
import { HttpClient } from '@angular/common/http';
export function HttpLoaderFactory(http: HttpClient) {
return new TranslateHttpLoader(http);
}
@NgModule({
imports: [
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [HttpClient]
}
})
]
})
constructor(private translate: TranslateService) {
translate.addLangs(['en', 'fr']);
translate.setDefaultLang('en');
const browserLang = translate.getBrowserLang();
translate.use(browserLang.match(/en|fr/) ? browserLang : 'en');
}
이와 같이 Angular에서는 @ngx-translate/core
라이브러리를 사용하여 간단한 $translate
서비스와 동일한 작업을 수행할 수 있습니다.
이러한 방식으로 AngularJS와 Angular 간의 언어 서비스 및 현지화 호환성을 유지할 수 있으며, 마이그레이션 과정에서 기존 코드를 쉽게 유지할 수 있습니다.
참고 자료
- AngularJS 기반 앱 - https://angularjs.org/
- Angular 기반 앱 - https://angular.io/
- ngx-translate/core 라이브러리 - https://github.com/ngx-translate/core