Tip pro zhýčkané uživatele GUI. Editory překladových souborů: http://gorm.po.dk/ a živejší projekt http://www.gted.org/.
Názory k článku
Django: Internacionalizace
Zásadní chyba
celé vláknoZásadní chyba tohoto řešení je v tom, že identifikátor jazyka se nepřenáší v URL. Jedním z důsledků je, že do indexu vyhledávačů se dostane jen jedna jazyková verze. Další problém tkví v tom, že stránky nejdou kešovat v HTTP.
Funkce string_concat je ukázaná na zcela nevhodném příkladě.
Proč v příkladu pro stažení není soubor settings.py? Je to jeden z nejdůležitějších souborů a rekonstruovat ho ručně dá dost práce.
Re: Zásadní chyba
celé vláknoDíky za odezvu. Tu první výhradu Django samo o sobě vyřešit neumí, musí se mu pomoct rozšířením nebo si napsat vlastní přesměrování URL.
U druhé výhrady mě nenapadá, jak by měl vypadat vhodný příklad funkce string_concat. Jedná se o jednoduchou funkci, která vezme nějaký seznam řetězců a sestaví řetězec nový – nevidím v tom nic, co by mělo kohokoliv zmást.
Co se týče souboru settings.py, ten je závislý na adresářové struktuře. Seriál je koncipován tak, že si čtenář díl po dílu postupně buduje projekt, jestliže má o to zájem. Tento soubor je opravdu důležitý a myslím si, že by se v něm každý Djangista měl naučit vyznat a být schopen si sestavit ke každého projektu vlastní.
Re: Zásadní chyba
celé vláknoLepší příklad by byl třeba string_concat([_(u'Stav'), ‚: ', _(u‘nový')]. Příklad z článku rozděluje řetězec, který by měl být přeložen vcelku a ještě navíc z něj kus nepřeloží. Z dobrého příkladu by měla být vidět nejen syntaxe, ale i smysluplné použití.
Při chybějícím settings.py tedy nechápu, proč se v článku projekt vůbec nabízí ke stažení. Stejný argument by šel totiž použít i na jeho ostatní části. Verze pro stažení by měla sloužit k tomu, aby si čtenář ověřil, jestli má všechno správně nebo aby se podíval, jestli to vůbec správně funguje. Když tam chybí nejdůležitější soubor, tak to oba účely plní špatně.
Re: Zásadní chyba
celé vláknoad 3)settings.py je závislý na adresářové struktuře, protože s ním tak nakládáte vy, stačilo by v něm použít os.path a na adresářové struktuře by již závislý nebyl, tím že v tomto seriálu tyto cesty píšete „natvrdo“ dáváte dle mého názoru úplným začátečníkům špatné návyky.
Re: Zásadní chyba
celé vláknonapriklad nejak takto:
http://www.meowcode.com/…with-apache/
Re: Zásadní chyba
celé vláknoTo vypadá dobře, ale funguje to i mimo mod_wsgi?
Re: Zásadní chyba
celé vláknoTo fakt netusim, mimo wsgi som django app nikdy nenasadzoval.
Re: Zásadní chyba
celé vláknoZdravím, zdá se mi, že žádoucí chování by bylo: pokud není v url specifikován jazyk a není nastaveno cookie, zjisti jazyk z hlavičky requestu a teprve pokud ten není mezi podporovanými jazyky, použij nastavení settings.py. Podle výsledku nastav cookie a přesměruj nás na správně „lokalizované“ url.
Vámi odkazovaná aplikace je sice užitečná pro vyhledávače, ale uživatelům na drzovku nastaví implicitní jazyk podle settings.py a proto nejde použít zároveň s LocaleMiddleware, které si čte ACCEPT_LANGUAGE a stará se o ty cookies. Tlučou se spolu kdo má pravdu.
Docela by mě potěšilo, kdyby existovalo _univerzální_ řešení a nemusel bych ho psát sám. Znáte nějaké?
Re: Zásadní chyba
celé vláknoCo ti brani napsat si vlastni middleware, kterej bude v URL resit identifikator jazyka?
Vrat se k PHP a Django nech na pokoji.
Re: Zásadní chyba
celé vláknoProsím, žádné osobní výpady. Návrhy na zlepšení Jakuba Vrány byly rozhodně opodstatněné a cením si jich.
Jak udelat jen a pouze CZ verzi?
celé vláknoDobry den,
chtel bych mit web pripraven k multijazycnosti s EN identifikatory, ale zatim mit vse pouze v CZ jazyce.
Identifikatory {% trans „i want this in EN“ %}.
Problem je v tom, ze pokud prijdu na stranky s jazykem pro ktery neni preklad (EN, PT, …) , tak potrebuju nastavit, aby se automaticky nastavila CZ verze.
Muzete me poradit, jak se toho da dosahnout?
Dekuji,
Tom
Re: Jak udelat jen a pouze CZ verzi?
celé vláknoV tom případě bych uvedl v konfigurační konstantě LANGUAGES pouze češtinu.
Re: Jak udelat jen a pouze CZ verzi?
celé vláknoZajimave je, ze pokud si vlozim do projektu (‚cs‘, u'Čeština'), tak se mi objevi error serveru. nevite cim to muze byt?
Muj kus kodu ze settings.py
LANGUAGE_CODE = ‚cs‘
LANGUAGES = (
(‚cs‘, u'Čeština')
)
USE_I18N = True
MIDDLEWARE_CLASSES = (
‚django.middleware.common.CommonMiddleware‘,
‚django.contrib.sessions.middleware.SessionMiddleware‘,
‚django.contrib.auth.middleware.AuthenticationMiddleware‘,
‚django.middleware.locale.LocaleMiddleware‘,
)
TEMPLATE_CONTEXT_PROCESSORS = (
„django.core.context_processors.auth“,
„django.core.context_processors.debug“,
„django.core.context_processors.i18n“,
„django.core.context_processors.media“,
)
Re: Jak udelat jen a pouze CZ verzi?
celé vláknoJe na začátku souboru správně definované kódování? Musí tam být řádek # coding: utf-8.
Re: Jak udelat jen a pouze CZ verzi?
celé vláknoMam tam znacku:
# coding=UTF-8
Pri pouziti
# coding: utf-8 me to napise unsupported encoding
Re: Jak udelat jen a pouze CZ verzi?
celé vláknoPoužívám na začátku souboru
# -- coding: utf-8 --
( ty -*- jsou tam pro parádu ale leckde se používají)
Kromě téhle informace, která se hledá (tuším) na prvních dvou řádcích souboru je také dobré si zkontrolovat, zda editor ukládá daný soubor opravdu ve formátu utf-8