diff --git a/demo-shell/resources/i18n/ru.json b/demo-shell/resources/i18n/ru.json index 79564430e6..adbccea296 100644 --- a/demo-shell/resources/i18n/ru.json +++ b/demo-shell/resources/i18n/ru.json @@ -7,7 +7,7 @@ "VERSIONS": "Версии" }, "HOME": { - "TITLE": "Угловые компоненты для Alfresco", + "TITLE": "Компоненты Angular для Alfresco", "DOCUMENTATION": "Документация" }, "LOGOUT": { @@ -232,4 +232,4 @@ }, "GROUP-TITLE1-TRANSLATION-KEY": "Перевод пользовательского заголовка один", "GROUP-TITLE2-TRANSLATION-KEY": "Перевод пользовательского заголовка два" -} \ No newline at end of file +} diff --git a/lib/core/services/translate-loader.service.ts b/lib/core/services/translate-loader.service.ts index f58e481302..a1e80cb192 100644 --- a/lib/core/services/translate-loader.service.ts +++ b/lib/core/services/translate-loader.service.ts @@ -19,7 +19,7 @@ import { HttpClient } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { Response } from '@angular/http'; import { TranslateLoader } from '@ngx-translate/core'; -import { Observable, forkJoin, throwError } from 'rxjs'; +import { Observable, forkJoin, throwError, of } from 'rxjs'; import { ComponentTranslationModel } from '../models/component.model'; import { ObjectUtils } from '../utils/object-utils'; import { map, catchError, retry } from 'rxjs/operators'; @@ -65,7 +65,7 @@ export class TranslateLoaderService implements TranslateLoader { component.json[lang] = res; }), retry(3), - catchError(() => throwError(`Error loading ${translationUrl}`)) + catchError(() => throwError(`Failed to load ${translationUrl}`)) ) ); } @@ -108,20 +108,36 @@ export class TranslateLoaderService implements TranslateLoader { } getTranslation(lang: string): Observable { - const observableBatch = this.getComponentToFetch(lang); + let hasFailures = false; + const batch = [ + ...this.getComponentToFetch(lang).map(observable => { + return observable.pipe( + catchError(error => { + console.warn(error); + hasFailures = true; + return of(error); + }) + ); + }) + ]; return Observable.create(observer => { - if (observableBatch.length > 0) { - forkJoin(observableBatch).subscribe( + + if (batch.length > 0) { + forkJoin(batch).subscribe( () => { let fullTranslation = this.getFullTranslationJSON(lang); if (fullTranslation) { observer.next(fullTranslation); } - observer.complete(); + if (hasFailures) { + observer.error('Failed to load some resources'); + } else { + observer.complete(); + } }, (err) => { - observer.error(err); + observer.error('Failed to load some resources'); }); } else { let fullTranslation = this.getFullTranslationJSON(lang);