Právě je čtv bře 28, 2024 4:07 pm

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]




Odeslat nové téma Odpovědět na téma  [ Příspěvků: 5 ] 
Autor Zpráva
PříspěvekNapsal: pát kvě 28, 2010 2:06 pm 
Offline
....
....

Registrován: sob bře 15, 2008 2:50 pm
Příspěvky: 244
Bydliště: áno
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ť?


Nahoru
 Profil  
 
PříspěvekNapsal: sob kvě 29, 2010 1:37 pm 
Offline
...........
...........
Uživatelský avatar

Registrován: sob zář 18, 2004 4:13 pm
Příspěvky: 1898
Bydliště: Slovensko, Bratislava
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é.


Nahoru
 Profil  
 
PříspěvekNapsal: sob kvě 29, 2010 5:01 pm 
Offline
....
....

Registrován: sob bře 15, 2008 2:50 pm
Příspěvky: 244
Bydliště: áno
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 :-)


Nahoru
 Profil  
 
PříspěvekNapsal: ned kvě 30, 2010 9:42 am 
Offline
...........
...........
Uživatelský avatar

Registrován: sob zář 18, 2004 4:13 pm
Příspěvky: 1898
Bydliště: Slovensko, Bratislava
Mne blender diakritiku neberie. :?


Nahoru
 Profil  
 
PříspěvekNapsal: ned kvě 30, 2010 4:12 pm 
Offline
....
....

Registrován: sob bře 15, 2008 2:50 pm
Příspěvky: 244
Bydliště: áno
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í


Nahoru
 Profil  
 
Zobrazit příspěvky za předchozí:  Seřadit podle  
Odeslat nové téma Odpovědět na téma  [ Příspěvků: 5 ] 

Všechny časy jsou v UTC + 1 hodina [ Letní čas ]


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 8 návštevníků


Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Hledat:
Přejít na:  
cron
Založeno na phpBB® Forum Software © phpBB Group
Český překlad – phpBB.cz