Je me pose une question de conception :
Comment gèrez vous les msg d'erreurs en plusieurs langues ?
Actuellement j'hésite entre plusieurs solutions :
1 stocke dans la Db genre
tableErreur
idMessage
TexteEnLangueFr
TexteEnLangueen
....
2
$ErreurFr[0] = "Login et/ou Mot de passe incorrects";
$ErreurEn[0] = "Incorrects Login ";
3
2 langues
$Erreurs[0][0] = "Login et/ou Mot de passe incorrects";
$Erreurs[0][1] = "Incorrects Login ";
Pour être franc, aucune solution en me convient actuellement donc je
suis preneur de toute autre solution.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Hugues Peeters
Bonjour Charly,
Tout d'abord, je vous conseille d'utiliser des clés plus explicite que des clés numériques, sans quoi vous allez vite vous perdre dans la maintenance du code. Personnellement, je travaille de la manière suivante. Je définis un ensemble de variable devant contenir les messages dans l'interface.
Ces variables sont initialisées au démarrage du script (à partir d'un fichier ou d'une base de donnée) en fonction de la langue choisie par l'utilisateur.
Exemple avec une base de donnée :
$result_pt = mysql_query( "SELECT key, content FROM translation WHERE key IN ('incorrect_login', 'file_missing') AND language '$userLanguage'");
while ($result = mysql_fetch_array($result_pt) { string[$result['key']] = $result['content']; }
Exemple avec des fichiers :
$includeFile = $userLanguage; include include "application/translation/$includeFile";
Un point important est de proposer une langue mère qui remplit les trous au cas où une traduction serait incomplète (en général, on choisit l'Anglais pour ça). On travaille alors en deux passes. La première initialise les variables avec la langue par défaut, la deuxième surcharge ces variables avec la langue choisie par l'utilisateur.
J'ai noté un jour dans une application une implémentation intéressante. Les clés du tableau de string était faites de phrases entières.
$string ['Your login is wrong']
Si une traduction n'était pas trouvé pour cette clé là. La clé devenait le contenu. Ca rendait le code très lisible. Mais par contre, PHP devait mouliner sec du coté des tables de hashage...
Je me pose une question de conception : Comment gèrez vous les msg d'erreurs en plusieurs langues ? Actuellement j'hésite entre plusieurs solutions :
1 stocke dans la Db genre tableErreur idMessage TexteEnLangueFr TexteEnLangueen .... 2 $ErreurFr[0] = "Login et/ou Mot de passe incorrects"; $ErreurEn[0] = "Incorrects Login ";
3 2 langues $Erreurs[0][0] = "Login et/ou Mot de passe incorrects"; $Erreurs[0][1] = "Incorrects Login ";
Pour être franc, aucune solution en me convient actuellement donc je suis preneur de toute autre solution.
Bonjour Charly,
Tout d'abord, je vous conseille d'utiliser des clés plus explicite que
des clés numériques, sans quoi vous allez vite vous perdre dans la
maintenance du code. Personnellement, je travaille de la manière
suivante. Je définis un ensemble de variable devant contenir les
messages dans l'interface.
Ces variables sont initialisées au démarrage du script (à partir d'un
fichier ou d'une base de donnée) en fonction de la langue choisie par
l'utilisateur.
Exemple avec une base de donnée :
$result_pt = mysql_query( "SELECT key, content FROM translation
WHERE key IN ('incorrect_login', 'file_missing') AND language '$userLanguage'");
while ($result = mysql_fetch_array($result_pt) {
string[$result['key']] = $result['content'];
}
Exemple avec des fichiers :
$includeFile = $userLanguage; include
include "application/translation/$includeFile";
Un point important est de proposer une langue mère qui remplit les
trous au cas où une traduction serait incomplète (en général, on
choisit l'Anglais pour ça). On travaille alors en deux passes. La
première initialise les variables avec la langue par défaut, la
deuxième surcharge ces variables avec la langue choisie par
l'utilisateur.
J'ai noté un jour dans une application une implémentation
intéressante. Les clés du tableau de string était faites de phrases
entières.
$string ['Your login is wrong']
Si une traduction n'était pas trouvé pour cette clé là. La clé
devenait le contenu. Ca rendait le code très lisible. Mais par contre,
PHP devait mouliner sec du coté des tables de hashage...
Je me pose une question de conception :
Comment gèrez vous les msg d'erreurs en plusieurs langues ?
Actuellement j'hésite entre plusieurs solutions :
1 stocke dans la Db genre
tableErreur
idMessage
TexteEnLangueFr
TexteEnLangueen
....
2
$ErreurFr[0] = "Login et/ou Mot de passe incorrects";
$ErreurEn[0] = "Incorrects Login ";
3
2 langues
$Erreurs[0][0] = "Login et/ou Mot de passe incorrects";
$Erreurs[0][1] = "Incorrects Login ";
Pour être franc, aucune solution en me convient actuellement donc je
suis preneur de toute autre solution.
Tout d'abord, je vous conseille d'utiliser des clés plus explicite que des clés numériques, sans quoi vous allez vite vous perdre dans la maintenance du code. Personnellement, je travaille de la manière suivante. Je définis un ensemble de variable devant contenir les messages dans l'interface.
Ces variables sont initialisées au démarrage du script (à partir d'un fichier ou d'une base de donnée) en fonction de la langue choisie par l'utilisateur.
Exemple avec une base de donnée :
$result_pt = mysql_query( "SELECT key, content FROM translation WHERE key IN ('incorrect_login', 'file_missing') AND language '$userLanguage'");
while ($result = mysql_fetch_array($result_pt) { string[$result['key']] = $result['content']; }
Exemple avec des fichiers :
$includeFile = $userLanguage; include include "application/translation/$includeFile";
Un point important est de proposer une langue mère qui remplit les trous au cas où une traduction serait incomplète (en général, on choisit l'Anglais pour ça). On travaille alors en deux passes. La première initialise les variables avec la langue par défaut, la deuxième surcharge ces variables avec la langue choisie par l'utilisateur.
J'ai noté un jour dans une application une implémentation intéressante. Les clés du tableau de string était faites de phrases entières.
$string ['Your login is wrong']
Si une traduction n'était pas trouvé pour cette clé là. La clé devenait le contenu. Ca rendait le code très lisible. Mais par contre, PHP devait mouliner sec du coté des tables de hashage...
Je me pose une question de conception : Comment gèrez vous les msg d'erreurs en plusieurs langues ? Actuellement j'hésite entre plusieurs solutions :
1 stocke dans la Db genre tableErreur idMessage TexteEnLangueFr TexteEnLangueen .... 2 $ErreurFr[0] = "Login et/ou Mot de passe incorrects"; $ErreurEn[0] = "Incorrects Login ";
3 2 langues $Erreurs[0][0] = "Login et/ou Mot de passe incorrects"; $Erreurs[0][1] = "Incorrects Login ";
Pour être franc, aucune solution en me convient actuellement donc je suis preneur de toute autre solution.
bimbo
moi j'ai des fichiers nommées genre fr.lang.php, uk.lang.php qui chaqu'un contiennent un tableau associatif :
$errMsg['badDate'] = "Bad Date"; dans le fichier uk.lang.php et $errMsg['badDate'] = "Date incorrect"; dans le fichier fr.lang.php
j'ai fr ou uk en session selon le type de connection dans la variable nommée $lang
et je fais un include($lang."lang.php");
c'est une solution pê pas la meilleur mais qui marche.
-- E7Team http://www.expo7.com - Exposez Vos Photos "charly" a écrit dans le message de news:c0gcq8$ti9$
Bonjour à tous et à toutes,
Je me pose une question de conception : Comment gèrez vous les msg d'erreurs en plusieurs langues ? Actuellement j'hésite entre plusieurs solutions :
1 stocke dans la Db genre tableErreur idMessage TexteEnLangueFr TexteEnLangueen .... 2 $ErreurFr[0] = "Login et/ou Mot de passe incorrects"; $ErreurEn[0] = "Incorrects Login ";
3 2 langues $Erreurs[0][0] = "Login et/ou Mot de passe incorrects"; $Erreurs[0][1] = "Incorrects Login ";
Pour être franc, aucune solution en me convient actuellement donc je suis preneur de toute autre solution.
Merci pour vos avis
moi j'ai des fichiers nommées genre fr.lang.php, uk.lang.php qui chaqu'un
contiennent un tableau associatif :
$errMsg['badDate'] = "Bad Date"; dans le fichier uk.lang.php
et
$errMsg['badDate'] = "Date incorrect"; dans le fichier fr.lang.php
j'ai fr ou uk en session selon le type de connection dans la variable nommée
$lang
et je fais un include($lang."lang.php");
c'est une solution pê pas la meilleur mais qui marche.
--
E7Team
http://www.expo7.com - Exposez Vos Photos
"charly" <kanari@yahoo.fr> a écrit dans le message de
news:c0gcq8$ti9$1@news-reader5.wanadoo.fr...
Bonjour à tous et à toutes,
Je me pose une question de conception :
Comment gèrez vous les msg d'erreurs en plusieurs langues ?
Actuellement j'hésite entre plusieurs solutions :
1 stocke dans la Db genre
tableErreur
idMessage
TexteEnLangueFr
TexteEnLangueen
....
2
$ErreurFr[0] = "Login et/ou Mot de passe incorrects";
$ErreurEn[0] = "Incorrects Login ";
3
2 langues
$Erreurs[0][0] = "Login et/ou Mot de passe incorrects";
$Erreurs[0][1] = "Incorrects Login ";
Pour être franc, aucune solution en me convient actuellement donc je
suis preneur de toute autre solution.
moi j'ai des fichiers nommées genre fr.lang.php, uk.lang.php qui chaqu'un contiennent un tableau associatif :
$errMsg['badDate'] = "Bad Date"; dans le fichier uk.lang.php et $errMsg['badDate'] = "Date incorrect"; dans le fichier fr.lang.php
j'ai fr ou uk en session selon le type de connection dans la variable nommée $lang
et je fais un include($lang."lang.php");
c'est une solution pê pas la meilleur mais qui marche.
-- E7Team http://www.expo7.com - Exposez Vos Photos "charly" a écrit dans le message de news:c0gcq8$ti9$
Bonjour à tous et à toutes,
Je me pose une question de conception : Comment gèrez vous les msg d'erreurs en plusieurs langues ? Actuellement j'hésite entre plusieurs solutions :
1 stocke dans la Db genre tableErreur idMessage TexteEnLangueFr TexteEnLangueen .... 2 $ErreurFr[0] = "Login et/ou Mot de passe incorrects"; $ErreurEn[0] = "Incorrects Login ";
3 2 langues $Erreurs[0][0] = "Login et/ou Mot de passe incorrects"; $Erreurs[0][1] = "Incorrects Login ";
Pour être franc, aucune solution en me convient actuellement donc je suis preneur de toute autre solution.
Merci pour vos avis
Guillaume Brocker
charly wrote:
Bonjour à tous et à toutes,
Je me pose une question de conception : Comment gèrez vous les msg d'erreurs en plusieurs langues ? Actuellement j'hésite entre plusieurs solutions :
1 stocke dans la Db genre tableErreur idMessage TexteEnLangueFr TexteEnLangueen .... 2 $ErreurFr[0] = "Login et/ou Mot de passe incorrects"; $ErreurEn[0] = "Incorrects Login ";
3 2 langues $Erreurs[0][0] = "Login et/ou Mot de passe incorrects"; $Erreurs[0][1] = "Incorrects Login ";
Pour être franc, aucune solution en me convient actuellement donc je suis preneur de toute autre solution.
Merci pour vos avis
Personnellement, je suggère d'utiliser l'outil *GNU gettext*. Il y a un module PHP qui permet de s'en servir.
Plutôt que de faire un long discours sur le fonctionnement de cet outil, voir les liens suivants: <http://www.php.net/manual/en/ref.gettext.php> <http://www.gnu.org/software/gettext/manual/index.html>
Je ne l'ai enore jamais utilisé dans php. Mais en tout cas, cet outil fonctionne à merveille dans mes programmes C++.
-- Guillaume Brocker
charly wrote:
Bonjour à tous et à toutes,
Je me pose une question de conception :
Comment gèrez vous les msg d'erreurs en plusieurs langues ?
Actuellement j'hésite entre plusieurs solutions :
1 stocke dans la Db genre
tableErreur
idMessage
TexteEnLangueFr
TexteEnLangueen
....
2
$ErreurFr[0] = "Login et/ou Mot de passe incorrects";
$ErreurEn[0] = "Incorrects Login ";
3
2 langues
$Erreurs[0][0] = "Login et/ou Mot de passe incorrects";
$Erreurs[0][1] = "Incorrects Login ";
Pour être franc, aucune solution en me convient actuellement donc je
suis preneur de toute autre solution.
Merci pour vos avis
Personnellement, je suggère d'utiliser l'outil *GNU gettext*. Il y a un
module PHP qui permet de s'en servir.
Plutôt que de faire un long discours sur le fonctionnement de cet outil,
voir les liens suivants:
<http://www.php.net/manual/en/ref.gettext.php>
<http://www.gnu.org/software/gettext/manual/index.html>
Je ne l'ai enore jamais utilisé dans php. Mais en tout cas, cet outil
fonctionne à merveille dans mes programmes C++.
Je me pose une question de conception : Comment gèrez vous les msg d'erreurs en plusieurs langues ? Actuellement j'hésite entre plusieurs solutions :
1 stocke dans la Db genre tableErreur idMessage TexteEnLangueFr TexteEnLangueen .... 2 $ErreurFr[0] = "Login et/ou Mot de passe incorrects"; $ErreurEn[0] = "Incorrects Login ";
3 2 langues $Erreurs[0][0] = "Login et/ou Mot de passe incorrects"; $Erreurs[0][1] = "Incorrects Login ";
Pour être franc, aucune solution en me convient actuellement donc je suis preneur de toute autre solution.
Merci pour vos avis
Personnellement, je suggère d'utiliser l'outil *GNU gettext*. Il y a un module PHP qui permet de s'en servir.
Plutôt que de faire un long discours sur le fonctionnement de cet outil, voir les liens suivants: <http://www.php.net/manual/en/ref.gettext.php> <http://www.gnu.org/software/gettext/manual/index.html>
Je ne l'ai enore jamais utilisé dans php. Mais en tout cas, cet outil fonctionne à merveille dans mes programmes C++.
-- Guillaume Brocker
charly
Hugues Peeters wrote:
Bonjour Charly,
Tout d'abord, je vous conseille d'utiliser des clés plus explicite que des clés numériques, sans quoi vous allez vite vous perdre dans la maintenance du code. Personnellement, je travaille de la manière suivante. Je définis un ensemble de variable devant contenir les messages dans l'interface.
Ces variables sont initialisées au démarrage du script (à partir d'un fichier ou d'une base de donnée) en fonction de la langue choisie par l'utilisateur.
Exemple avec une base de donnée :
$result_pt = mysql_query( "SELECT key, content FROM translation WHERE key IN ('incorrect_login', 'file_missing') AND language > '$userLanguage'");
while ($result = mysql_fetch_array($result_pt) { string[$result['key']] = $result['content']; }
Finalement, voici la solution retenue :)
Une base de données avec un msg dans chaque langue, la table contient autant de colonnes que de langue.
un fichier de constantes genre : INCORRECT_LOGIN qui font la correspondance avec les id de la table. Et je charge tous les msg au début du script dans la langue choisie par le user (je recharge s'il change de lanue bien sûr)
Je rejoins donc ce que vous proposez (j'aurais du attendre votre réponse, mais trop impatient d'avoir une réponse :) )
Merci bcp cpdt !
Hugues Peeters wrote:
Bonjour Charly,
Tout d'abord, je vous conseille d'utiliser des clés plus explicite que
des clés numériques, sans quoi vous allez vite vous perdre dans la
maintenance du code. Personnellement, je travaille de la manière
suivante. Je définis un ensemble de variable devant contenir les
messages dans l'interface.
Ces variables sont initialisées au démarrage du script (à partir d'un
fichier ou d'une base de donnée) en fonction de la langue choisie par
l'utilisateur.
Exemple avec une base de donnée :
$result_pt = mysql_query( "SELECT key, content FROM translation
WHERE key IN ('incorrect_login', 'file_missing') AND language > '$userLanguage'");
while ($result = mysql_fetch_array($result_pt) {
string[$result['key']] = $result['content'];
}
Finalement, voici la solution retenue :)
Une base de données avec un msg dans chaque langue, la table contient
autant de colonnes que de langue.
un fichier de constantes genre : INCORRECT_LOGIN qui font la
correspondance avec les id de la table.
Et je charge tous les msg au début du script dans la langue choisie par
le user (je recharge s'il change de lanue bien sûr)
Je rejoins donc ce que vous proposez (j'aurais du attendre votre
réponse, mais trop impatient d'avoir une réponse :) )
Tout d'abord, je vous conseille d'utiliser des clés plus explicite que des clés numériques, sans quoi vous allez vite vous perdre dans la maintenance du code. Personnellement, je travaille de la manière suivante. Je définis un ensemble de variable devant contenir les messages dans l'interface.
Ces variables sont initialisées au démarrage du script (à partir d'un fichier ou d'une base de donnée) en fonction de la langue choisie par l'utilisateur.
Exemple avec une base de donnée :
$result_pt = mysql_query( "SELECT key, content FROM translation WHERE key IN ('incorrect_login', 'file_missing') AND language > '$userLanguage'");
while ($result = mysql_fetch_array($result_pt) { string[$result['key']] = $result['content']; }
Finalement, voici la solution retenue :)
Une base de données avec un msg dans chaque langue, la table contient autant de colonnes que de langue.
un fichier de constantes genre : INCORRECT_LOGIN qui font la correspondance avec les id de la table. Et je charge tous les msg au début du script dans la langue choisie par le user (je recharge s'il change de lanue bien sûr)
Je rejoins donc ce que vous proposez (j'aurais du attendre votre réponse, mais trop impatient d'avoir une réponse :) )
Merci bcp cpdt !
Stephane
"charly" a écrit
Bonjour à tous et à toutes,
Je me pose une question de conception : Comment gèrez vous les msg d'erreurs en plusieurs langues ? Actuellement j'hésite entre plusieurs solutions :
1 stocke dans la Db genre tableErreur idMessage TexteEnLangueFr TexteEnLangueen .... 2 $ErreurFr[0] = "Login et/ou Mot de passe incorrects"; $ErreurEn[0] = "Incorrects Login ";
3 2 langues $Erreurs[0][0] = "Login et/ou Mot de passe incorrects"; $Erreurs[0][1] = "Incorrects Login ";
Pour être franc, aucune solution en me convient actuellement donc je suis preneur de toute autre solution.
include("include/class.multilingue.php"); $tx = new TextesMultilingues("lang/text_". $langue .".php");
echo $tx->tmlValeur("bouton_envoyer");
C'est tout et c'est extensible au nombre de langue que tu désires.
Tous ce trouve sur le lien suivant:
http://www.aidejavascript.com/article117.html
Stéphane La souplesse d'esprit permet de s'adapter dans toutes circonstances.
http://www.velo-passion.com pour les fans de vélo http://www.lorimier.com/chemin-des-cretes-du-jura une ballade à pied d'une semaine à 2
"charly" a écrit
Bonjour à tous et à toutes,
Je me pose une question de conception :
Comment gèrez vous les msg d'erreurs en plusieurs langues ?
Actuellement j'hésite entre plusieurs solutions :
1 stocke dans la Db genre
tableErreur
idMessage
TexteEnLangueFr
TexteEnLangueen
....
2
$ErreurFr[0] = "Login et/ou Mot de passe incorrects";
$ErreurEn[0] = "Incorrects Login ";
3
2 langues
$Erreurs[0][0] = "Login et/ou Mot de passe incorrects";
$Erreurs[0][1] = "Incorrects Login ";
Pour être franc, aucune solution en me convient actuellement donc je
suis preneur de toute autre solution.
Je me pose une question de conception : Comment gèrez vous les msg d'erreurs en plusieurs langues ? Actuellement j'hésite entre plusieurs solutions :
1 stocke dans la Db genre tableErreur idMessage TexteEnLangueFr TexteEnLangueen .... 2 $ErreurFr[0] = "Login et/ou Mot de passe incorrects"; $ErreurEn[0] = "Incorrects Login ";
3 2 langues $Erreurs[0][0] = "Login et/ou Mot de passe incorrects"; $Erreurs[0][1] = "Incorrects Login ";
Pour être franc, aucune solution en me convient actuellement donc je suis preneur de toute autre solution.
Remplacez nospam par mon prénom pour me contacter par email
Michel BILLAUD
charly writes:
Finalement, voici la solution retenue :) Une base de données avec un msg dans chaque langue, la table contient autant de colonnes que de langue.
Houla, c'est pas bon. le jour où on ajoute une langue ...
-- Michel BILLAUD LABRI-Université Bordeaux I tel 05 4000 6922 / 05 5684 5792 351, cours de la Libération http://www.labri.fr/~billaud 33405 Talence (FRANCE)
charly <kanari@yahoo.fr> writes:
Finalement, voici la solution retenue :)
Une base de données avec un msg dans chaque langue, la table contient
autant de colonnes que de langue.
Houla, c'est pas bon. le jour où on ajoute une langue ...
--
Michel BILLAUD billaud@labri.fr
LABRI-Université Bordeaux I tel 05 4000 6922 / 05 5684 5792
351, cours de la Libération http://www.labri.fr/~billaud
33405 Talence (FRANCE)
Finalement, voici la solution retenue :) Une base de données avec un msg dans chaque langue, la table contient autant de colonnes que de langue.
Houla, c'est pas bon. le jour où on ajoute une langue ...
-- Michel BILLAUD LABRI-Université Bordeaux I tel 05 4000 6922 / 05 5684 5792 351, cours de la Libération http://www.labri.fr/~billaud 33405 Talence (FRANCE)
Thibaut Allender
Finalement, voici la solution retenue :) Une base de données avec un msg dans chaque langue, la table contient autant de colonnes que de langue.
Houla, c'est pas bon. le jour où on ajoute une langue ...