ARCHIVÉ - Exemples de scripts de changement de langue
Cette information est archivée parce qu'elle est désuete et n'est plus pertinente.
Contenu archivé
Information archivée dans le Web à des fins de consultation, de recherche ou de tenue de documents. Cette dernière n’a aucunement été modifiée ni mise à jour depuis sa date de mise en archive. Les pages archivées dans le Web ne sont pas assujetties aux normes qui s’appliquent aux sites Web du gouvernement du Canada. Conformément à la Politique de communication du gouvernement du Canada, vous pouvez obtenir cette information dans un autre format en communiquant avec nous.
Table of Contents
1.0 Objet
Donner des exemples de scripts pour permettre de passer de la version anglaise à la version française d'une page Web et vice versa.
Nota : Les scripts sont fournis à titre d'exemple seulement. Vous pouvez les modifier au besoin.
2.0 Script de changement de langue dans le langage PERL
# obtenir l'adresse URL d'une page Web qui a fait appel au script
$calling_page = $ENV{'HTTP_REFERER'};
# lorsque le navigateur Netscape est utilisé, le renvoi peut contenir # et le nom d'ancrage : ne prenez que la première partie, jusqu'à #(eg. http://nsi-clf/w3c.htm#nsi)
if($calling_page =~ /(.*)\#.*/) {
# ne prenez que la première partie, jusqu'à #
$calling_page = $1;}
# ignorez les fichiers dont l'adresse ne se termine pas par -eng.htm ou-fra.htm et ne faites rien!
# s'agit-il d'un fichier dont l'extension est -eng.htm?
if($calling_page =~ /-eng\.htm/) {
# remplacez le suffixe
$calling_page =~ s/-eng\.htm/-fra\.htm/;
print "Location: $calling_page\n\n";
# s'agit-il d'un fichier dont l'extension est -fra.htm?
} elsif($calling_page =~ /-fra\.htm/) {
# remplacez le suffixe
$calling_page =~ s/-fra\.htm/-eng\.htm/;
print "Location: $calling_page\n\n";}
2.1 Hyperlien de pages Web - solution PERL
<a href="/cgi-bin/lang_change.pl" lang="en" title="English - English version of the Web page">English</a>
3.0 Script de changement de langue dans l'application ASP 3.0 pour des sites dynamiques (extension .asp)
Function LangTog-LangBasc()
Dim path
Dim positionOfExtension
Dim currentLanguage
Dim newLanguage
Dim positionOfTarget
path = Request.ServerVariables("PATH_INFO")
positionOfExtension = instrrev(path,".")
currentLanguage = mid(path,positionOfExtension-3,3)
newLanguage = currentLanguage
If currentLanguage = "eng" then
newLanguage = "fra"
ElseIf currentLanguage = "fra" then
newLanguage = "eng"
End If
newPath = mid(path,1,positionOfExtension-4)+newLanguage+mid(path,positionOfExtension)
'couper la balise cible, le cas échéant, (n'est pas conservée par tous les navigateurs de toute façon)
positionOfTarget = instrrev(newPath,"#")
If positionOfTarget > 0 then
newPath = mid(newPath,1,positionOfTarget-1)
End If
LangSwitch = newPath
End Function
3.1 Hyperlien de pages Web - solution ASP
<a href="<%=LangTog-LangBasc()%>" lang="en" title="English - English version of the Web page">English</a>
Nota : La fonction LangTog-LangBasc() doit être accessible par la page d'appel (portée). Vous pouvez utiliser des fichiers d'inclusion.
4.0 Script de changement de langue dans l'application ASP 3.0 pour des sites statiques (extension .htm/.html)
Option Explicit
Call altLangRedirect(Request.ServerVariables("SERVER_NAME"), Request.ServerVariables("HTTP_REFERER"))
Sub altLangRedirect(serverName, referringURL)
' altLangRedirect : Redirige l'utilisateur vers une nouvelle adresse URL en fonction de referringURL.
' S'il n'y a pas de renvoi, l'utilisateur est alors redirigé vers servername (page racine)
' Si servername ne figure pas dans le renvoi, l'utilisateur est alors dirigé vers servername (page racine)
' Servername : Le serveur
' ReferringURL : La page URL de renvoi qui fait appel au sous-programme.
Dim newURL 'The url to redirect to
Dim positionOfExtension 'position of last dot in URL
Dim currentLanguage 'language of referring page
Dim newLanguage 'language of page to redirect to
'À utiliser pour couper la chaîne d'interrogation
'Dim positionOfQueryString pour la position de « ? » dans l'adresse URL
'À utiliser pour couper la balise cible
Dim positionOfTarget 'position of "#" in URL
'À utiliser si l'on se sert de la partie des répertoires en parallèle
'Dim replaceWhat 'Ce qu'il faut remplacer
'Dim replaceWith 'Ce qu'il faut utiliser comme remplacement
'Par défaut, nous définirons la nouvelle adresse URL selon servername.
'Si rien d'autre ne se produit, l'utilisateur sera redirigé, par défaut, à la page racine
'pour éviter les erreurs attribuables à un espace blanc ou à un HTTP_REFERER erroné.
newURL = "http://" & serverName
'Il faut d'abord vérifier si referringURL existe et si length est > 0;
'sinon, c'est peut-être que le REFERER a été éliminé ou modifié.
'Il faut alors utiliser une valeur par défaut pour éviter les erreurs.
If Len(Trim(referringURL)) > 0 Then
'Il faut ensuite s'assurer que servername paraît dans referingURL.
'Si ce n'est pas le cas, nous obtiendrons la page involontairement et devrons utiliser une valeur par défaut pour éviter les erreurs.
If Instr(referringURL, serverName) > 0 Then
'À utiliser si la mention eng ou fra figure toujours devant le dernier point.
positionOfExtension = instrrev(referringURL,".")
'Cela ne fonctionnera pas si la lettre « e » ou « f » figure devant le point et qu'elle n'indique pas vraiment la langue.
currentLanguage = mid(referringURL,positionOfExtension-3,3)
newLanguage = currentLanguage
If currentLanguage = "eng" then
newLanguage = "fra"
ElseIf currentLanguage = "fra" then
newLanguage = "eng"
End If
'remplacer la mention eng par la mention fra ou vice versa
newURL = mid(referringURL,1,positionOfExtension-4)+newLanguage+mid(referringURL,positionOfExtension)
'couper la balise cible, le cas échéant (n'est pas conservée par les navigateurs de toute façon)
positionOfTarget = instrrev(newURL,"#")
If positionOfTarget > 0 then
newURL = mid(newURL,1,positionOfTarget-1)
End If
End If
End If
Response.Redirect(newURL)
End Sub