Forums

PlayOnLinux sur Fedora8: No translation file found for domain: \'pol\'

Auteur Réponses
Erwan Dimanche 1 Juin 2008 à 17:24
ErwanAnonymous

Bonjour,

je viens d'installer le rpm de PlayOnLinux 3.0.1 sur ma Fedora 8 et j'ai un petit soucis au lancement. J'ai le message d'erreur suivant:
--
Traceback (most recent call last):
File "/usr/share/playonlinux/python/guiv3.py", line 25, in <module>
lib.lng.Lang()
File "/usr/share/playonlinux/python/lib/lng.py", line 13, in __init__
presLan = gettext.translation("pol", Variables.playonlinux_env+"/lang/locale", languages=[locale_[0]])
File "/usr/lib/python2.5/gettext.py", line 471, in translation
raise IOError(ENOENT, 'No translation file found for domain', domain)
IOError: [Errno 2] No translation file found for domain: 'pol'
--
et rien ne se passe... Quelqu'un sait-il de quel côté il faut que je regarde pour résoudre ce problème?

Erwan
Aymeric P. Dimanche 1 Juin 2008 à 17:50
Aymeric P.
Admin

/me va prendre des vacances

Installe le paquet gettext si ce n'est déjà fait, mais apparemment c'est autre chose le problème.

Le rapport est quand même liée au locale ...

Sinon essaye de lancer POL comme ça : LC_ALL=C playonlinux

Former member.
Erwan Dimanche 1 Juin 2008 à 18:28
ErwanAnonymous

Merci pour la réponse rapide. Pas de doute, le diagnostique est le bon. C'est bien une histoire de locale mais LC_ALL=C playonlinux me donne un nouveau message d'erreur...
Traceback (most recent call last):
File "/usr/share/playonlinux/python/guiv3.py", line 25, in <module>
lib.lng.Lang()
File "/usr/share/playonlinux/python/lib/lng.py", line 11, in __init__
locale_test = string.split(locale_[0],"_")
File "/usr/lib/python2.5/string.py", line 290, in split
return s.split(sep, maxsplit)
AttributeError: 'NoneType' object has no attribute 'split'
Je vais essayer d'enquêter un peu plus de mon côté...

Erwan
Aymeric P. Dimanche 1 Juin 2008 à 20:49
Aymeric P.
Admin

Bon c'est bizarre car j'ai demander sur IRC au quelque utilisateur de Fedora qu'il y avait si il avait le problème et personne ne rencontre ton bug :|

Former member.
Erwan Lundi 2 Juin 2008 à 9:11
ErwanAnonymous

Dans la série, l'informatique c'est fun. Ça marche sans soucis si je suis connecté comme root....

Erwan
Erwan Lundi 2 Juin 2008 à 22:10
ErwanAnonymous

Bonsoir,

je pense avoir la clé du problème: getdefaultlocale est une "mauvaise" fonction, il faut changer de fonction... Cf http://bugs.python.org/issue813449 :
This is a known limitation: getdefaultlocale should not be
used in new code.

If the intention is to compute the locale's encoding,
locale.getpreferredencoding should be used instead.

Il suffit donc de remplacer dans /playonlinux/python/lib/lng.py la ligne
locale_ = locale.getdefaultlocale()
par
locale_ = locale.getpreferredencoding()
pour obtenir un comportement correct (en tout cas chez moi...)

Erwan

Edité par Erwan

Quentin PÂRIS Lundi 2 Juin 2008 à 22:24
Quentin PÂRIS
Admin

Merci Erwan pour ceci

Edit : Ouai mais non ça va pas . Ton code renvoit l'encodage

Edité par Tinou

Erwan Lundi 2 Juin 2008 à 23:27
ErwanAnonymous

Effectivement c'était n'importe quoi... Je progresse dans mon débug (et ma découverte de Python). Le problème arrive du fait que ma langue par défaut est "en_US"! locale_[0] vaut alors 'en_US' et locale_test[0]='en'.
Si je rajoute, juste après locale_test = string.split(locale_[0],"_")
--
if(locale_test[0]=='en'):
locale_=['fr']
--
ce qui est stupide, ça bloque plus et j'ai la version française. Plus drôle, si je fais
--
if(locale_test[0]=='en'):
locale_test=['fr'];
locale_=['fr']
--
j'obtiens la version anglaise...

Erwan qui n'a pas d'explication rationnelle!
Quentin PÂRIS Lundi 2 Juin 2008 à 23:33
Quentin PÂRIS
Admin

#!/usr/bin/python
import locale
print locale.getdefaultlocale()

ça donne quoi ?
Erwan Lundi 2 Juin 2008 à 23:45
ErwanAnonymous

j'obtiens ça
('en_US', 'ISO8859-1')
vevmesteren Mercredi 4 Juin 2008 à 5:53
vevmesterenAnonymous

Moi je obtiens ('en_CA', 'UTF8')

uBUNTU 8.04
python 2.5
gettext est la aussi

mais sauf ca les meme problemes


playonlinux
[sudo] password for valentin:
Traceback (most recent call last):
File "/usr/share/playonlinux/python/guiv3.py", line 25, in <module>
lib.lng.Lang()
File "/usr/share/playonlinux/python/lib/lng.py", line 13, in __init__
presLan = gettext.translation("pol", Variables.playonlinux_env+"/lang/locale", languages=[locale_[0]])
File "/usr/lib/python2.5/gettext.py", line 484, in translation
raise IOError(ENOENT, 'No translation file found for domain', domain)
IOError: [Errno 2] No translation file found for domain: 'pol'


ET


sudo LC_ALL=C playonlinux
Traceback (most recent call last):
File "/usr/share/playonlinux/python/guiv3.py", line 25, in <module>
lib.lng.Lang()
File "/usr/share/playonlinux/python/lib/lng.py", line 11, in __init__
locale_test = string.split(locale_[0],"_")
File "/usr/lib/python2.5/string.py", line 290, in split
return s.split(sep, maxsplit)
AttributeError: 'NoneType' object has no attribute 'split'

Edité par vevmesteren

Erwan Samedi 14 Juin 2008 à 15:22
ErwanAnonymous

Cela semble corrigé dans la version 3.0.2

Erwan