Форум сайта python.su
:)
по поводу простого примера с gettext
сделаем файл test.py с таким содержимым:
import gettext
lang1 = gettext.translation('messages', 'i18n', languages=['en'])
lang2 = gettext.translation('messages', 'i18n', languages=['ru'])
lang1.install()
print _(u'This is a translatable string.')
lang2.install()
print _(u'This is a translatable string.')
Офлайн
Вот кстати gettext на JavaScript
http://habrahabr.ru/blogs/webdev/108348/
Офлайн
ofigetitelno Спасибо за пример.)
Я вечером попробую из дома.
Хотел узнать а как это реализуется именно в Веб. Как это будет выглядеть в шаблоне. Я хочу перевести весь интерфейс сайта допустим на 2 языка.
Офлайн
:)
например для мако
http://www.makotemplates.org/docs/usage.html#babel
Офлайн
Не я имел ввиду на примере каком нибудь. Извините за настырность.:)
Ну допустим как Ваш выше приведенный пример вывести в .html-е? Это как раз про мой вопрос про пример
iDimaСпасибо Огромное если подскажете.
2 кнопки ру и ен
и при нажатии на которые происходит смена языка какой нибуть фразы типа “Привет мир”.
Офлайн
:)
делаем файлик test0.py
from gettext import translation
from paste import urlmap, httpserver
from mako.template import Template
LANGUAGES = {
'en': translation('messages', 'i18n', languages=['en']),
'ru': translation('messages', 'i18n', languages=['ru'])}
TEMPLATE = Template(filename='test0.mako', output_encoding='utf-8')
def render(language='en'):
kwargs = {
'_': LANGUAGES[language].ugettext}
return TEMPLATE.render(**kwargs)
def en_app(environ, start_response):
start_response('200 OK', [('Content-type', 'text/html')])
return render()
def ru_app(environ, start_response):
start_response('200 OK', [('Content-type', 'text/html')])
return render('ru')
mapping = urlmap.URLMap()
mapping['/'] = en_app
mapping['/en'] = en_app
mapping['/ru'] = ru_app
httpserver.serve(mapping, host='127.0.0.1', port=5000)
<body>
<a href="/ru">russian</a><br/>
<a href="/en">english</a><br/>
${_(u'This is a translatable string.')}
Офлайн
ofigetitelno Спасибо огромное!!! Я уже немного разобрался при помощи Ваших примеров. :)
Офлайн
в голову пришел такой вариант: делаем файл main.base
<html><head>
<title>{$my site$} {{title}}</title>
</head><body>...
Офлайн
Боюсь, что по мере совершенствования вашего варианта получите тот же gettext - только при этом затратите дополнительное время на разработку.
Оправданием может послужить то, что изобретать колесо - весело и интересно, как мне подсказали.
Если уж следовать вашей идее (готовим локализацию в самом шаблоне) - то проще сделать “общие шаблоны для gettext”, а потом один раз выгнать из них локализации для нужных языков. Их и подключать. Что, кстати, делают сплошь и рядом.
Офлайн
o7412369815963 Я так понял, что предлагается иметь кучу одинаковых шаблонов (для каждого языка)? А как быть с множественной формой? К примеру “1 яйцо”, “2 яйца”, “5 яиц”. Тем более, что в разных языках их разное количество (форм).
Андрей Светлов +1 за http://babel.edgewall.org/
Офлайн