Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

Woorden vertalen in script

Pagina: 1
Acties:
  • 741 views

Verwijderd

Topicstarter
Goeiemiddag,

Ik wil op mijn site het script van weather.com gebruiken om de weersvooruitzichten voor verschillende steden te weergeven. Dat is gelukt. Alleen zou ik de informatie wel graag in het Nederlands willen. De vaste informatie (die er dus altijd staat) is wel te verhalen via de bestanden die ik heb, maar omdat het script van weather.com is kan ik dus niet dingen zoals 'Mostly Cloudy' en 'Sunny' vertalen. Weet iemand misschien hoe ik daar wel voor kan zorgen met een PHP code?

Hopelijk is het een beetje duidelijk. ;) Alvast bedankt.

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Maak zelf een lijst met vertalingen en gebruik str_replace, lijkt met toch niet echt super ingewikkeld...

  • Enfer
  • Registratie: Februari 2004
  • Laatst online: 10-10 13:28
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

//text wie je wilt aanpassen
$text = "Sunny but Cloudy";

// Origineel => nieuw woord
$translations = { "Sunny" => "Zonnig", "Cloudy" => "Bewolkt" };

foreach ($translations as $key => $value) {
    $text = str_replace( $value, $key, $text );
}

?>


Even een untested scriptje wat goed genoeg moet zijn voor jou gebruik :)

[ Voor 8% gewijzigd door Enfer op 04-02-2008 16:34 ]


  • Xander
  • Registratie: Oktober 2002
  • Laatst online: 06:59
Enfer schreef op maandag 04 februari 2008 @ 16:34:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

//text wie je wilt aanpassen
$text = "Sunny but Cloudy";

// Origineel => nieuw woord
$translations = { "Sunny" => "Zonnig", "Cloudy" => "Bewolkt" };

foreach ($translations as $key => $value) {
    $text = str_replace( $value, $key, $text );
}

?>


Even een untested scriptje wat goed genoeg moet zijn voor jou gebruik :)
Wat doe je moeilijk met die foreach. str_replace kan twee array's als argumenten gebruiken.

Wat ik me alleen af vraag, hoe werkt dat scriptje van weather.com? Is dat wel php? En niet iets dat via een stukje javacscript wordt aangeroepen? Dat laatste zou je ietsje meer moeite voor moeten doen. ;)

PC specs!---Pulse mee voor GoT!
[22:49:37] <@Remy> ik wil een opblaasbare dSLR :+


Verwijderd

Topicstarter
Even een untested scriptje wat goed genoeg moet zijn voor jou gebruik :)
Ik heb dat scriptje net uitgeprobeerd, maar het lijkt niet te werken. Deze melding krijg ik:

Parse error: syntax error, unexpected '{' in /public_html/weather/weather.php on line 297

Aangezien ik nog niet veel van php weet kan ik dit nu niet 1 2 3 oplossen :P
Wat ik me alleen af vraag, hoe werkt dat scriptje van weather.com? Is dat wel php? En niet iets dat via een stukje javacscript wordt aangeroepen? Dat laatste zou je ietsje meer moeite voor moeten doen. ;)
Volgens mij werkt het niet met javascript, maar ik kan er ook na zitten. In het script is in ieder geval niets te vinden dat te maken heeft met javascript.

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Enfer schreef op maandag 04 februari 2008 @ 16:34:
Even een untested scriptje wat goed genoeg moet zijn voor jou gebruik :)
Heel aardig van je, maar je kauwt hier het maken van een array, een foreach loopje en str_replace voor, 3 dingen die dusdanig basic zijn dat elke PHP tutorial het je in de 1e 10 minuten al lang en breed uitgelegd heeft.

Omdat deze vraag zo makkelijk te beantwoorden is met basic PHP is dit gewoon een hele luie script request. TS leert hier niets van, heeft hoogstens een eenmalig leuk resultaat. De rest leert er ook niets van, want té basic.

str_replace() was al genoemd door Erkens, dus de enige actie die het topic nog enige bestaansrecht geeft is vragen wat ts geprobeerd heeft. Door een kant en klarre oplossing te geven is het topic direct op de minst leerzame manier uitgekauwd.
edit:
Verwijderd schreef op maandag 04 februari 2008 @ 16:47:
Parse error: syntax error, unexpected '{' in /public_html/weather/weather.php on line 297

Aangezien ik nog niet veel van php weet kan ik dit nu niet 1 2 3 oplossen :P
Syntax errors zijn eenvoudig op te lossen zodra je de syntax van betreffende taal kent. Dus verdiep je eens in een PHP tutorial.

[ Voor 19% gewijzigd door Voutloos op 04-02-2008 16:49 ]

{signature}


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 23:37

TeeDee

CQB 241

Weather.com heeft afaik ook een parameter met Weathertype.
Vertaling gebaseerd op de icon code.

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
    /// <summary>
    /// Contains all translations for the WeatherConditions. These are based on the Icon used
    /// </summary>
    /// <param name="cond"></param>
    /// <returns></returns>
    private string WeatherCondition(object cond)
    {
        Hashtable WeatherTypes = new Hashtable();
        WeatherTypes.Add(0, "Onweersbuien");
        WeatherTypes.Add(1, "Regen en Wind");
        WeatherTypes.Add(2, "Regen en Wind");
        WeatherTypes.Add(3, "Onweersbuien");
        WeatherTypes.Add(4, "Zware Onweersbuien");
        WeatherTypes.Add(5, "Regen/Natte Sneeuw");
        WeatherTypes.Add(6, "Hagel");
        WeatherTypes.Add(7, "Regen/Natte Sneeuw/Hagel");
        WeatherTypes.Add(8, "Lichte Regen/Hagel");
        WeatherTypes.Add(9, "Lichte Regen");
        WeatherTypes.Add(10, "Zware Regen/Hagel");
        WeatherTypes.Add(11, "Regen");
        WeatherTypes.Add(12, "Zware Regen");
        WeatherTypes.Add(13, "Lichte Sneeuwbuien");
        WeatherTypes.Add(14, "Sneeuw");
        WeatherTypes.Add(15, "Sneeuwvlokken");
        WeatherTypes.Add(16, "Zware Sneeuwbuien");
        WeatherTypes.Add(17, "Onweersbuien");
        WeatherTypes.Add(18, "Hagel");
        WeatherTypes.Add(19, "Stof");
        WeatherTypes.Add(20, "Mist");
        WeatherTypes.Add(21, "Nevel");
        WeatherTypes.Add(22, "Smog");
        WeatherTypes.Add(23, "Winderig");
        WeatherTypes.Add(24, "Winderig");
        WeatherTypes.Add(25, "Koud");
        WeatherTypes.Add(26, "Bewolkt");
        WeatherTypes.Add(27, "Zwaar Bewolkte Nacht");
        WeatherTypes.Add(28, "Zwaar Bewolkte Dag");
        WeatherTypes.Add(29, "Licht Bewolkte Nacht");
        WeatherTypes.Add(30, "Licht Bewolkte Dag");
        WeatherTypes.Add(31, "Heldere Nacht");
        WeatherTypes.Add(32, "Zonnige Dag");
        WeatherTypes.Add(33, "Redelijke Nacht");
        WeatherTypes.Add(34, "Licht Bewolkte Dag");
        WeatherTypes.Add(35, "Onweersbuien");
        WeatherTypes.Add(36, "Warme Zonnige Dag");
        WeatherTypes.Add(37, "Plaatselijke Onweersbuien");
        WeatherTypes.Add(38, "Bliksem");
        WeatherTypes.Add(39, "Zware Regenbuien");
        WeatherTypes.Add(40, "Zware Regenbuien");
        WeatherTypes.Add(41, "Zware Sneeuwbuien");
        WeatherTypes.Add(42, "Zware Sneeuwbuien");
        WeatherTypes.Add(43, "Winderig/Lichte Sneeuw");
        WeatherTypes.Add(44, "Licht Bewolkte Dag");
        WeatherTypes.Add(45, "Regenachtige Nacht");
        WeatherTypes.Add(46, "s'Nachts Lichte Sneeuw");
        WeatherTypes.Add(47, "s'Nachts Onweersbuien");
        int _cond = Convert.ToInt32(cond); 
        return WeatherTypes[_cond].ToString();
    }

Tevens correspondeert dit met de leuke YahooWeatherIcons. Bovenstaande method is in C# maar lijkt me vrij triviaal om naar PHP om te zetten.

Edit: mijn eigen site maakt oa gebruik van bovenstaande methode. De YahooWeatherIcons zijn afaik niet zomaar te downloaden, maar daar kan je evt. ook weer een leuk script voor bouwen om aan te passen.

Edit2: Bovenstaande method maakt gebruik van (evt. middels Xpath te verkrijgen) 'weather/cc/icon'. Dat icon correspondeert met bovenstaande vertalingen.

[ Voor 5% gewijzigd door TeeDee op 04-02-2008 16:57 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Ik vind dit een zeer leuk idee,

je zou dit bijvoorbeeld nog verder uit kunnen werken, door bezoekers hun eigen plaats naam in te vullen, en dan dat op te slaan in een coockie, waarna, als de bezoeker terugkomt, gelijk op jou website zien wat voor weer het is in hun plaats / dorp / gehucht.

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Verwijderd schreef op maandag 04 februari 2008 @ 16:53:
Ik vind dit een zeer leuk idee,

je zou dit bijvoorbeeld nog verder uit kunnen werken, door bezoekers hun eigen plaats naam in te vullen, en dan dat op te slaan in een coockie, waarna, als de bezoeker terugkomt, gelijk op jou website zien wat voor weer het is in hun plaats / dorp / gehucht.
Daarvoor moeten ze niet op je website, maar naar buiten kijken.

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Verwijderd

offtopic:
Kwakdoos wordt altijd vrolijk van zulke opmerkingen vlak voordat hij vrij is van't werk


Lukt het al met het script?

Verwijderd

Topicstarter
Lukt het al met het script?
Nee, niet echt. Ik zit m'n hersens over jullie ideeën te breken, maar heb nog geen idee hoe ik zoiets zou moeten doen. Wil nu gewoon de woorden vertaald krijgen, en naar de rest (plaatjes en dergelijke) kijk ik later wel. Heb geprobeerd om het script van Enfer werkend te krijgen, maar ik kan niet eens uit jullie antwoorden halen of die wel zou kunnen werken..

*dacht dat het veel makkelijker zou zijn*

[ Voor 5% gewijzigd door Verwijderd op 04-02-2008 17:04 ]


  • Xander
  • Registratie: Oktober 2002
  • Laatst online: 06:59
Verwijderd schreef op maandag 04 februari 2008 @ 16:47:
[...]

Volgens mij werkt het niet met javascript, maar ik kan er ook na zitten. In het script is in ieder geval niets te vinden dat te maken heeft met javascript.
Maar wat is het dan? PHP? Linkje naar het script?

PC specs!---Pulse mee voor GoT!
[22:49:37] <@Remy> ik wil een opblaasbare dSLR :+


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 23:37

TeeDee

CQB 241

Afaik kan Weather.com een XML tonen.

Dan is het een kwestie van inladen, opslaan en vertalen.

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Topicstarter
Linkje naar het script?
Klik.

  • Xander
  • Registratie: Oktober 2002
  • Laatst online: 06:59
Op regel 269:
PHP:
1
    echo "<weather>$response</weather>";


Wordt de uitvoer geschreven. Je zou daarvoor iets als Enfer's scriptje kunnen neerzetten:

Even heel basic:
PHP:
1
2
3
$vervang = Array("Sunny", "rain");
$door = Array("Zonnig", "regen");
str_replace($vervang, $door, $response);

PC specs!---Pulse mee voor GoT!
[22:49:37] <@Remy> ik wil een opblaasbare dSLR :+


  • StephanVierkant
  • Registratie: Mei 2003
  • Laatst online: 05-11 23:08
* StephanVierkant is met kwakdoos eens

iGoogle heeft hier trouwens wel een geinig toepassing voor, de thema's die je kunt instellen wisselen dikwijls naar aanleiding van het weer en het dagdeel.

Verwijderd

Topicstarter
Je zou daarvoor iets als Enfer's scriptje kunnen neerzetten.
Daarvoor in de plaats of ervoor (welke regel?)?

  • Xander
  • Registratie: Oktober 2002
  • Laatst online: 06:59
"er voor"

Voor die regel die ik quote.

Logisch nadenken: je wilt nogsteeds output (dus niet het regeltje dat daar voor zorgt vervangen) en ik neem aan dat je het met me eens bent dat het handiger is om de tekst eerst te vertalen voordat ie weggeschreven wordt. ;)

PC specs!---Pulse mee voor GoT!
[22:49:37] <@Remy> ik wil een opblaasbare dSLR :+


Verwijderd

Topicstarter
Lang zitten prutsen, maar het is niet gelukt. Denk dat ik toch voortaan is wat meer over php ga lezen voordat ik aan dit soort dingen begin. Met andere woorden: op welke regel moet het scriptje komen te staan? Misschien is het me net al gelukt, alleen krijg ik telkens een syntax error.

Sorry dat ik zo dom over kom, alleen wil ik geen baggerscript op mijn site zetten. Moeilijk als je nauwelijks iets van php af weet.. :P

  • Xander
  • Registratie: Oktober 2002
  • Laatst online: 06:59
Verwijderd schreef op maandag 04 februari 2008 @ 18:09:
Lang zitten prutsen, maar het is niet gelukt. Denk dat ik toch voortaan is wat meer over php ga lezen voordat ik aan dit soort dingen begin.
Strak plan.
Met andere woorden: op welke regel moet het scriptje komen te staan? Misschien is het me net al gelukt, alleen krijg ik telkens een syntax error.
Regel heb ik al genoemd, het moet vóór 269. En dan niet op 1 (ja, da's ook voor 269) maar net voor die ene regel. :P

PC specs!---Pulse mee voor GoT!
[22:49:37] <@Remy> ik wil een opblaasbare dSLR :+


  • DrClaw
  • Registratie: November 2002
  • Laatst online: 15-10 14:49
code:
1
2
3
4
5
6
7
8
9
10
11
12
function subst( $arr, $msg )
{
        foreach( $arr as $key => $val ) {
                $msg = preg_replace( $key, $val, $msg );
        }
        return $msg;
}

$mysubst['/ZOEKTERM1/'] = 'VERVANGENDEWAARDE1';
$mysubst['/ZOEKTERM2/'] = 'VERVANGENDEWAARDE2';

$antwoord = subst( $mysubst, $origineelbericht );

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

DrClaw schreef op maandag 04 februari 2008 @ 18:19:
code:
1
2
3
4
5
6
7
8
9
10
11
12
function subst( $arr, $msg )
{
        foreach( $arr as $key => $val ) {
                $msg = preg_replace( $key, $val, $msg );
        }
        return $msg;
}

$mysubst['/ZOEKTERM1/'] = 'VERVANGENDEWAARDE1';
$mysubst['/ZOEKTERM2/'] = 'VERVANGENDEWAARDE2';

$antwoord = subst( $mysubst, $origineelbericht );
Waarom zo ranzig? en dan ook nog eens een regex gebruiken :X
De standaard str_replace functie werkt hiervoor vele male sneller ;)

Verwijderd

Topicstarter
Xander schreef op maandag 04 februari 2008 @ 17:19:
Op regel 269:
PHP:
1
    echo "<weather>$response</weather>";


Wordt de uitvoer geschreven. Je zou daarvoor iets als Enfer's scriptje kunnen neerzetten:

Even heel basic:
PHP:
1
2
3
$vervang = Array("Sunny", "rain");
$door = Array("Zonnig", "regen");
str_replace($vervang, $door, $response);
Heb het geprobeerd, maar de woorden worden niet vertaald. Ik denk toch dat het wat anders moet, want er komt blijkbaar wel javascript in voor..


HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!-- Dependency -->
<script src="http://yui.yahooapis.com/2.4.1/build/yahoo/yahoo-min.js"></script>

<!-- Used for Custom Events and event listener bindings --> 
<script src="http://yui.yahooapis.com/2.4.1/build/event/event-min.js"></script> 

<!-- Source file -->
<script src="http://yui.yahooapis.com/2.4.1/build/connection/connection-min.js"></script>

<script TYPE="text/javascript">
function submitenter(myfield,e)
{
    var keycode;
    if (window.event) keycode = window.event.keyCode;
    else if (e) keycode = e.which;
    else return true;

    if (keycode == 13)
    {
        getModule(myfield,0);
        return false;
    }
    else
    return true;
}
</script>

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 23:37

TeeDee

CQB 241

Wat heeft deze code te maken met het vertalen van een script/feed?

Heart..pumps blood.Has nothing to do with emotion! Bored


  • André
  • Registratie: Maart 2002
  • Laatst online: 19-11 11:08

André

Analytics dude

Verwijderd schreef op maandag 04 februari 2008 @ 18:09:
Lang zitten prutsen, maar het is niet gelukt. Denk dat ik toch voortaan is wat meer over php ga lezen voordat ik aan dit soort dingen begin. Met andere woorden: op welke regel moet het scriptje komen te staan? Misschien is het me net al gelukt, alleen krijg ik telkens een syntax error.

Sorry dat ik zo dom over kom, alleen wil ik geen baggerscript op mijn site zetten. Moeilijk als je nauwelijks iets van php af weet.. :P
Ik zou mee inderdaad meer gaan verdiepen in de werking van PHP. Je komt nu iedere keer met hele kleine vragen terug die je naar mijn idee ook zelf had op kunnen lossen. En zonder een gedegen basiskennis moeten we alles tot in detail uitleggen en word dit topic gewoon een scriptrequest topic. Ik zie er op dit moment niets constructiefs meer uitkomen dus daarom gaat hij dicht.
Pagina: 1

Dit topic is gesloten.