Your SlideShare is downloading. ×
  • Like
Översättning av django-program
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Översättning av django-program

  • 656 views
Published

Presentation om hur man förbereder ett djangoprojekt för översättning, hur man designar projektet för att underlätta för översättaren, hur man översätter med poEdit och hur översättning av ett …

Presentation om hur man förbereder ett djangoprojekt för översättning, hur man designar projektet för att underlätta för översättaren, hur man översätter med poEdit och hur översättning av ett djangoprogram fungerar.

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
656
On SlideShare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
3
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Översättning i Django Mikael Moutakis mikaelmoutakis@gmail.com
  • 2. Internationalization i18n
  • 3. Localization L10n
  • 4. Vad?
  • 5. Varför?
  • 6. Det minst viktiga först ...
  • 7. . . . mjukvaran!
  • 8. Hur funkar tekniken? 1. Märk ut pythonkod och templatekod 2. Extrahera 3. Översätt 4. Kompilera och installera 5. Starta om server
  • 9. ... Steg 0. use_I18N=True MIDDLEWARE_CLASSES = ( 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', ) TEMPLATE_CONTEXT_PROCESSORS += ( “django.core.context_processors.i18n”, ) LANGUAGE_COOKIE_NAME=quot;django_languagequot; LANGUAGE_CODE = 'sv'
  • 10. 1.a Märk ut pythonkod from django.utils.translation import ugettext_lazy as _ class Calendar(models.Model): color = models.CharField(_(quot;colorquot;))
  • 11. 1.a Märk ut pythonkod • ugettext_noop • ugettext • ugettext_lazy • ungettext • ungettext_lazy
  • 12. Vara lat? • ugettext_lazy för model.py • När textvärdet hämtas • ugettext för resten • När funktionen anropas
  • 13. ungettext och ungettext_lazy from django.utils.translation import ungettext def hello_world(request, count): page = ungettext('there is %(count)d object', 'there are %(count)d objects', count) % { 'count': count, } return HttpResponse(page)
  • 14. 1.b templatekod {% load i18n %} ... <h1>{% trans “Kanelbulle” %}</h1> <p>{% blocktrans %}Hej, tomtegubbar slå i glasen, n och låt oss lustiga vara. {% endblocktrans %}</p>
  • 15. 1.b templatekod <h1>{% trans “Kanelbulle” %}</h1> <h1>{% trans “Kanelbulle” noop %}</h1>
  • 16. 1.b templatekod <p>{% blocktrans with publ_date|date as local_date %} Idag är det {{local_date}}. Mac rular fett. {% endblocktrans%}</p>
  • 17. 1.b templatekod <p>{% blocktrans with publ_date|date as local_date and spam as skinka%} Idag är det den {{local_date}}. Mac rular fett. {{skinka}}, {{skinka}}, {{skinka}} {% endblocktrans%}</p>
  • 18. 1.b templatekod {% blocktrans count list|length as counter %} There is only one {{ name }} object. {% plural %} There are {{ counter }} {{ name }} objects. {% endblocktrans %}
  • 19. 2. Extrahera texten cd /path/to/myproject (cd /path/to/myapp) django-admin.py makemessages -l sv django-admin.py makemessages -l en django-admin.py makemessages -l de
  • 20. Mappstruktur
  • 21. 2. Extrahera texten cd /path/to/myproject (cd /path/to/myapp) mkdir -p locale/sv/LC_MESSAGES django-admin.py makemessages -l sv
  • 22. django.po msgid quot;quot; msgstr quot;quot; quot;Project-Id-Version: nquot; quot;Report-Msgid-Bugs-To: nquot; quot;POT-Creation-Date: 2008-10-12 19:21+0200nquot; quot;PO-Revision-Date: 2009-04-18 19:25+0100nquot; quot;Last-Translator: Mikael Moutakis <mikaelmoutakis@gmail.com>nquot; quot;Language-Team: nquot; quot;MIME-Version: 1.0nquot; quot;Content-Type: text/plain; charset=UTF-8nquot; quot;Content-Transfer-Encoding: 8bitnquot; #: django_admin_overrides/admin/base.html:25 msgid quot;Welcome,quot; msgstr quot;Välkommen,quot;
  • 23. poEdit
  • 24. Vilket språk? 1. Nyckeln django_language i user session 2. Cookie django_language 3. Accept-Language HTTP header 4. LANGUAGE_CODE i settings.py
  • 25. Vilket språk? (2) ugettext = lambda s: s LANGUAGES = ( ('sv', ugettext('Swedish')), ('en', ugettext('English')), )
  • 26. Vad har jag missat? • olika sajter för olika länder ! M • string_concat F • @allow_lazy T R • set_language redirect view • översättning av javascript • Windows
  • 27. Nu den svåra biten . . .
  • 28. ga lli pi Nu den svåra biten . . .
  • 29. Tänk på sammanhanget!
  • 30. Kom ihåg denna bild!
  • 31. Vad fan menar han?
  • 32. Tillbaka till Google Docs
  • 33. Men vad ser översättaren? New Upload All items Owned by me Opened by me Starred Hidden Trash
  • 34. Men vad ser översättaren? New Ny/Nytt/Nya/Färsk/Färska? Upload Ladda upp/Uppladdning? All items Alla saker/punkter/nummer Owned by me Ägd/ägda av mig Opened by me Öppnad/öppnade av mig Starred Stjärnad? Framträdde? Hidden Gömd/Gömda Trash Smörja/struntprat/slödder
  • 35. Lösning? Ge tips! New [document] Upload [a document] All items [ie documents] [documents] Owned by me [documents] Opened by me Starred [documents] Hidden [documents] Trash [trashcan]
  • 36. Datum, typografi, mm • Idag är det 2009-04-20. Känner ni till “Django”? • Today is 20/04/09. Do you know “Django”? • Today is 04/20/09. Do you know “Django”?
  • 37. Datum, typografi, mm • Heute ist 20.04.09. Kennt ihr „Django”? • Σήμερα είναι 20.04.09. Γνωρίζετε το «Django»; •
  • 38. Datum, typografi, mm {% blocktrans with publ_date.year as year and publ_date.month as month and publ_date.day as day %} Idag är det {{year}}-{{month}}-{{day}}. {% endblocktrans %}
  • 39. Skrivriktning?
  • 40. Sammanfattning • Tänk på sammanhanget • Tänk på typografin • Olika sätt att skriva datum • Olika längd på texten • Skrivriktning
  • 41. Länkar • http://www.norstedtsord.se/oversattning/ engelska/ • http://docs.djangoproject.com/en/dev/topics/i18n/ #topics-i18n • http://en.wikipedia.org/wiki/ Internationalization_and_localization • http://en.wikipedia.org/wiki/Calendar_date
  • 42. Fler länkar • http://www.onemanga.com/Bakuman/ • http://www.mangakailund.org/
  • 43. Tack för uppmärksamheten