번역 문자열을 각번역으로 가장 잘 구성하는 방법은?
저는 다소 큰 Angular 프로젝트에서 Angular-translate를 사용하고 있습니다.프로젝트를 관리하기 위해 여러 모듈로 분할하고 있지만 모듈당 번역 문자열을 분할할 수 없습니다.
예를 들어, 저는 모듈 A와 B를 가지고 있는데, 여기서 B는 A의 서브 모듈입니다.모듈 A에서 다루는 HTML과 관련된 문자열이 있는데 '/json/localization/A/en.json'에 있습니다.마찬가지로 내가 '/json/localization/B/en.json'에 넣는 B와 관련된 문자열이 있습니다.먼저 각번역의 $translationProvider를 사용하여 B 모듈에 B의 en.json을 로드합니다.그런 다음 $translationProvider를 사용하여 모듈 A의 en.json을 로드합니다.문제는 A의 문자열을 로드하는 것이 B의 문자열을 덮어쓰게 되어 손실된다는 것입니다.
각 변환을 사용하면 재정의하지 않고 모듈당 문자열을 로드할 수 있는 방법이 있습니까? 아니면 부모 모듈이 단일 en.json에서 모든 문자열을 로드해야 합니까?
다음은 번역 문자열을 로드하는 방법의 예(커피 스크립트)입니다.
my_module.config(['$translateProvider', ($translateProvider) ->
$translateProvider.useStaticFilesLoader
prefix: '/json/localization/A/'
suffix: '.json'
$translateProvider.preferredLanguage 'en'
])
angular-translate는 부분 언어 파일의 비동기 로드를 지원합니다.모든 부분은 언어당 하나의 사전으로 병합됩니다.공식 문서는 여기에서 확인할 수 있습니다: http://angular-translate.github.io/docs/ #/guide/12_ asynchronous-loading
모듈화된 언어 파일을 가리키는 URL 템플릿 적용을 지원합니다.
$translateProvider.useLoader('$translatePartialLoader', {
urlTemplate: '/i18n/{part}/{lang}.json'
});
컨트롤러 내에서 언어 모듈을 추가하고 다음과 같은 데이터 바인딩을 새로 고칠 수 있습니다.
angular.module('contact')
.controller('ContactCtrl',
function ($scope, $translatePartialLoader, $translate) {
$translatePartialLoader.addPart('contact');
$translate.refresh();
});
물론 부분을 로드하는 것은 경로의 해결 단계에서도 적용될 수 있습니다.
또는 사용자 지정 로더 기능을 직접 구축하는 방법도 검토할 수 있습니다.http://angular-translate.github.io/docs/ #/가이드/13_맞춤 로더
이를 통해 필요한 언어 모듈을 한 번에 결합하는 데 필요한 모든 유연성을 제공합니다.예를 들어 다음과 같은 작업을 수행할 수 있습니다.
app.factory('customLoader', function ($http, $q) {
// return loaderFn
return function (options) {
var deferred = $q.defer();
var data = {
'TEXT': 'Fooooo'
};
$http.get('nls/moduleA/en.json').success(function(moduleA){
angular.extend(data, moduleA);
$http.get('nls/moduleB/en.json').success(function(moduleB){
angular.extend(data, moduleB);
deferred.resolve(data);
});
});
return deferred.promise;
};
});
언급URL : https://stackoverflow.com/questions/24744774/how-to-best-organize-translation-strings-in-angular-translate
'programing' 카테고리의 다른 글
| Oracle에서 ID 열을 재설정하는 방법 (0) | 2023.10.11 |
|---|---|
| 동일한 테이블의 열에 외래 키 제약 조건 적용 (0) | 2023.10.11 |
| 내용과 정확하게 일치하는 요소 선택 (0) | 2023.10.11 |
| xPath selector 온라인 테스터가 있습니까? (0) | 2023.10.01 |
| CSS: 가로 또는 세로 비율을 유지하면서 100% 가로 또는 높이? (0) | 2023.10.01 |