Angularjs에서 1. i18n 및 l10n
1. I18N과 L10N은 무엇입니까?
I18N이라고 불리는 국제화는 단순히 제품 언어 및 문화를 단순히 현지화 할 수있는 방식으로 제품 개발의 표준입니다. L10N이라고하는 현지화는 응용 프로그램과 텍스트가 특별 문화 또는 언어 시장에 적응할 수있는 표준입니다. 애플리케이션 개발자의 경우 프로그램을 국제화한다는 것은 모든 문자열 및 기타 영역을보다 특별한 프로그램 (예 : 날짜 및 통화 형식)에서 추출해야 함을 의미합니다. 프로그램을 현지화한다는 것은 I18N에서 추출한 블록의 번역 및 형식 현지화를 제공하는 것을 의미합니다.
2. 현재 각도에 의해 지원되는 I18N 및 L10N의 수준은 무엇입니까?
현재 Angular는 DateTime, 숫자 및 통화 필터에 대한 i18N 및 L10N 지원을 제공합니다.
또한 Angular는 ngpluralize 지시문 (http://docs.angularjs.org/api/ng.directic:ngpluralize)을 통한 다양한 현지화를 지원합니다.
모든 지역화 가능한 컨트롤은 $ 로케일 서비스를 통해 관리되는 로케일 설정 기능 규칙 세트에 의존합니다.
독자가 실제 예를 볼 수 있도록 공무원은 각도 필터를 사용하여 지역 규칙을 통해 변수를 수집하는 방법을 보여주기 위해 웹 페이지 예제를 준비했습니다. GitHub (https://github.com/angular/angular.js/tree/mas
3. 지역 ID 란 무엇입니까?
로케일은 특정 지리적, 정치적, 문화적 지역입니다. 가장 일반적으로 사용되는 로케일 ID는 언어 코드와 국가 코드의 두 부분으로 구성됩니다. 예를 들어, en 로케일 ID에 지정된 국가 인코딩은 선택 사항이므로 EN, ZH 및 SK와 같은 로케일 ID는 모두 유효합니다. Locale ID에 대한 자세한 정보가있는 웹 사이트 ICU (http://userguide.icu-project.org/locale)를 확인하십시오.
4. 각도지지 로케일
Angular는 다른 파일의 숫자, 날짜 및 시간 형식에 대한 규칙 세트를 분리합니다. 각 파일에는 고유 한 영역이 있습니다. 현재 지원되는 로케일 목록 (https://github.com/angular/angular.js/tree/master/i18n/locale)을 찾을 수 있습니다.
2. 각도로 로케일 규칙을 사용자 정의하십시오
각도로 로케일을 사용자 정의하는 두 가지 방법이 있습니다.
1. 사전 구매 규칙 세트
Locale 특정 파일을 Angular.js 또는 Angular.min.js에 연결하여 예상되는 로케일 파일을 구현할 수 있습니다.
예를 들어, *nix에서는 다음 명령을 통해 독일 지역 현지화 규칙을 포함하는 Angular.js 파일을 만들 수 있습니다.
Cat Angular.js i18n/Angular-locale_de-ge.js> Angular_de-ge.js
응용 프로그램이 일반 angular.js 스크립트 대신 Angular_de-ge.js 스크립트를 사용하는 경우, Angular는 독일에서 자동으로 사전 구성 (사전 구성된) 현지화 규칙을 자동으로 시작합니다.
2. Index.html 페이지에 로케일 JS 스크립트를 포함시킵니다
지정된 영역에 JS 파일을 페이지에 포함시킬 수도 있습니다. 예를 들어, 클라이언트가 독일 지역 파일이 필요한 경우 다음과 같은 페이지를 제공 할 수 있습니다.
<html ng-app> <head> ... <script src = "angular.js"> </script> <script src = "i18n/angular-locale_de-ge.js"> </script> ... </head> ... </html> ...
위의 두 가지 방법 모두 각 지역의 다른 인덱스 .html 페이지 또는 JS 파일을 현지화 할 수 있어야합니다. 또한 원하는 로케일 파일을 제공하기 위해 서버를 구성해야합니다.
그러나 두 번째 방법 (페이지에 로케일 파일 포함)은 스크립트가 하나 더로드되어야하므로 느려집니다. (-_- !!!).
3. 트랩 ( "gotchas")
1. 통화 기호 트랩
Angular의 통화 필터를 사용하면 로케일 서비스의 기본 통화 기호를 사용할 수 있으며 사용자 정의 통화 기호를 제공 할 수도 있습니다. 앱이 한 영역에서만 사용되면 기본 통화 기호를 (설정) 할 수 있습니다. 그러나 다른 지역의 사용자도 앱을 사용할 것으로 예상되면 사용자가 실제 값을 이해하도록 사용자 정의 통화 기호를 제공해야합니다.
예를 들어, 통화 필터를 바인딩하여 RMB 1,000의 계정 잔액을 표시하려면 : {{1,000 | Currency}} 및 우리의 응용 프로그램은 현재 EN-US 로케일을 사용하고 있으며 "$ 1,000.00"이 표시됩니다. 그러나 다른 지역 (예 : 중국 본토)의 사용자가 앱을 방문하는 경우 사용자의 브라우저는 지역 설정을 "중국 본토"로 지정하고 잔액은 "¥ 1000.00"(매우 슬픈 오류, 환율 ...)로 표시됩니다.
이 예에서 필터를 설정 해야하는 경우 통화 필터 (http://docs.angularjs.org/api/api/api/api/ng.filter:currency)에 통화 기호를 제공하여 기본 통화 기호를 다시 작성해야합니다. 이런 식으로 Angular는 로케일의 변화를 무시하고 균형을 "USD $ 1000.00"로 계속 표시합니다.
2. 번역 길이 트랩
문자열과 이벤트 형식을 번역 할 때 길이는 크게 다를 수 있습니다. 예를 들어, "1977 년 6 월 3 일"은 스페인어로 번역 될 때 "3 De Junio de 1977"이됩니다. 물론 더 극단적 인 상황이있을 수 있습니다. 따라서 응용 프로그램을 국제화 할 때 해당 CSS 규칙을 설정하고 포괄적 인 테스트를 수행하여 UI 구성 요소가 붕괴되지 않도록해야합니다 (변형).
3. 시간대
Angular의 DateTime 필터는 브라우저에서 설정 한 시간대를 사용합니다. 따라서 동일한 응용 프로그램은 개발자가 JavaScript 또는 Angular로 지정된 시간대가 아닌 응용 프로그램을 실행하는 컴퓨터의 시간대 설정에 따라 다른 시간 정보를 표시합니다.