Ensuite, le temps de réponse lors de l'accès aux
valeurs associées à cette clé est indépendant puisque le résultat de
la fonction de hachage est stocké.
Ensuite, le temps de réponse lors de l'accès aux
valeurs associées à cette clé est indépendant puisque le résultat de
la fonction de hachage est stocké.
Ensuite, le temps de réponse lors de l'accès aux
valeurs associées à cette clé est indépendant puisque le résultat de
la fonction de hachage est stocké.
Paul Gaborit wrote in message :Ensuite, le temps de réponse lors de l'accès aux
valeurs associées à cette clé est indépendant puisque le résultat de
la fonction de hachage est stocké.
Stocké ? Stocké où ? gettext, ça prend un const char * en argument, il n'y a
pas de champ mutable où stocker le résultat de la fonction de hachage.
Paul Gaborit wrote in message <wt9tzbp1yjy.fsf@marceau.enstimac.fr>:
Ensuite, le temps de réponse lors de l'accès aux
valeurs associées à cette clé est indépendant puisque le résultat de
la fonction de hachage est stocké.
Stocké ? Stocké où ? gettext, ça prend un const char * en argument, il n'y a
pas de champ mutable où stocker le résultat de la fonction de hachage.
Paul Gaborit wrote in message :Ensuite, le temps de réponse lors de l'accès aux
valeurs associées à cette clé est indépendant puisque le résultat de
la fonction de hachage est stocké.
Stocké ? Stocké où ? gettext, ça prend un const char * en argument, il n'y a
pas de champ mutable où stocker le résultat de la fonction de hachage.
'const char *' ? En Perl ?
'const char *' ? En Perl ?
'const char *' ? En Perl ?
À (at) Mon, 6 Oct 2008 11:49:32 +0200,
"Jean-Charles Gibier" écrivait (wrote):Du coup lorsque je considère les milliers de lignes du genre ->
gettex("'Voulez-vous vraiment supprimer le fichier ressource du repertoire
...etc.'");
je pense que le temps de réponse doit forcemment être plus long que de
simples ->
gettex(3980);
Mais peut être me trompe-je ?
Oui.
La recherche se fait dans une table de hachage : le temps de réponse
est indépendant da la taille de la clé (sauf la première fois qu'on
voit cette clé).
À (at) Mon, 6 Oct 2008 11:49:32 +0200,
"Jean-Charles Gibier" <jeancharles__and__g@free.fr.invalid> écrivait (wrote):
Du coup lorsque je considère les milliers de lignes du genre ->
gettex("'Voulez-vous vraiment supprimer le fichier ressource du repertoire
...etc.'");
je pense que le temps de réponse doit forcemment être plus long que de
simples ->
gettex(3980);
Mais peut être me trompe-je ?
Oui.
La recherche se fait dans une table de hachage : le temps de réponse
est indépendant da la taille de la clé (sauf la première fois qu'on
voit cette clé).
À (at) Mon, 6 Oct 2008 11:49:32 +0200,
"Jean-Charles Gibier" écrivait (wrote):Du coup lorsque je considère les milliers de lignes du genre ->
gettex("'Voulez-vous vraiment supprimer le fichier ressource du repertoire
...etc.'");
je pense que le temps de réponse doit forcemment être plus long que de
simples ->
gettex(3980);
Mais peut être me trompe-je ?
Oui.
La recherche se fait dans une table de hachage : le temps de réponse
est indépendant da la taille de la clé (sauf la première fois qu'on
voit cette clé).
Paul Gaborit wrote in message :'const char *' ? En Perl ?
gettext, c'est une API C, à la base. Tu peux avoir un wrapper en perl
autour, mais je doute qu'il ajoute ce genre de cache.
Paul Gaborit wrote in message <wt9tzbpqwcv.fsf@marceau.enstimac.fr>:
'const char *' ? En Perl ?
gettext, c'est une API C, à la base. Tu peux avoir un wrapper en perl
autour, mais je doute qu'il ajoute ce genre de cache.
Paul Gaborit wrote in message :'const char *' ? En Perl ?
gettext, c'est une API C, à la base. Tu peux avoir un wrapper en perl
autour, mais je doute qu'il ajoute ce genre de cache.
À (at) Mon, 06 Oct 2008 13:30:55 +0200,
Paul Gaborit écrivait (wrote):À (at) Mon, 6 Oct 2008 11:49:32 +0200,
"Jean-Charles Gibier" écrivait
(wrote):Du coup lorsque je considère les milliers de lignes du genre ->
gettex("'Voulez-vous vraiment supprimer le fichier ressource du
repertoire
...etc.'");
je pense que le temps de réponse doit forcemment être plus long que de
simples ->
gettex(3980);
Mais peut être me trompe-je ?
Oui.
La recherche se fait dans une table de hachage : le temps de réponse
est indépendant da la taille de la clé (sauf la première fois qu'on
voit cette clé).
Je complète ma réponse en vous conseillant de regarder du côté du
module Locale::Maketext qui pallie à plusieurs des défauts de la
philosophie 'gettext'.
À (at) Mon, 06 Oct 2008 13:30:55 +0200,
Paul Gaborit <Paul.Gaborit@invalid.invalid> écrivait (wrote):
À (at) Mon, 6 Oct 2008 11:49:32 +0200,
"Jean-Charles Gibier" <jeancharles__and__g@free.fr.invalid> écrivait
(wrote):
Du coup lorsque je considère les milliers de lignes du genre ->
gettex("'Voulez-vous vraiment supprimer le fichier ressource du
repertoire
...etc.'");
je pense que le temps de réponse doit forcemment être plus long que de
simples ->
gettex(3980);
Mais peut être me trompe-je ?
Oui.
La recherche se fait dans une table de hachage : le temps de réponse
est indépendant da la taille de la clé (sauf la première fois qu'on
voit cette clé).
Je complète ma réponse en vous conseillant de regarder du côté du
module Locale::Maketext qui pallie à plusieurs des défauts de la
philosophie 'gettext'.
À (at) Mon, 06 Oct 2008 13:30:55 +0200,
Paul Gaborit écrivait (wrote):À (at) Mon, 6 Oct 2008 11:49:32 +0200,
"Jean-Charles Gibier" écrivait
(wrote):Du coup lorsque je considère les milliers de lignes du genre ->
gettex("'Voulez-vous vraiment supprimer le fichier ressource du
repertoire
...etc.'");
je pense que le temps de réponse doit forcemment être plus long que de
simples ->
gettex(3980);
Mais peut être me trompe-je ?
Oui.
La recherche se fait dans une table de hachage : le temps de réponse
est indépendant da la taille de la clé (sauf la première fois qu'on
voit cette clé).
Je complète ma réponse en vous conseillant de regarder du côté du
module Locale::Maketext qui pallie à plusieurs des défauts de la
philosophie 'gettext'.
Merci avant que je ne penche sur Locale::Maketext -> le principe est
il le même (dictionnaires portables compilés) ?
Sinon de manière générale les diverses remarques de ce thread m' en amènent
d'autres :
FCGI -> le programme sur lequel je travaille est multi plateforme mais
actuellement les tests sont sous IIS / perlis
lacunes de gettext -> en matière d'optimisation, je ne vois pas comment
aller "au delà" d'une hashtable (à partir du moment où l'index numérique est
proscrit) peu importe qu'on soit en pure perl ou pas.
+ une question sur le problème d'interpolation -> Est ce qu'il ya un moyen
de recenser les chaînes contenant des variables ("Le fichier nommé
$le_nom_du_fichier est ouvert.") plus élégant qu' un sprintf ou un
découpage ?
Merci avant que je ne penche sur Locale::Maketext -> le principe est
il le même (dictionnaires portables compilés) ?
Sinon de manière générale les diverses remarques de ce thread m' en amènent
d'autres :
FCGI -> le programme sur lequel je travaille est multi plateforme mais
actuellement les tests sont sous IIS / perlis
lacunes de gettext -> en matière d'optimisation, je ne vois pas comment
aller "au delà" d'une hashtable (à partir du moment où l'index numérique est
proscrit) peu importe qu'on soit en pure perl ou pas.
+ une question sur le problème d'interpolation -> Est ce qu'il ya un moyen
de recenser les chaînes contenant des variables ("Le fichier nommé
$le_nom_du_fichier est ouvert.") plus élégant qu' un sprintf ou un
découpage ?
Merci avant que je ne penche sur Locale::Maketext -> le principe est
il le même (dictionnaires portables compilés) ?
Sinon de manière générale les diverses remarques de ce thread m' en amènent
d'autres :
FCGI -> le programme sur lequel je travaille est multi plateforme mais
actuellement les tests sont sous IIS / perlis
lacunes de gettext -> en matière d'optimisation, je ne vois pas comment
aller "au delà" d'une hashtable (à partir du moment où l'index numérique est
proscrit) peu importe qu'on soit en pure perl ou pas.
+ une question sur le problème d'interpolation -> Est ce qu'il ya un moyen
de recenser les chaînes contenant des variables ("Le fichier nommé
$le_nom_du_fichier est ouvert.") plus élégant qu' un sprintf ou un
découpage ?
À (at) Tue, 7 Oct 2008 10:43:48 +0200,
"Jean-Charles Gibier" écrivait
(wrote):Merci avant que je ne penche sur Locale::Maketext -> le principe est
il le même (dictionnaires portables compilés) ?
Non : les fichiers de traductions ne sont pas "compilés". Ils sont
implicitement compilés en mémoire à chaque lancement du script.Sinon de manière générale les diverses remarques de ce thread m' en
amènent
d'autres :
FCGI -> le programme sur lequel je travaille est multi plateforme mais
actuellement les tests sont sous IIS / perlis
Je n'ai jamais testé FastCGI avec IIS/Windows. Mais ça doit être
faisable puisqu'il existe un package Perl FCGI::IIS...lacunes de gettext -> en matière d'optimisation, je ne vois pas comment
aller "au delà" d'une hashtable (à partir du moment où l'index numérique
est
proscrit) peu importe qu'on soit en pure perl ou pas.
L'optimisation a un prix : la mémoire.
Sinon, les améliorations apportées par Locale::Maketext sont plus sur
les aspects linguistiques. Il faut lire l'article qui explique tout
ça :
<http://search.cpan.org/dist/Locale-Maketext/lib/Locale/Maketext/TPJ13.pod>+ une question sur le problème d'interpolation -> Est ce qu'il ya un
moyen
de recenser les chaînes contenant des variables ("Le fichier nommé
$le_nom_du_fichier est ouvert.") plus élégant qu' un sprintf ou un
découpage ?
Je ne comprends pas la question...
À (at) Tue, 7 Oct 2008 10:43:48 +0200,
"Jean-Charles Gibier" <jeancharles__and__g@free.fr.invalid> écrivait
(wrote):
Merci avant que je ne penche sur Locale::Maketext -> le principe est
il le même (dictionnaires portables compilés) ?
Non : les fichiers de traductions ne sont pas "compilés". Ils sont
implicitement compilés en mémoire à chaque lancement du script.
Sinon de manière générale les diverses remarques de ce thread m' en
amènent
d'autres :
FCGI -> le programme sur lequel je travaille est multi plateforme mais
actuellement les tests sont sous IIS / perlis
Je n'ai jamais testé FastCGI avec IIS/Windows. Mais ça doit être
faisable puisqu'il existe un package Perl FCGI::IIS...
lacunes de gettext -> en matière d'optimisation, je ne vois pas comment
aller "au delà" d'une hashtable (à partir du moment où l'index numérique
est
proscrit) peu importe qu'on soit en pure perl ou pas.
L'optimisation a un prix : la mémoire.
Sinon, les améliorations apportées par Locale::Maketext sont plus sur
les aspects linguistiques. Il faut lire l'article qui explique tout
ça :
<http://search.cpan.org/dist/Locale-Maketext/lib/Locale/Maketext/TPJ13.pod>
+ une question sur le problème d'interpolation -> Est ce qu'il ya un
moyen
de recenser les chaînes contenant des variables ("Le fichier nommé
$le_nom_du_fichier est ouvert.") plus élégant qu' un sprintf ou un
découpage ?
Je ne comprends pas la question...
À (at) Tue, 7 Oct 2008 10:43:48 +0200,
"Jean-Charles Gibier" écrivait
(wrote):Merci avant que je ne penche sur Locale::Maketext -> le principe est
il le même (dictionnaires portables compilés) ?
Non : les fichiers de traductions ne sont pas "compilés". Ils sont
implicitement compilés en mémoire à chaque lancement du script.Sinon de manière générale les diverses remarques de ce thread m' en
amènent
d'autres :
FCGI -> le programme sur lequel je travaille est multi plateforme mais
actuellement les tests sont sous IIS / perlis
Je n'ai jamais testé FastCGI avec IIS/Windows. Mais ça doit être
faisable puisqu'il existe un package Perl FCGI::IIS...lacunes de gettext -> en matière d'optimisation, je ne vois pas comment
aller "au delà" d'une hashtable (à partir du moment où l'index numérique
est
proscrit) peu importe qu'on soit en pure perl ou pas.
L'optimisation a un prix : la mémoire.
Sinon, les améliorations apportées par Locale::Maketext sont plus sur
les aspects linguistiques. Il faut lire l'article qui explique tout
ça :
<http://search.cpan.org/dist/Locale-Maketext/lib/Locale/Maketext/TPJ13.pod>+ une question sur le problème d'interpolation -> Est ce qu'il ya un
moyen
de recenser les chaînes contenant des variables ("Le fichier nommé
$le_nom_du_fichier est ouvert.") plus élégant qu' un sprintf ou un
découpage ?
Je ne comprends pas la question...
Ce n'est pas vraiment capital mais c'est le problème posé par le présence
des paramètres.
Dans l'option gettext on ne peut pas employer ce genre de construction :
print gettext("Le fichier : $nom_fichier est ouvert.n");
On est obligé de faire soit ceci :
print gettext("Le fichier :"). $nom_fichier .gettext("est ouvert").".n";
Soit ceci :
print sprintf (gettext("Le fichier : %s est ouvert.n"), $nom_fichier);
Ce qui n'est pas tres pratique lorsqu'on est en phase d'extraction des
chaines.
Donc s'il ya une autre méthode je suis preneur.
Ce n'est pas vraiment capital mais c'est le problème posé par le présence
des paramètres.
Dans l'option gettext on ne peut pas employer ce genre de construction :
print gettext("Le fichier : $nom_fichier est ouvert.n");
On est obligé de faire soit ceci :
print gettext("Le fichier :"). $nom_fichier .gettext("est ouvert").".n";
Soit ceci :
print sprintf (gettext("Le fichier : %s est ouvert.n"), $nom_fichier);
Ce qui n'est pas tres pratique lorsqu'on est en phase d'extraction des
chaines.
Donc s'il ya une autre méthode je suis preneur.
Ce n'est pas vraiment capital mais c'est le problème posé par le présence
des paramètres.
Dans l'option gettext on ne peut pas employer ce genre de construction :
print gettext("Le fichier : $nom_fichier est ouvert.n");
On est obligé de faire soit ceci :
print gettext("Le fichier :"). $nom_fichier .gettext("est ouvert").".n";
Soit ceci :
print sprintf (gettext("Le fichier : %s est ouvert.n"), $nom_fichier);
Ce qui n'est pas tres pratique lorsqu'on est en phase d'extraction des
chaines.
Donc s'il ya une autre méthode je suis preneur.
Dans l'option gettext on ne peut pas employer ce genre de construction :
print gettext("Le fichier : $nom_fichier est ouvert.n");
On est obligé de faire soit ceci :
print gettext("Le fichier :"). $nom_fichier .gettext("est ouvert").".n";
Soit ceci :
print sprintf (gettext("Le fichier : %s est ouvert.n"), $nom_fichier);
Dans l'option gettext on ne peut pas employer ce genre de construction :
print gettext("Le fichier : $nom_fichier est ouvert.n");
On est obligé de faire soit ceci :
print gettext("Le fichier :"). $nom_fichier .gettext("est ouvert").".n";
Soit ceci :
print sprintf (gettext("Le fichier : %s est ouvert.n"), $nom_fichier);
Dans l'option gettext on ne peut pas employer ce genre de construction :
print gettext("Le fichier : $nom_fichier est ouvert.n");
On est obligé de faire soit ceci :
print gettext("Le fichier :"). $nom_fichier .gettext("est ouvert").".n";
Soit ceci :
print sprintf (gettext("Le fichier : %s est ouvert.n"), $nom_fichier);