Add French and German translations for API Reference

- api_reference-FR.md: Complete French translation of API Reference guide covering scripting (Python), plugins, XML manipulation, and developer resources
- api_reference-DE.md: Full German translation with identical comprehensive coverage

Tier 3 progress: 6 of 8 developer pages now complete (Contributing, Building, API Reference in FR/DE)
ispyisail
2026-09-09 16:07:37 +12:00
parent 7cc0febd66
commit ffecacbd26
2 changed files with 589 additions and 0 deletions
+293
@@ -0,0 +1,293 @@
# API-Referenz
Erweitern und automatisieren Sie QElectroTech durch Scripting, Plugins und XML-Manipulation.
---
## Überblick
QElectroTech bietet mehrere Möglichkeiten zur Funktionserweiterung und Workflow-Automatisierung:
1. **Scripting** — Python-Skripte zur Automatisierung
2. **Plugins** — Mit benutzerdefinierten Funktionen erweitern (Python, etc.)
3. **XML-Manipulation** — Direkte Dateienbearbeitung für benutzerdefinierte Tools
4. **Doxygen-API** — C++-API für Entwickler, die Erweiterungen erstellen
---
## Erste Schritte
### Für Wen Dieser Leitfaden
- **Entwickler** die QET erweitern möchten
- **Power-Benutzer** die Workflows automatisieren
- **Tool-Builder** die benutzerdefinierte Dienstprogramme erstellen
- **Forscher** die QET-Dateien programmatisch verarbeiten
### Voraussetzungen
- Grundlegende Programmierkenntnisse (Python empfohlen)
- Verständnis von QET-Dateiformaten (XML)
- Vertrautheit mit QET-Benutzeroberfläche und Terminologie
---
## Scripting
### Python-Scripting
QElectroTech unterstützt **Python-Scripting** für Automatisierungsaufgaben.
#### Verfügbare Anwendungsfälle
- **Leiter-Block-Generierung** — Automatisches Erstellen von Terminalleisten
- **Auto-Nummerierung** — Elemente und Leiter programmatisch nummerieren
- **Batch-Operationen** — Mehrere Diagramme verarbeiten
- **Datenexport** — Informationen aus Projekten extrahieren
- **Benutzerdefinierte Berichte** — Spezialisierte Dokumentation generieren
#### Terminal-Block-Generator (Beispiel)
Der **Terminal-Block-Generator** ist ein von der Gemeinschaft beigestütztes Python-Plugin, das die Erstellung von Terminalleisten automatisiert.
**Funktionen:**
- Generieren Sie Terminal-Blöcke aus Leiter-Listen
- Passen Sie die Terminal-Nummerierung an
- Exportieren Sie Terminal-Dokumentation
**Gemeinschaft:**
- 55 Themen, 895 Beiträge im Forum
- Aktive Entwicklung und Unterstützung
- Verfügbar auf GitHub
**Erste Schritte:**
- Forum: https://qelectrotech.org/forum/viewforum.php?id=14
- Python-Plugin-Beispiel für QET
### Ihre Eigenen Skripte Schreiben
#### Script-Struktur
QET-Skripte typischerweise:
1. **Lesen** Sie Projekt-/Element-Dateien (XML)
2. **Verarbeiten** Sie die Daten (Python-Logik)
3. **Schreiben** Sie in Datei oder generieren Sie Ausgabe
#### Beispiel-Workflow
```python
# Pseudo-Code-Beispiel
import xml.etree.ElementTree as ET
# QET-Projekt lesen
project = ET.parse('meinprojekt.qet')
root = project.getroot()
# Alle Elemente suchen
for element in root.findall('.//element'):
# Element verarbeiten
ref = element.get('id')
print(f"Verarbeite Element: {ref}")
# Zurück schreiben
project.write('meinprojekt_modifiziert.qet')
```
#### Häufige Aufgaben
**Element-Daten Lesen:**
- `.elmt` XML-Dateien analysieren
- Anschlüsse, Grafiken, Eigenschaften extrahieren
- Auf Element-Bibliotheken zugreifen
**Projekte Ändern:**
- Elemente hinzufügen/entfernen
- Leiter-Eigenschaften ändern
- Nummerierung aktualisieren
**Berichte Generieren:**
- Element-Listen extrahieren
- Nomenclature generieren
- Verdrahtungsdiagramme erstellen
### Benötigte Python-Bibliotheken
```bash
# XML-Verarbeitung (in Python integriert)
import xml.etree.ElementTree as ET
# Für fortgeschrittene Aufgaben
pip install lxml # Bessere XML-Unterstützung
```
### Forum-Diskussion
**Script-Forum:** https://qelectrotech.org/forum/viewforum.php?id=14
Themen umfassen:
- Auto-Nummerungs-Skripte
- Schrank-Layout-Generatoren
- Datenextraktions-Tools
- Batch-Verarbeitungs-Beispiele
---
## Plugins
### Plugin-System
QElectroTech unterstützt **Plugins** für tiefe Integration.
#### Verfügbare Plugins
**Terminal-Block-Generator**
- Typ: Python-Plugin
- Zweck: Automatisieren Sie die Erstellung von Terminalleisten
- Gemeinschafts-Support: Ja
- Forum: Terminal-Block-Generator-Forum (55 Themen)
#### Plugin-Entwicklung
**Erstellen Sie ein Plugin:**
1. **Verstehen Sie die Plugin-Schnittstelle** — Wie QET Ihren Code aufruft
2. **Schreiben Sie Plugin-Code** — Python oder C++ je nach Integration
3. **Verpacken Sie das Plugin** — Legen Sie es im QET-Plugin-Verzeichnis ab
4. **Testen Sie gründlich** — Gewährleisten Sie Stabilität
5. **Teilen Sie mit der Gemeinschaft** — Tragen Sie zum Forum bei
**Plugin-Verzeichnisse:**
**Linux:**
```
~/.local/share/QElectroTech/plugins/
```
**Windows:**
```
%APPDATA%\QElectroTech\plugins\
```
**macOS:**
```
~/Library/Application Support/QElectroTech/plugins/
```
#### Plugin-Beispiele
**Terminal-Block-Generator:**
- Generiert Terminal-Leisten programmatisch
- Verarbeitet Leiter-Listen
- Erstellt Nomenclature
**Mögliche Plugin-Ideen:**
- Benutzerdefinierte Element-Bibliotheks-Manager
- Report-Generatoren
- Import/Export-Übersetzer
- Design-Regel-Checker
- Materialkosten-Tools
### Forum-Diskussionen
**Code/Programmierung-Forum:** https://qelectrotech.org/forum/viewforum.php?id=17 (91 Themen, 1.231 Beiträge)
**Script-Forum:** https://qelectrotech.org/forum/viewforum.php?id=14 (33 Themen, 374 Beiträge)
---
## XML-Manipulation
### Projekt-Dateiformat (.qet)
QET-Projekte werden im XML-Format gespeichert. Grundstruktur:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<project>
<properties>
<author>Name</author>
<date>2026-01-01</date>
<title>Mein Projekt</title>
</properties>
<diagrams>
<diagram name="Schema 1">
<elements>
<element name="S1" type="..." x="10" y="20">
<!-- Element-Daten -->
</element>
</elements>
<conductors>
<conductor num="1">
<!-- Leiter-Daten -->
</conductor>
</conductors>
</diagram>
</diagrams>
</project>
```
### Element-Dateiformat (.elmt)
Benutzerdefinierte Elemente verwenden das XML-Format:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<definition version="0.100">
<uuid uuid="..."/>
<names>
<name lang="en">Mein Element</name>
<name lang="de">Mein Element</name>
</names>
<informations>...</informations>
<description>Element-Beschreibung</description>
<graphic>
<!-- Grafikelemente -->
</graphic>
<terminals>
<!-- Anschluss-Definitionen -->
</terminals>
</definition>
```
### Dateien Bearbeiten
Sie können XML-Dateien direkt ändern:
1. **Extrahieren** Sie `.qet`-Datei (Umbenennung in `.zip`)
2. **Bearbeiten** Sie XML-Dateien darin
3. **Komprimieren** Sie und benennen Sie in `.qet` um
4. **Öffnen** Sie in QET
### XML in Python Analysieren
```python
import xml.etree.ElementTree as ET
# Projekt laden
tree = ET.parse('meinprojekt.qet')
root = tree.getroot()
# Elemente durchlaufen
for elem in root.findall('.//element'):
name = elem.get('name')
elem_type = elem.get('type')
print(f"Element: {name}, Typ: {elem_type}")
# Änderungen speichern
tree.write('meinprojekt_modifiziert.qet', encoding='UTF-8')
```
---
## Zusätzliche Ressourcen
- **[QET Erstellen](building-DE)** — Aus Quelle kompilieren
- **[Zu QET Beitragen](contributing-DE)** — Code-Beitrag-Anleitung
- **[Doxygen-API](https://download.qelectrotech.org/qet/doxygen/html/)** — C++-API-Referenz
- **[Script-Forum](https://qelectrotech.org/forum/viewforum.php?id=14)** — Diskutieren und Teilen
- **[Code-Forum](https://qelectrotech.org/forum/viewforum.php?id=17)** — Entwickler-Fragen
---
**[🌐 Sprache wählen](languages)** — English · Français · Deutsch
+296
@@ -0,0 +1,296 @@
# Référence API
Étendez et automatisez QElectroTech grâce au scripting, aux plugins et à la manipulation XML.
---
## Aperçu
QElectroTech fournit plusieurs façons d'étendre les fonctionnalités et d'automatiser les workflows :
1. **Scripting** — Scripts Python pour automatisation
2. **Plugins** — Étendre avec des fonctionnalités personnalisées (Python, etc.)
3. **Manipulation XML** — Édition directe de fichiers pour outils personnalisés
4. **Doxygen API** — API C++ pour développeurs construisant des extensions
---
## Commencer
### Pour Qui Ce Guide
- **Développeurs** voulant étendre QET
- **Utilisateurs avancés** automatisant des workflows
- **Constructeurs d'outils** créant des utilitaires personnalisés
- **Chercheurs** traitant les fichiers QET programmatiquement
### Prérequis
- Connaissances de programmation de base (Python recommandé)
- Compréhension des formats de fichier QET (XML)
- Familiarité avec l'interface et la terminologie de QET
---
## Scripting
### Scripting Python
QElectroTech supporte le **scripting Python** pour les tâches d'automatisation.
#### Cas d'Utilisation Disponibles
- **Génération de blocs terminaux** — Créer automatiquement les bandes terminales
- **Auto-numérotation** — Numéroter programmatiquement les éléments et conducteurs
- **Opérations par lot** — Traiter plusieurs diagrammes
- **Export de données** — Extraire les informations des projets
- **Rapports personnalisés** — Générer une documentation spécialisée
#### Générateur de Bloc Terminal (Exemple)
Le **Générateur de Bloc Terminal** est un plugin Python contribué par la communauté qui automatise la création de bandes terminales.
**Fonctionnalités :**
- Générer des blocs terminaux à partir des listes de conducteurs
- Personnaliser la numérotation des bornes
- Exporter la documentation terminale
**Communauté :**
- 55 sujets, 895 messages au forum
- Développement et support actif
- Disponible sur GitHub
**Débuter :**
- Forum : https://qelectrotech.org/forum/viewforum.php?id=14
- Exemple de plugin Python pour QET
### Écrire Vos Propres Scripts
#### Structure des Scripts
Les scripts QET généralement :
1. **Lisent** les fichiers projet/élément (XML)
2. **Traitent** les données (logique Python)
3. **Écrivent** vers un fichier ou génèrent une sortie
#### Exemple de Workflow
```python
# Pseudo-code exemple
import xml.etree.ElementTree as ET
# Lire projet QET
project = ET.parse('monprojet.qet')
root = project.getroot()
# Trouver tous les éléments
for element in root.findall('.//element'):
# Traiter l'élément
ref = element.get('id')
print(f"Traitement l'élément : {ref}")
# Écrire
project.write('monprojet_modifie.qet')
```
#### Tâches Courantes
**Lecture des Données d'Élément :**
- Analyser les fichiers XML `.elmt`
- Extraire les bornes, graphiques, propriétés
- Accéder aux bibliothèques d'éléments
**Modification des Projets :**
- Ajouter/supprimer des éléments
- Modifier les propriétés des conducteurs
- Mettre à jour la numérotation
**Génération de Rapports :**
- Extraire les listes d'éléments
- Générer la nomenclature
- Créer des diagrammes de câblage
### Bibliothèques Python Nécessaires
```bash
# Traitement XML (Python intégré)
import xml.etree.ElementTree as ET
# Pour les tâches avancées
pip install lxml # Meilleur support XML
```
### Discussion du Forum
**Forum des Scripts :** https://qelectrotech.org/forum/viewforum.php?id=14
Les sujets incluent :
- Scripts d'auto-numérotation
- Générateurs de mise en page armoire
- Outils d'extraction de données
- Exemples de traitement par lot
---
## Plugins
### Système de Plugins
QElectroTech supporte les **plugins** pour une intégration profonde.
#### Plugins Disponibles
**Générateur de Bloc Terminal**
- Type : Plugin Python
- Objectif : Automatiser la création de bandes terminales
- Support communautaire : Oui
- Forum : Forum du générateur de bloc terminal (55 sujets)
#### Développement de Plugin
**Créer un Plugin :**
1. **Comprendre l'interface du plugin** — Comment QET appelle votre code
2. **Écrire le code du plugin** — Python ou C++ en fonction de l'intégration
3. **Empaqueter le plugin** — Placer dans le répertoire des plugins QET
4. **Tester complètement** — Assurer la stabilité
5. **Partager avec la communauté** — Contribuer au forum
**Répertoires de Plugin :**
**Linux :**
```
~/.local/share/QElectroTech/plugins/
```
**Windows :**
```
%APPDATA%\QElectroTech\plugins\
```
**macOS :**
```
~/Library/Application Support/QElectroTech/plugins/
```
#### Exemples de Plugin
**Générateur de Bloc Terminal :**
- Génère les bandes terminales programmatiquement
- Traite les listes de conducteurs
- Crée la nomenclature
**Idées de Plugin Potentielles :**
- Gestionnaires de bibliothèque d'éléments personnalisés
- Générateurs de rapports
- Traducteurs import/export
- Vérificateurs de règles de conception
- Outils de nomenclature
### Discussions du Forum
**Forum Code/Programmation :** https://qelectrotech.org/forum/viewforum.php?id=17 (91 sujets, 1.231 messages)
**Forum Scripts :** https://qelectrotech.org/forum/viewforum.php?id=14 (33 sujets, 374 messages)
---
## Manipulation XML
### Format de Fichier Projet (.qet)
Les projets QET sont stockés au format XML. Structure de base :
```xml
<?xml version="1.0" encoding="UTF-8"?>
<project>
<properties>
<author>Nom</author>
<date>2026-01-01</date>
<title>Mon Projet</title>
</properties>
<diagrams>
<diagram name="Schema 1">
<elements>
<element name="S1" type="..." x="10" y="20">
<!-- données d'élément -->
</element>
</elements>
<conductors>
<conductor num="1">
<!-- données de conducteur -->
</conductor>
</conductors>
</diagram>
</diagrams>
</project>
```
### Format de Fichier Élément (.elmt)
Les éléments personnalisés utilisent le format XML :
```xml
<?xml version="1.0" encoding="UTF-8"?>
<definition version="0.100">
<uuid uuid="..."/>
<names>
<name lang="en">Mon Élément</name>
<name lang="fr">Mon Élément</name>
</names>
<informations>...</informations>
<description>Description de l'élément</description>
<kindInformations>
<kindInformation name="type">switch</kindInformation>
</kindInformations>
<graphic>
<!-- Éléments graphiques -->
</graphic>
<terminals>
<!-- Définitions de bornes -->
</terminals>
</definition>
```
### Édition de Fichiers
Vous pouvez directement modifier les fichiers XML :
1. **Extraire** le fichier `.qet` (renommer en `.zip`)
2. **Éditer** les fichiers XML à l'intérieur
3. **Compresser** et renommer en `.qet`
4. **Ouvrir** dans QET
### Parsing XML en Python
```python
import xml.etree.ElementTree as ET
# Charger projet
tree = ET.parse('myproject.qet')
root = tree.getroot()
# Parcourir les éléments
for elem in root.findall('.//element'):
name = elem.get('name')
elem_type = elem.get('type')
print(f"Élément : {name}, Type : {elem_type}")
# Sauvegarder les modifications
tree.write('myproject_modified.qet', encoding='UTF-8')
```
---
## Ressources Supplémentaires
- **[Construire QET](building-FR)** — Compiler à partir de la source
- **[Contribuer à QET](contributing-FR)** — Guide de contribution de code
- **[API Doxygen](https://download.qelectrotech.org/qet/doxygen/html/)** — Référence API C++
- **[Forum Scripts](https://qelectrotech.org/forum/viewforum.php?id=14)** — Discuter et partager
- **[Forum Code](https://qelectrotech.org/forum/viewforum.php?id=17)** — Questions de développement
---
**[🌐 Choisir la Langue](languages)** — English · Français · Deutsch