2011-11-20 4 views
1

J'ai tenté de scanner mes scripts pour tous les appels de fonction _('gettext') dans un nouveau catalogue PoEdit. Après l'analyse des fichiers, il affiche cette erreur:Erreur de génération PoEdit .PO

Filename.class.php:11: warning: Although being used in a format string position, the msgid is not a valid PHP format string. Reason: In the directive number 1, the character '"' is not a valid conversion specifier.

Filename.class.php, ligne 11 ressemble à ceci:

throw new fatalException(sprintf(_('The chosen directory "%" does not exist.'), $dir));

Le fichier .mo est toujours généré, mais aucun texte traduit apparaît sur le site. Le texte d'origine à l'intérieur des appels à _('gettext') est affiché à la place. Est-ce que cela risque d'être le problème, ou y a-t-il une autre raison (telle qu'une information incorrecte setlocale()) que la traduction ne fonctionne pas? Est-ce que quelqu'un est capable de me dire ce que le message d'erreur ci-dessus signifie?

Exécution de Windows sur WAMP Server 2.1 sur mon hôte local avec PHP 5.3.8 et Apache 2.2.17.

Merci.

Répondre

1

Comment ai-je manquer ...

Le message d'exception n'a pas de s suite à la % donc il a fallu le guillemet être le prescripteur de conversion à la place ...

Remplacement ligne 11 le fichier problématique avec le code ci-dessous a résolu le problème.

throw new fatalException(sprintf(_('The chosen directory "%s" does not exist.'), $dir));

Je ne peux toujours pas le texte traduit apparaît donc il semble que le problème est ailleurs. Je pourrais poster une autre question à ce sujet plus tard ...

+0

Maintenant que le msgid a changé avez-vous mis à jour le .po, le .mo et redémarré le serveur web? – dsas

+0

@dsas Oui, tout a été fait. Aucune erreur signalée lors de la génération des fichiers/du redémarrage d'Apache. – Pete171

+0

J'ai aussi vérifié ma fonction 'setlocale()' et elle ne retourne pas false. L'extension Gettext est activée ... – Pete171

1

En outre, peut-être vous devriez échapper les guillemets en les précédant d'une barre oblique inverse?