translation-editor/lazy/advanced-translation-editor/advanced-translation-editor.component.ts
selector | c8y-advanced-translation-editor |
standalone | true |
imports |
EditorComponent
MonacoEditorMarkerValidatorDirective
FormsModule
TitleComponent
LoadingComponent
NgIf
ActionBarItemComponent
IconDirective
|
templateUrl | ./advanced-translation-editor.component.html |
Properties |
Methods |
|
constructor(appState: AppStateService, translationStore: TranslationStoreService, alert: AlertService, translation: TranslateService)
|
|||||||||||||||
Parameters :
|
Async importTranslationKeys |
importTranslationKeys()
|
Returns :
any
|
onEditorInit | ||||||
onEditorInit(_data: Monaco.editor.IStandaloneCodeEditor)
|
||||||
Parameters :
Returns :
void
|
onValueChange | ||||||
onValueChange(data: string)
|
||||||
Parameters :
Returns :
void
|
Async refresh |
refresh()
|
Returns :
any
|
Async saveTranslations |
saveTranslations()
|
Returns :
any
|
availableLangs |
Type : string[]
|
Default value : []
|
editorComponent |
Type : EditorComponent
|
Decorators :
@ViewChild(EditorComponent)
|
editorOptions |
Type : EditorComponent['editorOptions']
|
Default value : {
language: 'json'
}
|
isLoading |
Default value : signal(false)
|
isValidJSON |
Default value : computed(() => {
const data = this.valueString();
try {
JSON.parse(data);
return true;
} catch (e) {
return false;
}
})
|
JSONSchema |
Type : any
|
valueString |
Default value : signal('')
|
<c8y-title translate>Localization</c8y-title>
<ng-container *ngIf="!isLoading(); else loading">
<c8y-action-bar-item placement="right">
<button
class="btn btn-link"
[disabled]="!isValidJSON()"
(click)="saveTranslations()"
data-cy="c8y-translation-editor--save-and-apply"
>
<i c8yIcon="save"></i>
<span translate>Save & apply</span>
</button>
</c8y-action-bar-item>
<c8y-action-bar-item placement="right">
<button
class="btn btn-link"
[disabled]="!isValidJSON()"
(click)="importTranslationKeys()"
data-cy="c8y-translation-editor--import-translation-keys"
>
<i [c8yIcon]="'import'"></i>
<span translate>Import translation keys from Apps</span>
</button>
</c8y-action-bar-item>
<div class="card card--fullpage content-fullpage">
<c8y-editor
class="flex-grow"
[editorOptions]="editorOptions"
[ngModel]="valueString()"
(ngModelChange)="onValueChange($event)"
(editorInit)="onEditorInit($event)"
monacoEditorMarkerValidator
></c8y-editor>
</div>
</ng-container>
<ng-template #loading>
<c8y-loading></c8y-loading>
</ng-template>