diff --git a/external-control-frontend/src/app/components/external-control-application/external-control-application.component.spec.ts b/external-control-frontend/src/app/components/external-control-application/external-control-application.component.spec.ts index 823bdcb..37171c3 100644 --- a/external-control-frontend/src/app/components/external-control-application/external-control-application.component.spec.ts +++ b/external-control-frontend/src/app/components/external-control-application/external-control-application.component.spec.ts @@ -77,6 +77,15 @@ describe('ExternalControlApplicationComponent', () => { expect(component.currentLanguage).toBe('da'); }); + /** + * Test to ensure the ngOnChanges method updates the translation language DE. + */ + it('should update translation language on robotSettings change', () => { + component.robotSettings = { language: 'de', units: null } as RobotSettings; + component.ngOnChanges({ robotSettings: { currentValue: component.robotSettings } } as any); + expect(component.currentLanguage).toBe('de'); + }); + /** * Test to ensure the ngOnChanges method sets the default language if the * language is not supported. @@ -86,4 +95,4 @@ describe('ExternalControlApplicationComponent', () => { component.ngOnChanges({ robotSettings: { currentValue: component.robotSettings } } as any); expect(component.currentLanguage).toBe('en'); }); -}); \ No newline at end of file +}); diff --git a/external-control-frontend/src/app/components/external-control-program/external-control-program.component.spec.ts b/external-control-frontend/src/app/components/external-control-program/external-control-program.component.spec.ts index edfda21..13bb008 100644 --- a/external-control-frontend/src/app/components/external-control-program/external-control-program.component.spec.ts +++ b/external-control-frontend/src/app/components/external-control-program/external-control-program.component.spec.ts @@ -48,6 +48,15 @@ describe('ExternalControlProgramComponent', () => { expect(component.currentLanguage).toBe('da'); }); + /** + * Test to ensure the ngOnChanges method updates the translation language DE. + */ + it('should update translation language on robotSettings change', () => { + component.robotSettings = { language: 'de', units: null } as RobotSettings; + component.ngOnChanges({ robotSettings: { currentValue: component.robotSettings } } as any); + expect(component.currentLanguage).toBe('de'); + }); + /** * Test to ensure the ngOnChanges method sets the default language if the * language is not supported. diff --git a/external-control-frontend/src/app/components/supported-languages.ts b/external-control-frontend/src/app/components/supported-languages.ts index 9000ac4..a2898b0 100644 --- a/external-control-frontend/src/app/components/supported-languages.ts +++ b/external-control-frontend/src/app/components/supported-languages.ts @@ -1,3 +1,3 @@ export function getSupportedLanguages() { - return ['en', 'da']; -} \ No newline at end of file + return ['en', 'da', 'de']; +} diff --git a/external-control-frontend/src/assets/i18n/de.json b/external-control-frontend/src/assets/i18n/de.json new file mode 100644 index 0000000..74edb64 --- /dev/null +++ b/external-control-frontend/src/assets/i18n/de.json @@ -0,0 +1,41 @@ +{ + "program": { + "tree": { + "nodes": { + "universal-robots-external-control-external-control-program": "External Control Programm" + } + } + }, + "application": { + "nodes": { + "universal-robots-external-control-external-control-application": { + "title": "External Control", + "supportiveText": "Verbindung zu ROS/ROS 2 oder Universal Robots Client Library", + "description": { + "line1": "Dieses URCap ermöglicht es Ihnen, URScript-Code auf Anfrage von einer externen Anwendung in ein Programm einzufügen.", + "line2": "Es ist in erster Linie für die Verbindung des Roboters mit dem ROS oder ROS 2-Treiber gedacht." + }, + "settings": { + "header": "Einstellungen", + "description": "Bitte geben Sie den Hostnamen oder die IP-Adresse und die Portnummer der externen Anwendung ein, die den eingefügten URScript-Code bereitstellt." + }, + "important": { + "header": "Wichtig", + "line1": "Der ROS oder ROS 2-Treiber benötigt die folgenden Dienste, um ordnungsgemäß zu funktionieren: Primary Interface, Real-Time Data Exchange (RTDE)", + "line2": "Ethernet/IP und Profinet Feldbusse müssen deaktiviert werden, damit der ROS oder ROS 2-Treiber ordnungsgemäß funktioniert." + }, + "serviceHowToEnable": { + "text": "Um die Dienste zu aktivieren, gehen Sie zu:", + "settings": "Einstellungen", + "security": "Sicherheit", + "services": "Dienste" + } + } + } + }, + "presenter": { + "port-input-description": "Geben Sie die Portnummer auf dem externen Computer für die Bereitstellung des URScript-Codes ein", + "robotIP-input-description": "Geben Sie die IP-Adresse oder den Hostnamen des externen Computers ein", + "update-button": "URScript code aktualisieren" + } +}