Omdat dit eerder server-side is, start ik em in programming, maar eigenlijk leunt deze TS dicht aan bij SEO. Ik wil voor een vriendin een kleine website maken in het NL, FR en EN. Nu heb ik nog nooit websites in meerdere talen moeten proggen en ik wil het meteen zo goed mogelijk doen. In mijn ontwerp heb ik het taalID constant nodig en ik vroeg me nu af hoe ik dit het beste ga implementeren.
Ik heb de neiging steeds met een centrale index.php te werken waar vanalles geinclude wordt via include of functies. In deze centrale index.php staat onderstaande PHPcode. Deze wordt gevoed door een modrewrite zodat mijn urls er kunnen uitzien als /nl/ of /en/ . Op zich werkt dit nu in test-vorm.
Mijn vraag is nu: wat kan er nog beter? (want ik ben er spijtig genoeg van overtuigd dat mijn progskillz niet echt super zijn + ik zit met het gevoel dat er een conceptfout inzit, doch vind em niet meteen)
In PHP doe ik (voorlopig gewoon procedureel):
Ik heb de neiging steeds met een centrale index.php te werken waar vanalles geinclude wordt via include of functies. In deze centrale index.php staat onderstaande PHPcode. Deze wordt gevoed door een modrewrite zodat mijn urls er kunnen uitzien als /nl/ of /en/ . Op zich werkt dit nu in test-vorm.
Mijn vraag is nu: wat kan er nog beter? (want ik ben er spijtig genoeg van overtuigd dat mijn progskillz niet echt super zijn + ik zit met het gevoel dat er een conceptfout inzit, doch vind em niet meteen)
code:
1
2
3
4
5
6
7
8
| # maak taal'directories' RewriteRule ^(nl|fr|en)$ /$1/ [R] # statische pagina's worden .html RewriteRule ^(nl|fr|en)/(.*).html(.*)$ path/index.php?p=static&f=$2$3&language=$1 [NC,L] # dit is voor de rest RewriteRule ^(nl|fr|en)/(.*)$ path/$2?language=$1 [NC,L] |
In PHP doe ik (voorlopig gewoon procedureel):
PHP:
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
60
| /* language-selection */ if ( isset($_GET['language']) ) { if ( in_array(strtolower($_GET['language']), $aLanguages, false) ) { if (_DEBUG) echo '<br>language changed to '.strtolower(substr($_GET['language'], 0, 2)).' ; '.$_GET['language']; $_SESSION['language'] = strtolower(substr($_GET['language'], 0,2)); } else { if (_DEBUG) echo '<br>error, language doesnt exist yet'; } } else { if (!isset($_SESSION['language'])) { if (in_array(strtolower(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2)), $aLanguages, false)) { if (_DEBUG) echo '<br>$_SERVER[HTTP_ACCEPT_LANGUAGE]: '.strtolower(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2)); $_SESSION['language'] = strtolower(substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2)); } else { if (_DEBUG) echo '<br>$preferred_language: '.strtolower(substr($preferred_language, 0,2)); $_SESSION['language'] = strtolower(substr($preferred_language, 0,2)); } } } |