Substitutions
Met substitution rules kun je vertalingen corrigeren en de inhoud van pagina's, javascript-bestanden en meer aanpassen. Het bevat dezelfde functionaliteit als zoeken & vervangen, maar heeft ook functies waarmee je complexere regels kunt toepassen.
Gebruik de editor wanneer dit mogelijk is. De editor is makkelijker in gebruik en biedt directe visuele feedback. Vooral voor het bewerken van tekstfragmenten is dit vaak de makkelijkste oplossing.
Substitutions toevoegen:
Om substitutions aan je clone toe te voegen, open je je clone in het control panel en klik je op Substitution rules in het zijmenu. Je ziet dan een tabel waarin je je substitution rules kunt beheren. De tabel bestaat uit twee tekstvelden, drie checkboxes voor opties, een knop om een regel te verwijderen of toe te voegen, en met de pijltjes kun je de volgorde van regels veranderen.

Het duurt ongeveer 30 tot 60 seconden om wijzigingen aan substitutions en substitution exclusions door te voeren. Lijkt een regel na twee minuten nog niet te werken, controleer dan of de regel helemaal juist is.
Hoe substitutions werken
Om de substitutions goed te kunnen gebruiken, is het belangrijk om te begrijpen hoe deze werken. Het belangrijkste om te weten is dat alle regels tegelijkertijd worden toegepast. Dit klinkt wellicht verwarrend, daarom leggen we dit graag aan de hand van een animatie uit. Tijdens het evalueren van regels worden de volgende regels aangehouden om te kiezen tussen twee conflicterende regels:
- Als regel a meer tekens heeft gematcht dan regel b, dan gaat regel a boven regel b.
- Wanneer twee regels hetzelfde aantal tekens gematcht hebben, wint de regel die hoger in de tabel staat.
Hieronder is een animatie te zien waarin vijf (overlappende) regels worden toegepast op een stuk broncode. In deze animatie worden de woorden hit en miss gebruikt om aan te geven of een regel een karakter wel of niet kan matchen. Rechts van de regel is te zien hoeveel tekens een regel al gematcht heeft.

In de animatie is te zien dat er eerst een conflict ontstaat tussen de regels boekenkast en boek. In dit geval hebben beide regels 4 tekens gematcht en wordt daarom gekeken naar de volgorde. Omdat boekenkast boven boek staat, wordt de volledige match van boek verworpen en gebeurt er niks met deze regel. Even later ontstaat er een conflict tussen de regels kast en boekenkast. Beide regels hebben een volledige match. Omdat in dit geval boekenkast meer tekens heeft gematcht dan boek, wint deze regel en wordt de regel boekenkast toegepast. Nadat een regel is toegepast, worden alle andere regels gereset en moeten ze allemaal opnieuw beginnen.
Het 'Opslaan'-gedrag
Het opslaan van de substitution rules werkt vanwege technische redenen op een aparte manier. Als je een nieuwe substitution rule toevoegt en vervolgens opslaat, worden eerst alle oude substitution rules verwijderd en daarna opnieuw toegevoegd. Stel dus dat je 3 substitution rules hebt en er 2 toevoegt en vervolgens opslaat, dan worden er eerst 3 verwijderd en vervolgens 5 nieuwe toegevoegd. Dit is voornamelijk belangrijk om te weten bij de volgende valkuil.
Opties
Bij elke substitution heb je drie opties die je aan of uit kunt zetten. Hieronder leggen we uit wat elke optie doet. Let erop dat Regular expression en Single word niet tegelijkertijd aan kunnen staan.
Case insensitive
Met de optie Case insensitive maak je de substitution hoofdletterongevoelig. Let erop dat bij de replacement geen hoofdlettergebruik wordt overgenomen. Onderstaand voorbeeld vervangt zowel sinaasappel als SinaAsAPPel door appelsien:
Original Replacement | Options | |
|---|---|---|
Regular expression
Voordat je aan de slag gaat met de regular expression, is het slim om eerst dit stuk te lezen.
Met de optie regular expression wordt de regel beschouwd als een regular expression. Je kunt deze optie gebruiken om complexere substitutions te maken die bijvoorbeeld gegevens uit het origineel moeten overnemen in de vervanging. Regular expressions bieden binnen Clonable de mogelijkheid om matchgroepen te gebruiken in de replacement (bijv. $1, $2, enz.). Voor meer informatie over regular expressions binnen Clonable kun je dit artikel lezen. Deze optie kan niet worden gebruikt in combinatie met Single word.
Single word
De optie Single word gebruik je wanneer je een substitution wilt maken voor een los woord en wilt voorkomen dat dit woord ook wordt vervangen als het deel is van een groter woord of bijvoorbeeld een url. Wanneer het origineel van je substitution een spatie bevat (en dus uit meerdere woorden bestaat), is deze optie vaak zinloos. Ook wanneer je woord geen deel is van een ander woord op je clone en niet voorkomt in non-tekstelementen zoals url's of scripts, kun je deze optie uitlaten. Deze optie kan niet worden gebruikt in combinatie met Regular expression.
Substitutions met HTML
Wanneer je een substitution wilt maken voor een stuk tekst met daarin verschillende opmaak (bijvoorbeeld een dikgedrukt woord), kun je niet zomaar de tekst gebruiken als original. Tekst met wisselende opmaak bevat namelijk HTML-tags in de broncode, die daarom ook onderdeel moeten zijn van de substitution rule. Bekijk dit artikel als je meer wilt weten over hoe je moet omgaan met HTML in substitutions.
Ook wanneer je geen duidelijk verschil in opmaak ziet, kan het zijn dat er zich HTML-tags bevinden in de tekst die je wilt vervangen. Ook kunnen sommige tekens gecodeerd zijn, waardoor de broncode afwijkt van wat je ziet. In plaats van een spatie kan bijvoorbeeld gebruikt worden en in plaats van & kan & gebruikt worden. Controleer daarom altijd de broncode als een regel niet lijkt te werken.
Valkuilen
Tijdens het maken van substitutions kun je een aantal valkuilen tegenkomen waardoor je regels niet werken. Hieronder hebben we de meest voorkomende op een rijtje gezet.
Regels met domeinnamen in het origineel
Wanneer het origineel van je regel de domeinnaam van je clone bevat, is het belangrijk deze te vervangen door de domeinnaam van de originele site. Dit is nodig omdat het vervangen van de domeinnaam ook een substitution rule is die wordt toegepast met je eigen regels. Wanneer je regel wordt uitgevoerd, staat er dus nog steeds de originele domeinnaam.
Goed
Original Replacement | Options | |
|---|---|---|
Niet goed
Original Replacement | Options | |
|---|---|---|
Witruimte in substitutions
Wanneer je substitutions maakt, moet je er ook voor zorgen dat de witruimte exact overeenkomt. Dit is vooral van belang bij substitutions met meerdere regels. Zorg daarom dat je altijd het origineel via de view-source-optie van je browser gebruikt en niet via wat je ziet of via de developer tools.
Gecodeerde tekens
Het komt vaak voor dat speciale tekens zoals & of > HTML-gecodeerd worden in de broncode als & en >. Je moet dan voor je substitution rule in het origineel ook de gecodeerde variant gebruiken om te zorgen dat de regel werkt. Je kunt in dit artikel meer lezen over HTML in je substitution rules.
Errors in de substitution rules
Wanneer je aan de slag gaat met regular expressions in je substitution rules, moet je rekening houden met validatiefouten die kunnen optreden bij het opslaan van de substitution rules. Je kunt de substitution rules vergelijken met lampen die in serie geschakeld zijn. Wanneer een substitution rule faalt, worden alle opvolgende regels ook niet opgeslagen. Dit kan ertoe leiden dat een aantal substitution rules worden verwijderd.