Masowa zmiana nazw (normalizacja)
Spójne i przyjazne dla SEO nazwy plików. Zastępowanie spacji, transliteracja i bezpieczeństwo w URL. Idealne dla sklepów i blogów.
- Bez rejestracji
- Szybkie działanie
- Operacje w pamięci
Zero back-endu, 100% lokalnie.
Masowa zmiana nazw (normalizacja)
Masowa zmiana nazw plików graficznych. SEO friendly, czyste i spójne nazewnictwo
ImageRenamer porządkuje nazwy plików obrazów zgodnie z Twoimi zasadami. Zastępuje spacje, usuwa polskie znaki, normalizuje wielkość liter i stosuje wybrany styl jak kebab case, snake case, camelCase lub PascalCase. Dodajesz prefiksy, sufiksy i numerację z wypełnieniem zerami, a narzędzie pilnuje limitu długości i unikalności nazw w katalogu. Efekt to spójne, czytelne i przyjazne dla SEO nazwy gotowe do publikacji.
Co potrafi narzędzie i kiedy je wybrać
Nieporządek w nazwach plików to realny problem w sklepach internetowych, blogach i repozytoriach assetów. Mamy spacje, polskie znaki, wielkie litery, zbyt długie ciągi, a czasem losowe nazwy prosto z aparatu. Ten moduł likwiduje chaos i wprowadza jednolite reguły, które pomagają w SEO, automatyzacji pipeline oraz w pracy zespołowej. Działa w trybie wsadowym, więc w kilka sekund uporządkujesz setki obrazów.
- Normalizacja nazw na podstawie słów wyłuskanych z oryginału.
- Różne tryby pisowni w jednym miejscu. Łatwe przełączanie profilu.
- Prefiksy i sufiksy sterowane polami wejściowymi.
- Numeracja z kontrolą startu i szerokości wypełnienia.
- Usuwanie polskich znaków i transliteracja znaków spoza ASCII.
- Limit długości oraz automatyczna eliminacja powtórzonych separatorów.
- Gwarancja unikalności nazw w katalogu docelowym bez nadpisywania.
Jak działa renamer pod spodem
Komponent Livewire odbiera pliki, generuje listę podglądu z nowymi nazwami i pozwala zweryfikować wynik przed zapisem. Rdzeniem działania jest funkcja normalizeBase, która rozbija bazową nazwę na słowa, czyści znaki specjalne, usuwa diakrytyki, stosuje wybrany styl pisowni i zapewnia limit długości. Funkcja buildName łączy rdzeń z prefiksem, sufiksem i sekwencją numeracji, a następnie dodaje rozszerzenie oryginalnego pliku. Podczas zapisu do storage publicznego weryfikowana jest unikalność docelowej nazwy. Jeśli istnieje konflikt, narzędzie zwiększa licznik i tworzy nową, wolną nazwę.
// Pseudokod przetwarzania
for each file in local_files:
orig = original filename
ext = extension
base = filename without extension
words = sanitize(base) -> split -> remove diacritics (opcjonalnie)
core = applyCase(words) // kebab, snake, camel, pascal, lower, upper, title lub none
core = replaceSpaces(core, separator)
core = trim and collapse repeated separators
core = limit length
seq = seq_enabled ? pad(counter, seq_width) : ''
candidate = prefix + core + [separator + seq] + suffix + '.' + ext
final = ensureUnique(candidate)
save to /public/tools/image-renamer/final
Tryby pisowni i przykłady
| Tryb | Opis transformacji | Przykład z bazą: Zdjęcie Produktu Nowość 2025 |
|---|---|---|
| kebab | Małe litery, słowa połączone separatorem. Domyślnie separator to myślnik. | zdjecie-produktu-nowosc-2025.jpg |
| snake | Małe litery, słowa oddzielone podkreśleniem. | zdjecie_produktu_nowosc_2025.jpg |
| camel | Pierwsze słowo małe, kolejne z wielkiej litery, brak separatorów. | zdjecieProduktuNowosc2025.jpg |
| pascal | Każde słowo z wielkiej litery, brak separatorów. | ZdjecieProduktuNowosc2025.jpg |
| lower | Wszystko małymi literami z zachowaniem spacji lub wybranego separatora. | zdjecie produktu nowosc 2025.jpg |
| upper | Wszystko wielkimi literami. | ZDIECIE PRODUKTU NOWOSC 2025.jpg |
| title | Inicjały wielkie, reszta małe, spacje zachowane lub zastąpione separatorem. | Zdjecie Produktu Nowosc 2025.jpg |
| none | Brak zmiany pisowni, ale możliwa transliteracja i zamiana spacji. | Zdjęcie Produktu Nowość 2025.jpg → Zdjecie-Produkt-Nowosc-2025.jpg |
Transliteracja i usuwanie polskich znaków
Opcja Usuń polskie znaki zamienia ą, ć, ę, ł, ń, ó, ś, ź, ż na odpowiedniki ASCII. Dodatkowo działa fallback przez iconv, który transliteruje mniej typowe znaki łacińskie. Dzięki temu nazwy są bezpieczne w systemach plików, URL i pipeline CDN. Jeśli chcesz zachować oryginalną pisownię, wyłącz to pole, lecz pamiętaj o możliwych problemach w linuksowych serwerach i w niektórych przeglądarkach podczas pobierania.
Separator, spacje i limit długości
Możesz zdecydować czy spacje mają zostać, czy zamienić je na wybrany separator. Wartością domyślną jest myślnik, ale nic nie stoi na przeszkodzie, by użyć podkreślenia, kropki lub innego znaku. Silnik usuwa zdublowane separatory i przycina je z początku oraz końca nazwy. Limit długości działa na rdzeń bez rozszerzenia. Po jego przekroczeniu nazwa jest bezpiecznie skracana i czyszczona, aby nie urwać w połowie separatora.
Numeracja z wypełnieniem zerami
Numeracja ułatwia porządkowanie serii zdjęć. Ustawiasz start licznika i szerokość, na przykład 3 dla formatu 001. Po włączeniu opcji numeracja jest dopinana do nazwy czystym separatorem. Gdy w katalogu docelowym wykryty zostanie konflikt, renamer rozpocznie próby z kolejnymi numerami i nie nadpisze istniejących plików.
Parametry wejściowe i wyjściowe
| Pole | Opis | Zakres lub format |
|---|---|---|
| local_files[] | Lista wgranych plików | JPEG, PNG, WebP, GIF, SVG, TIFF |
| case | Styl pisowni | none, kebab, snake, camel, pascal, lower, upper, title |
| strip_diacritics | Usuwanie polskich znaków | true lub false |
| replace_spaces, separator | Zamiana spacji na separator | separator dowolny znak, domyślnie - |
| prefix, suffix | Dodatkowe ciągi doklejane do nazwy | dowolny tekst |
| seq_enabled, seq_start, seq_width | Numeracja z kontrolą startu i szerokości | seq_width 1 do 6 |
| limit | Maksymalna długość nazwy bez rozszerzenia | 10 do 200 znaków |
Przykładowe scenariusze
- Sklep online. Zrównanie nazw zdjęć produktów pod schemat kategoria-nazwa-model-numer z numeracją 001, 002, 003.
- Blog. Ujednolicenie nazw ilustracji do postów na przyjazne URL i alt. Łatwiejsze wyszukiwanie i redirecty w CDN.
- Repo zespołowe. Spójne nazwy sprzyjają code review i automatom CI, które walidują naming convention.
- Archiwum. Zmiana nieczytelnych nazw z aparatu na informacyjne i krótkie, z limitem 60 znaków.
Wgląd w implementację
private function wordsFrom($str) {
if ($this->strip_diacritics) $str = $this->stripDiacritics($str);
$s = preg_replace('/[^A-Za-z0-9-_.\s]+/u', ' ', $str);
$parts = preg_split('/[\s_\-]+/u', trim($s));
return array_values(array_filter($parts)) ?: ['plik'];
}
private function applyCase(array $words) {
switch ($this->case) {
case 'snake': return strtolower(implode('_', $words));
case 'camel': return implode('', array_map(fn($i,$w)=>$i?ucfirst(strtolower($w)):strtolower($w), array_keys($words), $words));
case 'pascal': return implode('', array_map(fn($w)=>ucfirst(strtolower($w)), $words));
case 'lower': return strtolower(implode(' ', $words));
case 'upper': return strtoupper(implode(' ', $words));
case 'title': return implode(' ', array_map(fn($w)=>ucfirst(strtolower($w)), $words));
case 'none': return implode(' ', $words);
case 'kebab':
default: return strtolower(implode('-', $words));
}
}
Dobre praktyki nazewnictwa pod SEO i zespół
- Używaj krótkich, opisowych nazw zawierających słowo klucz. Unikaj zbitek bez znaczenia.
- Wybierz jeden separator i trzymaj się go konsekwentnie w całym projekcie.
- Bez polskich znaków i spacji w URL. Zmniejszasz ryzyko błędów w linkowaniu i integracjach.
- Włącz numerację dla serii ujęć jednego produktu. Ułatwia to mapowanie wariantów.
- Dokumentuj schemat w README. Nowe osoby szybciej wdrożą się w repo i deployment.
Rozwiązywanie problemów
- Powtarzające się nazwy po eksporcie. Włącz numerację lub dodaj sufiks wskazujący wariant.
- Zbyt długa nazwa. Zmniejsz limit lub uprość rdzeń. Pamiętaj o ograniczeniach systemów plików i CDN.
- Niechciane znaki w wyniku. Sprawdź opcję usuwania diakrytyków i filtr znaków w
wordsFrom. - Inny separator niż w podglądzie. Upewnij się, że masz zaznaczoną opcję zamiany spacji.
- Brak podglądu obrazków SVG. Miniatura może nie być generowana dla każdego typu. Nazwa zmieni się poprawnie.
Bezpieczeństwo i zgodność
Operacja zmiany nazwy odbywa się na kopii w storage publicznym. Oryginały pozostają bez zmian. Pliki są zapisywane we własnym folderze narzędzia. Linki pobierania możesz używać od razu lub przenieść rezultaty do docelowej lokalizacji. Jeśli w projekcie obowiązuje polityka retencji, ustaw harmonogram czyszczenia katalogu wyników.
Najpierw przetestuj ustawienia na małej próbce. Gdy zaakceptujesz wynik, uruchom renaming na całej paczce. Utrzymasz porządek i unikniesz niespodzianek w linkach oraz mapach witryny.