toBeFile("Datei {$fileName} fehlt für Locale {$locale}"); expect(localizationSyncFlattenKeys(require $localeFile)) ->toEqualCanonicalizing(localizationSyncFlattenKeys(require $germanFile)); } })->with(['en', 'es', 'fr']); /** * @return array */ function localizationSyncFlattenKeys(array $translations, string $prefix = ''): array { $keys = []; foreach ($translations as $key => $value) { $translationKey = $prefix.(string) $key; if (is_array($value)) { $keys = [...$keys, ...localizationSyncFlattenKeys($value, $translationKey.'.')]; continue; } $keys[] = $translationKey; } return $keys; }