Revision edda4d30

b/README
9 9
    $ virtualenv synnefo --no-site-packages
10 10
    ...
11 11
    $ cd synnefo
12
    $ ./bin/pip install django django-piston django-localeurl
12
    $ ./bin/pip install django django-piston 
13 13
    ...
14 14
    ...
15 15
    $ cp settings.py.dist settings.py
b/README.i18n
14 14
1)for each language we want to add, we run makemessages, from our project's base:
15 15

  
16 16
$ django-admin.py makemessages -l el -e=html,txt,py
17
(./bin/django-admin.py makemessages -l el -e html,txt,py --ignore=lib/*)
18

  
17 19

  
18 20
this will add the Greek language, and we specify that html, txt and python files contain translatable strings
19 21

  
b/locale/el/LC_MESSAGES/django.po
3 3
# This file is distributed under the same license as the PACKAGE package.
4 4
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5 5
#
6
#, fuzzy
7 6
msgid ""
8 7
msgstr ""
9 8
"Project-Id-Version: PACKAGE VERSION\n"
10 9
"Report-Msgid-Bugs-To: \n"
11
"POT-Creation-Date: 2011-01-07 18:19+0200\n"
10
"POT-Creation-Date: 2011-01-14 21:58+0200\n"
12 11
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13 12
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14 13
"Language-Team: LANGUAGE <LL@li.org>\n"
......
17 16
"Content-Transfer-Encoding: 8bit\n"
18 17

  
19 18
#: ui/views.py:7
20
msgid "Ubuntu 10.10 server 64bit"
21
msgstr " Ένα Ubunty 10.10 mpla mpla "
22

  
23
#: ui/views.py:7
24 19
msgid "Apache, MySQL, php5 preinstalled"
25
msgstr ""
20
msgstr "Apache, MySQL, php5 προεγκατεστημένα"
26 21

  
27
#: ui/templates/alt_instances.html:4 ui/templates/instances.html:3
28
msgid "Create New +"
29
msgstr "Δημιουργία Νέου +"
30 22

  
31
#: ui/templates/home.html:17
23
#: ui/templates/home.html:24
32 24
msgid "username"
33 25
msgstr ""
34 26

  
35
#: ui/templates/home.html:17
27
#: ui/templates/home.html:24
36 28
msgid "settings"
37
msgstr ""
29
msgstr "ρυθμίσεις"
38 30

  
39
#: ui/templates/home.html:34
31
#: ui/templates/home.html:48
40 32
msgid "Greek Research and Technology Network - Cloud management web interface"
41 33
msgstr "Εθνικό Δίκτυο Έρευνας και τεχνολογίας"
34

  
35
#: ui/templates/instances.html:5
36
msgid "Create New +"
37
msgstr "Δημιουργία Νέου +"
b/settings.py.dist
82 82
MIDDLEWARE_CLASSES = (
83 83
    'django.contrib.sessions.middleware.SessionMiddleware',
84 84
    'django.middleware.locale.LocaleMiddleware',
85
    'localeurl.middleware.LocaleURLMiddleware',
86 85
    'django.middleware.common.CommonMiddleware',
87 86
    'synnefo.middleware.StripURLMiddleware',
88
    'django.middleware.csrf.CsrfViewMiddleware',
87
    #'django.middleware.csrf.CsrfViewMiddleware',
89 88
    'django.contrib.auth.middleware.AuthenticationMiddleware',
90 89
    'django.contrib.messages.middleware.MessageMiddleware',
91 90
)
......
99 98
)
100 99

  
101 100
INSTALLED_APPS = (
102
    'localeurl',
103 101
    'django.contrib.auth',
104 102
    'django.contrib.contenttypes',
105 103
    'django.contrib.sessions',
b/ui/i18n.py
1
from django import http
2
from django.conf import settings
3
from django.utils.translation import check_for_language, activate, to_locale, get_language
4

  
5
def set_language(request):
6
    """
7
    Django's set_language function adapted to serve GET instead of POST
8
    """
9
    next = request.REQUEST.get('next', None)
10
    if not next:
11
        next = request.META.get('HTTP_REFERER', None)
12
    if not next:
13
        next = '/'
14
    response = http.HttpResponseRedirect(next)
15
    if request.method == 'GET':
16
        lang_code = request.GET.get('l', None)
17
        print 'print einai:', lang_code
18

  
19
        if lang_code and check_for_language(lang_code):
20
            if hasattr(request, 'session'):
21
                request.session['django_language'] = lang_code
22
            else:
23
                response.set_cookie(settings.LANGUAGE_COOKIE_NAME, lang_code)
24
    print 'tora einai:', lang_code
25
    return response
b/ui/templates/home.html
1 1
{% load i18n %}
2
{% load localeurl_tags %}
3 2

  
4 3
<!DOCTYPE html>
5 4

  
......
16 15
    <div id="wrapper">
17 16

  
18 17
    {% get_available_languages as LANGUAGES %}
19
    
20 18
        <div id="language">
21 19
            {% for lang in LANGUAGES %}
22
                <a href="{{request.path|chlocale:lang.0}}">{{lang.1}}</a> 
20
                <a href="/lang/?l={{lang.0}}">{{lang.1}}</a> 
23 21
            {% endfor %}
24 22
        </div>
25 23

  
b/ui/templates/instances.html
1
{% load i18n %}
2

  
1 3
<div id="instances" class="seperator"></div>
2 4

  
3
<a id="create" rel="#wizard" href="#">Create New +</a>
5
<a id="create" rel="#wizard" href="#">{% trans "Create New +" %}</a>
4 6

  
5 7
<div id="view-select">
6 8
    <a id="standard" class="current" href="/">#</a>
b/ui/views.py
1
import os
2
from django.utils.translation import gettext_lazy as _
1 3
from django.template import Context, loader
2 4
from django.http import HttpResponse
3
import os
4 5

  
5 6
DEFAULT_IMAGES = [
6
              {'id': 'ubuntu-10.10-x86_64-server', 'type':'standard', 'title': 'Ubuntu 10.10 server 64bit', 'description': 'Apache, MySQL, php5 preinstalled', 'size': '834', 'logo':'ubuntu.png'}, 
7
              {'id': 'ubuntu-10.10-x86_64-server', 'type':'standard', 'title': 'Ubuntu 10.10 server 64bit', 'description': _('Apache, MySQL, php5 preinstalled'), 'size': '834', 'logo':'ubuntu.png'}, 
7 8
              {'id': 'fedora-14-desktop', 'type':'standard', 'title': 'Fedora 14 desktop 32bit', 'description': 'Apache, MySQL, php5 preinstalled', 'size': '912', 'logo':'fedora.png'}, 
8 9
              {'id': 'windows7-pro', 'type':'standard', 'title': 'Windows 7 professional', 'description': 'MS Office 7 preinstalled', 'size': '8142', 'logo':'windows.png'}, 
9 10
              {'id': 'windows-xp', 'type':'standard', 'title': 'Windows XP', 'description': 'MS Office XP preinstalled', 'size': '6192', 'logo':'windows.png'},
b/urls.py
6 6
from django.conf.urls.defaults import *
7 7

  
8 8
urlpatterns = patterns('',
9
    (r'^i18n/', include('django.conf.urls.i18n')),
9
    (r'^lang/$', 'synnefo.ui.i18n.set_language'),
10 10
    (r'^auth/api/', include('synnefo.auth.urls')),
11 11
    (r'^api/', include('synnefo.api.urls')),
12 12
    (r'^', include('synnefo.ui.urls')),

Also available in: Unified diff