login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > Handige scripts > Taalselectie script.

Taalselectie script.

Auteur: JBke - 11 februari 2007 - 02:21 - Gekeurd door: Joel - Hits: 6610 - Aantal punten: 3.25 (2 stemmen)



Een simpel script om "momenteel" op 1 bepaalde pagina van een website een taalselectie in te bouwen.
Mits kleine aanpassing met Cookies en/of Sesisons en eventueel een MySQL database, kan dit uiteraard eenvoudig uitgebreid worden voor een hele site.

Het script begint eigenlijk op volgende url:
http://www.jb-w...etlang.php

maar omdat daar fotos enzo bijzitten heb ik enkel het belangrijkste script hier gepost
het volledige script is beneden te downloaden in een .gz bestand met alle fotos en
taalbestanden erin.

Code:
  1. <?php
  2. // Taalvoorkeuren lezen uit de variabele 'lang' in de URL:
  3. if (isset($_GET['lang'])) {
  4. $taalvoorkeuren = $_GET['lang'];
  5. } else {
  6. $taalvoorkeuren = "";
  7. }
  8.  
  9. // Bevat de URL-variabele 'lang' niet minstens 2 tekens voor een
  10. // korte taalcode, gebruik dan de HTTP-header 'Accept-Language':
  11. if ((strlen($taalvoorkeuren) < 2) and (isset($_SERVER['HTTP_ACCEPT_LANGUAGE']))) {
  12. $taalvoorkeuren = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
  13. }
  14.  
  15. // $taalvoorkeuren omzetten in kleine letters:
  16. $taalvoorkeuren = strtolower($taalvoorkeuren);
  17.  
  18. // Zijn de taalvoorkeuren hierna nog steeds onbekend,
  19. // gebruik dan Engels ($taal = 0) als de standaardtaal:
  20. if (strlen($taalvoorkeuren) < 2) {
  21. $taal = 0;
  22. // Gebruik vervolgens een snelle en eenvoudige controle
  23. // voor een korte taalcode van 2 letters:
  24. } elseif (strlen($taalvoorkeuren) == 2) {
  25. if ($taalvoorkeuren == "fr" ) {
  26. $taal = 1; // Frans
  27. } elseif ($taalvoorkeuren == "nl") {
  28. $taal = 2; // Nederlands
  29. } elseif ($taalvoorkeuren == "de") {
  30. $taal = 3; // Duits
  31. } else {
  32. $taal = 0; // Engels is de standaardinstelling
  33. }
  34. // Gebruik tot slot reguliere expressies om langere taalvoorkeuren
  35. // te verwerken. Daarbij gaan we ervan uit dat de meeste informatie
  36. // beschikbaar is in de standaardtaal Engels en er meer informatie
  37. // beschikbaar is in de wereldtaal Frans dan het Nederlands:
  38. } else {
  39. if (ereg("en", $taalvoorkeuren)) {
  40. $taal = 0; // Engels
  41. } elseif (ereg("fr", $taalvoorkeuren)) {
  42. $taal = 1; // Frans
  43. } elseif (ereg("nl", $taalvoorkeuren)) {
  44. $taal = 2; // Nederlands
  45. } elseif (ereg("de", $taalvoorkeuren)) {
  46. $taal = 3; // Duits
  47. } else {
  48. $taal = 0; // Engels
  49. }
  50. }
  51.  
  52. // Taalcode voor HTTP en HTML, en paginatitel instellen:
  53. switch ($taal) {
  54. case 1: // Frans
  55. $taalcode = "fr";
  56. $titel = "Les langues en Europe";
  57. break;
  58. case 2: // Nederlands
  59. $taalcode = "nl";
  60. $titel = "Talen in Europa";
  61. break;
  62. case 3: // Duits
  63. $taalcode = "de";
  64. $titel = "Sprachen in Europa";
  65. break;
  66. default: // Engels is de standaardinstelling
  67. $taalcode = "en";
  68. $titel = "Languages in Europe";
  69. }
  70.  
  71. // HTTP-headers instellen:
  72. if (!headers_sent()) {
  73. header("Content-Language: " . $taalcode);
  74. header("Content-Type: text/html; charset=iso-8859-1");
  75. }
  76.  
  77. ?>
  78. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  79. <html lang="<?php echo $taalcode; ?>">
  80. <head>
  81. <meta http-equiv="Content-Language" content="<?php echo $taalcode; ?>">
  82. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  83. <title><?php echo $titel; ?></title>
  84. <link href="winxpvg.css" rel="stylesheet" type="text/css">
  85. </style>
  86. </head>
  87. <body lang="<?php echo $taalcode; ?>">
  88. <p>
  89. <a href="getlang.php?lang=en" hreflang="en" <?php
  90. if ($taal == 0) {
  91. echo "style=\"font-weight: bold;\" ";
  92. }
  93. ?>title="English">English</a> |
  94. <a href="getlang.php?lang=fr" hreflang="fr" <?php
  95. if ($taal == 1) {
  96. echo "style=\"font-weight: bold;\" ";
  97. }
  98. ?>title="Fran&ccedil;ais">Fran&ccedil;ais</a> |
  99. <a href="getlang.php?lang=nl" hreflang="nl" <?php
  100. if ($taal == 2) {
  101. echo "style=\"font-weight: bold;\" ";
  102. }
  103. ?>title="Nederlands">Nederlands</a> |
  104. <a href="getlang.php?lang=de" hreflang="de" <?php
  105. if ($taal == 3) {
  106. echo "style=\"font-weight: bold;\" ";
  107. }
  108. ?>title="German">German</a>
  109. </p>
  110. <?php
  111. switch ($taal) {
  112. case 1: // Frans
  113. require_once("include/languages/fr.inc.php");
  114. break;
  115. case 2: // Nederlands
  116. require_once("include/languages/nl.inc.php");
  117. break;
  118. case 3: // Duits
  119. require_once("include/languages/de.inc.php");
  120. break;
  121. default: // Engels is de standaardinstelling
  122. require_once("include/languages/en.inc.php");
  123. }
  124. ?>
  125. <b><u><?php echo($title); ?></u></b>
  126. <p><?php echo($text); ?></p>
  127. </body>
  128. </html>
Download code! Download code (.txt)

Download dit script! Bekijk een voorbeeld van dit script!
 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (5)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.029s