Skip to content

LGT-167 Linguist Connector Package Update#2

Open
Aldr0n wants to merge 41 commits intomainfrom
lgt-167-linguist-connector-package-update
Open

LGT-167 Linguist Connector Package Update#2
Aldr0n wants to merge 41 commits intomainfrom
lgt-167-linguist-connector-package-update

Conversation

@Aldr0n
Copy link

@Aldr0n Aldr0n commented Mar 12, 2026

Beschreibung:

Dieser PR aktualisiert das Linguist Connector Package auf ein moderneres Level.

Was wurde gemacht?

Das Packet an sich wurde aktualisiert (Dependencies). Zudem wurde die Projektstruktur aufgeräumt, sauber in Services und Actions unterteilt und anschließend erweitert.

Das aufsetzen des Paketes ist nun via einem einzigen Command möglich (linguist:setup). Dabei werden alle nötigen Informationen abgefragt (API Key, zugehöriges Projekt, usw.). Zudem wurde ein Sprachdatei-Import Feature hinzugefügt. Bei Ersteinrichtungen kann das Package jetzt die bestehenden Sprachdateien Scannen und die Übersetzungs-Keys automatisch in Linguist anlegen. Man muss also nicht mehr manuell eine Datei nach der anderen hochladen.

Der sync Command wurde ebenfalls erweitert. Entwickler müssen sich jetzt nicht mehr darum kümmern einen eigenen Command anzulegen sondern können einfach mit linguist:sync die Sprachdateien aktualisieren. Hier gibt es nun 3 Modi.

  • sync: Es werden sowohl neue Sprachdateien hochgeladen als auch aktuelle Übersetzungen runtergeladen
  • pull: Es werden aktuelle Übersetzungen runtergeladen
  • push: Es werden sowohl neue Sprachdateien hochgeladen

Warum wurde es gemacht?

Bisher war die Integration von Linguist in Projekten sehr unregelmäßig. Entwickler mussten viele Schritte selbst machen wie einen Sync-Command anlegen. Das hat dazu geführt das bspw. jedes Projekt eine eigene Sync-Command-Signatur hat, was immer wieder zu Verwirrung führt.

Umgebung & Voraussetzungen:

Eine eingerichtete Projekt Entwicklungsumgebung.

Ablauf der Nachprüfung:

  1. Das LInguist Repo und das Linguist Connector Package Repo local auf dem Ticket branch ausschecken
  2. Per Composer Symlink das Connector Package lokal installieren ( Ich hab das Package mit Linguist selbst getestet)
  3. Sicherstellen das man einen aktuellen API key hat
  4. In einem Projekt welchem das Package installiert ist folgende Commands ausführen:
php artisan linguist:setup
php artisan linguist:sync

[Optional] Screenshots/Videos

grafik grafik

[Optional] Weitere Hinweise:

[Optional] Sind nach dem Deployment Tasks auszuführen?

Copilot AI review requested due to automatic review settings March 12, 2026 11:27
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Dieses PR modernisiert das Linguist-Connector-Package durch eine neue Action-/DTO-basierte Architektur und erweitert die DX um einen interaktiven Setup-Flow sowie ein überarbeitetes linguist:sync-Command.

Changes:

  • Einführung eines LinguistApiClient plus Actions für pull, push und sync inkl. Orchestrierung (SetupOrchestrator) und Setup-Wizard (linguist:setup).
  • Neue DTOs (SetupInput, SyncResult) und Anpassungen an Service Provider/Facade/Legacy-API.
  • Dokumentation und umfangreiche Test-Suite-Erweiterungen rund um die neuen Flows.

Reviewed changes

Copilot reviewed 25 out of 25 changed files in this pull request and generated 14 comments.

Show a summary per file
File Description
tests/Unit/Services/LinguistApiClientTest.php Unit-Tests für Key-Counting/Fallback-Logik des API-Clients
tests/Unit/DTO/SyncResultTest.php Unit-Tests für Ergebnis-/Summary-Logik des SyncResult DTO
tests/Unit/DTO/SetupInputTest.php Unit-Tests für SetupInput DTO (Helper/Defaults/Serialisierung)
tests/Unit/Actions/PushTranslationsTest.php Unit-Tests für Push-Action (Batching/Progress/Mapping)
tests/Unit/Actions/PullTranslationsTest.php Unit-Tests für Pull-Action (Key-Counting/Files)
tests/Unit/Actions/PersistLinguistConfigTest.php Unit-Tests für .env-Persistierung/Masking
tests/Unit/Actions/CollectLocalTranslationsTest.php Unit-Tests für lokale Translation-Discovery/Flattening/Writing
tests/Pest.php Pest-Setup + Test-Helper für HTTP/Filesystem
tests/LinguistTest.php Anpassung Legacy-Tests auf neue Facade-Nutzung + Artisan-Tests
src/Services/SetupOrchestrator.php Orchestriert Setup: persist config, resolve project, run sync, auto-translate
src/Services/LinguistApiClient.php Neuer HTTP-Client für Linguist API inkl. Helper/Count/Mapping
src/LinguistServiceProvider.php Registriert neue Commands/Services/Actions im Container
src/Linguist.php Legacy-Klasse refaktoriert (Pooling, vereinfachte Config-Nutzung)
src/Facades/Linguist.php Facade-Docblock an neue/entfernte Methoden angepasst
src/DTO/SyncResult.php Neuer Ergebnis-DTO für Sync-/Pull-/Push-Flows
src/DTO/SetupInput.php Neuer Eingabe-DTO für Setup-Wizard/Orchestrierung
src/Commands/LinguistSetupCommand.php Neues interaktives Setup-Command (Prompts, Setup-Ausführung, Reporting)
src/Commands/LinguistCommand.php Neues linguist:sync Command mit Modi/Optionen/Progress
src/Actions/SyncTranslations.php Sync-Action (remote exports laden + local merge + write)
src/Actions/PushTranslations.php Push-Action (batch store + fallback per key, Progress-Callback)
src/Actions/PullTranslations.php Pull-Action (download exports, write linguist.json, key counts)
src/Actions/PersistLinguistConfig.php Persistiert Token/URL/Project in .env + runtime config
src/Actions/CollectLocalTranslations.php Discover/Parse/Flatten/Write lokaler Translation-Files
composer.json Dependencies erweitert (laravel-actions)
README.md Dokumentation für Setup-Wizard, Commands, Modes und Usage erweitert/aktualisiert

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

@Aldr0n Aldr0n self-assigned this Mar 12, 2026
@Aldr0n Aldr0n added the enhancement An existing feature that just got better label Mar 12, 2026
@Aldr0n Aldr0n requested a review from kaiserkiwi March 12, 2026 11:43
@Aldr0n Aldr0n changed the title Lgt 167 linguist connector package update LGT-167 Linguist Connector Package Update Mar 12, 2026
@Aldr0n Aldr0n force-pushed the lgt-167-linguist-connector-package-update branch from e4c9405 to c6f65e0 Compare March 17, 2026 10:09
@Aldr0n Aldr0n force-pushed the lgt-167-linguist-connector-package-update branch from 63d872b to 1352c5b Compare March 26, 2026 10:04
@Aldr0n Aldr0n force-pushed the lgt-167-linguist-connector-package-update branch from 3cc0825 to e86fdcf Compare March 26, 2026 10:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement An existing feature that just got better

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants