Kezdőoldal » Számítástechnika » Programozás » Mitől függhet, hogy angol...

Ozmium42 kérdése:

Mitől függhet, hogy angol vagy magyar a hibaüzenet? (python3, urllib)

Figyelt kérdés

Meglehetősen szokatlan és számomra érthetetlen hibába futottam bele, tudniillik adott egy függvény, ami lekéri egy weboldal forráskódját, és közben mindenféle kivételeket kezel. Ezt a függvényt két különböző programba importálva és használva (a függvényt, és a két programot is én írtam) ugyanarra a hibára, ugyanarra a weboldalra, az egyikben magyar nyelvű, a másikban angol nyelvű hibaüzenetet ír ki.


Pl.:


<urlopen error [Errno -2] Name or service not known>

<urlopen error [Errno -2] A név vagy a szolgáltatás nem ismert>


Ez az urllib.error.URLError hibaosztály reason változójában jelenik meg, tehát nem arról van szó, hogy valahol saját hibaüzenetet jelenítek meg, valahol meg "gyárit".


2019. máj. 16. 19:25
 1/7 anonim ***** válasza:

- Milyen op.rendszer? Ahova importáltad, azok ugyanazon a gépen futnak, ugyanabban a környezetben?

- Használsz gettext vagy hasonló fordítási megoldást?

- A szkriptek első sorai ugyanazok? Linux alatt pl:

#!/usr/bin/env python3

2019. máj. 17. 02:05
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:
+ Nem vagyok biztos benne, de ez az üzenet szöveg talán a szervertől jön, nem a Python környezettől. Remélem konstruktívan javít valaki, ha tévedek.
2019. máj. 17. 02:08
Hasznos számodra ez a válasz?
 3/7 A kérdező kommentje:

Ugyanaz a gép.

Ugyanaz a honlap.

Ugyanaz a hiba: párhuzamosan fut mind a két program, kikapcsolom az internetet, erre mind a két program jelzi a hibát. Ebből következik, hogy nem lehet a szerver hibaüzenete, mert nincs kapcsolat.

Az egyik a python interpreterben volt, a másik pedig egy script. Most, hogy ezt leírtam, arra gondolok, hogy itt lehet a kutya elásva. De akkor sem értem.

2019. máj. 17. 18:47
 4/7 anonim ***** válasza:

És melyik írja ki melyik nyelven a hibát mégis?

Mondjuk így kód nélkül fullra vaktában lövöldözünk csak.

2019. máj. 17. 18:58
Hasznos számodra ez a válasz?
 5/7 A kérdező kommentje:

Azt hiszem, rájöttem, hogy mi okozza az eltérést konkrétan. Ez azonban még mindig magyarázatra szorul.


A magyar "verzió" egy grafikus program, aminek az elején van egy ilyen:


import gi

gi.require_version('Gtk', '3.0')

from gi.repository import Gtk, GLib, GObject


Ha ez ott van, akkor magyar a hibaüzenet, ha nincs, akkor angol.


Érdekes például az is, hogy

reason == "magyar string" -> False

reason == "angol string" -> True

pedig print(reason) -> "magyar string"

2019. máj. 17. 21:09
 6/7 A kérdező kommentje:
Na jó, az utolsó bekezdés tárgytalan.
2019. máj. 17. 21:23
 7/7 anonim ***** válasza:

Már az elején is ezt mondtam volna mindenféle többi kommentár nélkül, de csak most járok itt.

Jól látszik a hívási láncolat : [link]

Az URLError-ból jön a hiba szövege. Az URLError meg az OSError-tól : [link]

Az OSError a pythonba beépített és nem pythonba megírt : [link]

A megfelelő hibaüzenet az operációs rendszer által biztosított azért lesz magyar.

Már a Gtk (a többit nem néztem) ami pythonba egy gi.overrides.GtkProxyModule típusú objektum. Ami nálam fizikailag a /usr/lib/x86_64-linux-gnu/girepository-1.0/Gtk-3.0.typelib fájl ami segítségével lesz felüldefiniálva az angol nyelvű hibaüzenet.

2019. máj. 18. 13:07
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!