PDA

Bekijk Volledige Versie : Dynamisch en automatisch gepubliceerde tekststrings vervangen



Jurgen Nijhuis
08/06/07, 13:18
Ik gebruik een programma dat datums publiceert in het Engels, waarbij
ik wel het format kan instellen op het Europese type, maar niet de
taal. Ik kan ook niet de maand in een getal weergeven, maar alleen als
tekst. Dus er komt op zijn best iets uit als "15 May 2007".

De makers gaan dit aanpassen maar pas in de volgende versie waarvan
onbekend is wanneer die uitkomt. Ik wil wel graag dit programma
gebruiken, maar ook de Engelse maanden in het Nederlands weergeven.
Voor de tussentijd zoek ik een makkelijke oplossing.

Nu vroeg ik mij af of het mogelijk is om bij weergeven van de pagina
de tekststrings van de maanden automatisch te laten vervangen door
andere, via javascript of een htaccess-achtige constructie ofzo. Dus
zonder in het script zelf te gaan hacken (kan ook niet want
encrypted), de output dynamisch aanpassen. Ik heb gezocht, maar heb
niks gevonden. Kan zoiets eigenlijk wel?


--
Jurgen Nijhuis
http://www.argosmedia.nl

Ronald Klip
11/06/07, 12:35
Op Fri, 08 Jun 2007 10:42:57 +0200 schreef Jurgen Nijhuis:

>
> Nu vroeg ik mij af of het mogelijk is om bij weergeven van de pagina
> de tekststrings van de maanden automatisch te laten vervangen door
> andere, via javascript of een htaccess-achtige constructie ofzo.

Server-side kan ik me iets voorstellen met een rewrite naar een script dat
de opgevraagde pagina doorzoekt, string vervangt en pagina naar client
stuurt.

Met JavaScript zou je plusminus het volgende kunnen doen:

<div id="datumblok">het is vandaag 8 June 2007</div>

<script type="text/javascript">
<!--
var maanden = [['January', 'januari'],
['June', 'juni'],
['September', 'september']]; // et cetera...
var datumElm = document.getElementById('datumblok');
var datumTekst = datumElm.innerHTML;
for (var i = 0, mL = maanden.length; i < mL; i++) {
if (datumTekst.indexOf(maanden[i][0]) > -1) {
var reOb = new RegExp(maanden[i][0], 'gi');
if (result = reOb.exec(datumTekst)) {
datumElm.innerHTML = RegExp.leftContext
+ maanden[i][1] + RegExp.rightContext;
break; // spring uit de loop
}
}
}
// -->
</script>

Het is wel zo prettig als je het te doorzoeken stukje pagina zo nauwkeurig
mogelijk kunt benaderen.

--
groet, Ronald

Warden Dave
11/06/07, 12:35
"Ronald Klip" <nieuws@contentecontent.invalid> wrote:
> Jurgen Nijhuis:

>> Nu vroeg ik mij af of het mogelijk is om bij weergeven van de pagina
>> de tekststrings van de maanden automatisch te laten vervangen door
>> andere, via javascript of een htaccess-achtige constructie ofzo.

> Server-side kan ik me iets voorstellen met een rewrite naar een script
< dat de opgevraagde pagina doorzoekt, string vervangt en pagina naar
> client stuurt.

Niet geheel duidelijk is of dat 'programma' bij iedere aanroep aan het
werk gaat. Als dat niet zo is lijkt me 1 malige correctie, na iedere
actie van die toepassing, aangewezen. (Alleen voor die datum op de server
de inhoud documenten verwerken is wellicht wat veel van het
goede - en wellicht is een vorm van caching mogelijk...)

> Met JavaScript zou je plusminus het volgende kunnen doen:
<knip>

> var maanden = [['January', 'januari'],
> ['June', 'juni'],
> ['September', 'september']]; // et cetera...
> var datumElm = document.getElementById('datumblok');
> var datumTekst = datumElm.innerHTML;
> for (var i = 0, mL = maanden.length; i < mL; i++) {
> if (datumTekst.indexOf(maanden[i][0]) > -1) {
> var reOb = new RegExp(maanden[i][0], 'gi');
> if (result = reOb.exec(datumTekst)) {
> datumElm.innerHTML = RegExp.leftContext
> + maanden[i][1] + RegExp.rightContext;
> break; // spring uit de loop
> }
> }

Ook als 't dan aan de kant van de client moet (wat me altijd wat vreemd
voorkomt als het om niet-clientspecifieke acties gaat) kan 't wat werk
besparen als je 't in 1 klap laat doen, i.p.v. voor iedere maand los.
Bijv. met iets in de richting van:

var oNames = {January:'januari', June:'juni', September:'september'};
var names = []; for (var n in oNames) names.push(n);
alert("8 June 2007".replace(new RegExp("(\\d{1,2})\\s+(" +
names.join('|') + ")\\s+(\\d{4})", "g"),
function(s, d, m, j) { return d + " " + oNames[m] + " " + j; }));


groet,
WD

Ronald Klip
11/06/07, 12:35
Op Fri, 08 Jun 2007 14:53:27 +0200 schreef Warden Dave:

> "Ronald Klip" <nieuws@contentecontent.invalid> wrote:
>> Jurgen Nijhuis:
>
>>> Nu vroeg ik mij af of het mogelijk is om bij weergeven van de pagina
>>> de tekststrings van de maanden automatisch te laten vervangen door
>>> andere, via javascript of een htaccess-achtige constructie ofzo.
>
> Ook als 't dan aan de kant van de client moet (wat me altijd wat vreemd
> voorkomt als het om niet-clientspecifieke acties gaat) kan 't wat werk
> besparen als je 't in 1 klap laat doen, i.p.v. voor iedere maand los.

Ja, er gaan immers maar liefst 12 maanden in een jaar! ;)

> var oNames = {January:'januari', June:'juni', September:'september'};
> var names = []; for (var n in oNames) names.push(n);
> alert("8 June 2007".replace(new RegExp("(\\d{1,2})\\s+(" +
> names.join('|') + ")\\s+(\\d{4})", "g"),
> function(s, d, m, j) { return d + " " + oNames[m] + " " + j; }));

Jurgen, het script van WD gebruikt een echt Object, is dus oneindig cooler
en daarme zeer geschikt voor dit soort weer.


--
groet, Ronald

Hans Konings
11/06/07, 12:35
Ronald Klip :

> Warden Dave :

>> var oNames = {January:'januari', June:'juni', September:'september'};
>> var names = []; for (var n in oNames) names.push(n);
>> alert("8 June 2007".replace(new RegExp("(\\d{1,2})\\s+(" +
>> names.join('|') + ")\\s+(\\d{4})", "g"),
>> function(s, d, m, j) { return d + " " + oNames[m] + " " + j; }));

> Jurgen, het script van WD gebruikt een echt Object, is dus oneindig cooler
> en daarme zeer geschikt voor dit soort weer.

Allemaal waar, maar als straks de eerste blaadjes vallen, wil Jurgen een
contrascript dat het Object er weer uit sloopt.

--
gr-hk

Warden Dave
11/06/07, 12:35
"Ronald Klip" <nieuws@contentecontent.invalid> wrote:
> Op Fri, 08 Jun 2007 14:53:27 +0200 schreef Warden Dave:

[ergerlijke efficiƫntie]
>> ... kan 't wat werk besparen als je 't in 1 klap laat doen, i.p.v.
>> voor iedere maand los.

> Ja, er gaan immers maar liefst 12 maanden in een jaar! ;)

Inderdaad! Je durft er zelfs nauwelijks aan te denken wat 't allemaal
scheelt als de machines van Jurgens websitebezoekers vrijwel allemaal
precies hetzelfde staan te doen!

WD

Ronald Klip
11/06/07, 12:35
Op Fri, 08 Jun 2007 15:52:56 +0200 schreef Hans Konings:
> Ronald Klip :
>> Warden Dave :
>
>>> var oNames = {January:'januari', June:'juni', September:'september'};
>>> var names = []; for (var n in oNames) names.push(n);
>>> alert("8 June 2007".replace(new RegExp("(\\d{1,2})\\s+(" +
>>> names.join('|') + ")\\s+(\\d{4})", "g"),
>>> function(s, d, m, j) { return d + " " + oNames[m] + " " + j; }));
>
>> Jurgen, het script van WD gebruikt een echt Object, is dus oneindig
>> cooler
>> en daarme zeer geschikt voor dit soort weer.
>
> Allemaal waar, maar als straks de eerste blaadjes vallen, wil Jurgen een
> contrascript dat het Object er weer uit sloopt.

Bij nader inzien bevat de laatste regel een hoop warmpjes geneste
expressies...

(Dave, neem svp geen aanstoot, ik scherts maar wat)

--
groet, Ronald

Ronald Klip
11/06/07, 12:35
Op Fri, 08 Jun 2007 16:11:44 +0200 schreef Warden Dave:

> Je durft er zelfs nauwelijks aan te denken wat 't allemaal scheelt als
> de machines van Jurgens websitebezoekers vrijwel allemaal precies
> hetzelfde staan te doen!

Snel! duurzaamwebontwerp.nl is nog vrij!



--
groet, Ronald

Warden Dave
11/06/07, 12:35
"Ronald Klip" <nieuws@contentecontent.invalid> wrote:
> Op Fri, 08 Jun 2007 16:11:44 +0200 schreef Warden Dave:

['Maar, maar.... er gaan maar 12 maanden in een jaar!']
>> Je durft er zelfs nauwelijks aan te denken wat 't allemaal scheelt als
>> de machines van Jurgens websitebezoekers vrijwel allemaal precies
>> hetzelfde staan te doen!

> Snel! duurzaamwebontwerp.nl is nog vrij!

Net weg... Rene Pijlman leeft dus nog...

Maar om de mini-top af te sluiten: een keurmerk plus vignet voor de
energievriendelijke site lijkt me een begin. (Aan het groene zeehondje met
pixelliniaal kan de bezoeker dan zien dat het om een /echt/ 'vriendelijke'
webstek gaat.)

WD

Erick T. Barkhuis
11/06/07, 12:35
Ronald Klip:
> Op Fri, 08 Jun 2007 16:11:44 +0200 schreef Warden Dave:
>
> > Je durft er zelfs nauwelijks aan te denken wat 't allemaal scheelt als
> > de machines van Jurgens websitebezoekers vrijwel allemaal precies
> > hetzelfde staan te doen!
>
> Snel! duurzaamwebontwerp.nl is nog vrij!

Ik hou de heer Pijlman wel even in de kladden.

--
Erick