blender3d.cz
http://blender3d.cz/forum/

viacjazyčná "hra" [blender 2.5,2 r28904]
http://blender3d.cz/forum/viewtopic.php?f=11&t=7679
Stránka 11

Autor:  Bigbob [ pát kvě 28, 2010 2:06 pm ]
Předmět příspěvku:  viacjazyčná "hra" [blender 2.5,2 r28904]

Dnes som sa pokúšal použiť modul gettext na použitie viacerých jazykoch v "hre", použil som tento skript:
Kód:
# -*- coding: utf-8 -*-

import os.path, sys
import gettext
name = "main"
dir = "./locale"
gettext.install(name, dir)
_ = gettext.gettext
languages = {
    "english" : gettext.translation(name, dir, languages=["en"]),
    "german"  : gettext.translation(name, dir, languages=["de"]),
}

# AJ
languages["english"].install()
print _("ahoj")

# NJ
languages["german"].install()
print _("ahojj")


boužial mi na riadku print _("ahoj") vyhodil Python chynu "invalid syntax". Zátvorky s uvodzovkami okolo retazca mám a _ je definované, tak neviem, kde je problém

poznámka: .mo súbory musia byť zrejme v adresári odkial sa spúšťa Blender/Blenderplayer. teda aspoň podla výpisu z getcwd()

neviete mi s tým niekto pomôcť?

Autor:  zgerbiak [ sob kvě 29, 2010 1:37 pm ]
Předmět příspěvku:  Re: viacjazyčná "hra" [blender 2.5,2 r28904]

Pdľa mňa tam bude chyba tu:
languages = {
"english" : gettext.translation(name, dir, languages=["en"]),
"german" : gettext.translation(name, dir, languages=["de"]),
}

Vytváraš premennú languages v tom ako ju vytváraš do nej vkladáš údaje.
Ako môžeš vkadať údaj do niečoho čo ešte neexistuje?

Skús to prepísať:
languages = {}
q = gettext.translation(name, dir, languages=["en"])
languages["englisch"] = q
q = gettext.translation(name, dir, languages=["de"])
languages["englisch"] = q

Ten kód sa mi zdá dosť divný.
Pri najhoršom si napíš vlastný kód pre prekladanie. :-)
To nieje ťažké.

Autor:  Bigbob [ sob kvě 29, 2010 5:01 pm ]
Předmět příspěvku:  Re: viacjazyčná "hra" [blender 2.5,2 r28904]

To s tou premennou som si neuvedomil,dík.
Tak som prvú časť skriptu zjednodušil a tiež som si opravil chybné zátvorky, to asi spôsobovalo tie problémy.
Kód:
# -*- coding: utf-8 -*-

import os.path
import sys
import gettext

appname = "main"
dir = "./locale"
gettext.install(appname, dir)

english = gettext.translation(appname, dir, languages=["en"])
german = gettext.translation(appname, dir, languages=["de"])

english.install()
print(_("ahoj"))

german.install()
print(_("ahoj"))


bohužial ak obsahujú retazce v .po súbore diakritikritiku, tak pri spúštaní skriptu v konzoli mám z textu rozsypaný čaj a BGE mi ich odmieta zobraziť s tým, že:
Citace:
UnicodeEncodeError: "charmap" codec can´t encode character "\u100d" in position 38: character maps to <undefined>


Skúsim to nejak doriešit sám ale každá pomoc by sa mi hodila :-)

Autor:  zgerbiak [ ned kvě 30, 2010 9:42 am ]
Předmět příspěvku:  Re: viacjazyčná "hra" [blender 2.5,2 r28904]

Mne blender diakritiku neberie. :?

Autor:  Bigbob [ ned kvě 30, 2010 4:12 pm ]
Předmět příspěvku:  Re: viacjazyčná "hra" [blender 2.5,2 r28904]

Myslím, že viem ako to obísť. Mohol by som mohol upraviť bitmapu fontu tak aby namiesto čísel zobrazoval písmená s diakritikou. Teda, ak by som hodil do .mo súboru string 3aman, tak by mi BGE vypísal slovo šaman. vyskúšam to a potom sem napíšem, jak to dopadlo.(len dúfam, že po úprave nebudem musieť tú bitmapu preháňať cez FTBlender)

EDIT: ash tu tuším kedysi ukazoval nejakú peknú utilitku, ktorá dokázala generovať bitmapové fonty z diakritikou, skúsim to pohladať.
EDIT2: Bingo! http://www.ashsid.sk/?p=21 dokonca v jednej téme tu postol aj pár fontov http://blender3d.cz/forum/viewtopic.php?f=11&t=231&p=80951#p80951
EDIT3: použil som bitmapový font, ktorý dal Ash do tej témy a funguje, v políčku property mi to síce píše namiesto diakritiky nezmysly ale v ge sa to zobrazuje správne. Skúsim, či mi ge načíta ten text z .mo súboru ako property objektu.
EDIT4: No, z .mo súboru už sa mi texty načítavajú bez problémov ale namiesto písmen z diakritikou sa mi zobrazujú @. Problém bude asi v znakovej sade, ktorú používa buď .mo súbor alebo Blender
EDIT5: móóc zaujimavé je, že teraz mi print(_("ahoj")) v konzoli blendera vypíše bez problému. Mal by som si tie súbory usporiadať, lebo v nich začínam mať slušný bordel :/
EDIT6: dalšie zaujimavé zistenie. ked napíšem text s diakritikou do pola property s názvom Text tak sa zobrazujú aj písmená s diakritikou. Ked ale dám do skriptu own["Text"] = (_("šaman")) tak sa už diakritika nezobrazí, resp zase rozsypaný čaj.
EDIT7: asi napíšem do bug trackera, že textový editor nepodporuje UTF-8 čku, možno to niekto aspoň čiastočne opraví

Stránka 11 Všechny časy jsou v UTC + 1 hodina [ Letní čas ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/