Your SlideShare is downloading. ×
plone.app.multilingual
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

plone.app.multilingual

5,000

Published on

plone.app.multilingual presentation at Plone Conference 2012 …

plone.app.multilingual presentation at Plone Conference 2012

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
5,000
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
8
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. plone.app.multilingual Next generation multilingual story http://pam.iskra.cat
  • 2. Ramon Navarro Bosch CTO at Iskra.cat Developing Plone sites since 2003 Part time musician - Ramons blog / @bloodbare
  • 3. Víctor Fernández de AlbaLead web developer at Universitat Politècnica de Catalunya - Barcelona TechAuthor of Plone 3 Intranets (2010, Packt)Developing Plone sites since 2004 - Víctors Blog / @sneridagh
  • 4. HistoryProject started at Girona (Catalonia) sprint in 2005Gathered some of the Plone Rock StarsDesign decisions, base infrastructureOnly for AT, DX doesn’t even exist yet
  • 5. LinguaPloneGreat product created by Jarn“De facto” standard multilingual story for PloneOnly supports ATNow in “legacy” statusUsed (literally) in every Plone site (Ive) deployedLots of experience embedded
  • 6. LinguaPlone design factsStores translation relations into objectsUses catalog patches to hide content depending on current languageRelies in class inheritance to extend standard AT functionalitiesNot compatible with dexterity content types
  • 7. Enter PAMUses ZCA technologiesAT and DX compatibleManage translations via unified UI
  • 8. Componentsplone.app.multilingual (UI)plone.multilingual (core)plone.multilingualbehavior (DX support)archetypes.multilingual (AT support)
  • 9. Rules of design1. There is no canonical content object2. Strict language root folders3. Neutral support outside LRF
  • 10. Features
  • 11. Language root foldersCreated on PAM setup
 (Language control panel)Plone folders implementing INavigationRootSubscribers in place...... to guarantee integrity... so each language is “jailed” inside its own LRF
  • 12. Babel viewUnified edit form either for AT and DXNot forced every time you edit a contentLP like, but with vitaminsInstant access (ajaxified) to other available translations in the left panel
  • 13. Language independent fieldsNo canonical implies changes in LIFs behaviorUsers can change the content inside a LIF and it gets replicated to othertranslation objects
  • 14. Marking LIFs in AT Same way as in LPaaiSrnFed tp.tigil( yil mFed, wde=tp.tigigt igtaaiSrnWde( .. .. ), lnugIdpnetTu agaeneedn=re),
  • 15. Marking LIFs in DX Grok directive In content type declaration classfo poemliigabhvo ipr drcie rm ln.utlnuleair mot ietvsdrcie.agaeneedn(fed) ietvslnugidpnetil
  • 16. Marking LIFs in DX Supermodel In your content type XML file declaration<il nm=mFed fed ae"yil" tp=zp.ceaTxLn" ye"oeshm.etie lnu:needn=tu" igaidpnet"re> <ecito / dsrpin > <il>yil<tte ttemFed/il><fed /il>
  • 17. Marking LIFs in DX Native In your codefo poemliigabhvo.nefcsipr IagaeneednFed rm ln.utlnuleairitrae mot LnugIdpnetilasPoie(Shm[mFed] IagaeneednFed lorvdsIceayil, LnugIdpnetil)
  • 18. Marking LIFs in DX Through the webVia the content type definition in the Dexterity Content Types control panel.
  • 19. Language selector policyThere are two policies in place in case the translation of a specific language doesnot exist (yet):LP way, the selector shows the nearest translated containerShows the user an informative view that shows the current available translationsfor the current content
  • 20. Neutral root folder support As a necessity due to LRFs There are use cases where “neutral” content is a must Assets, resources, media, documents...
  • 21. Translation mapAid for mental sanity of site editorsGraphical way to show content and its related translationsList of untranslated content (for mirror-translated sites)
  • 22. Google Translation service Integration with GTS (paid service) Icon in Babel view Setup API key in Language control panel
  • 23. LinguaPlone migrationMigration tab in Languages control panelNon-destructiveLookup your code for LP dependencies before migratingStill rough edges, should be addressed in sprint
  • 24. Internals
  • 25. Translatable marker interfacepoemliiga.nefcsIrnltbe ln.utlnulitrae.Tasaal
  • 26. AdaptersITranslationManagerITranslationLocatorITranslationClonerIt’s easy to create “policies” with more specific adapters (translation locator,selector, etc.)
  • 27. SubscribersLanguage integrity checkers Add to container Copy/paste Modify
  • 28. Storage
  • 29. Why?Modify translation without waking objectsDirect translation mapEasier to work on all translations (import/export)Too much catalog!!
  • 30. Unified get/set language Unified adapter for AT and DXfo poemliiga.nefcsipr Iagae rm ln.utlnulitrae mot Lnuglnug =Iagaecnet.e_agae) agae Lnug(otx)gtlnug(lnug =Iagaecnet.e_agaea) agae Lnug(otx)stlnug(c
  • 31. DEMO!
  • 32. RoadmapXLIFF export/importRemoving catalog patchIterate supportLinguaPlus/Linguatools set of useful toolsLocator translation policyOutdated translations alerts and translation workflows support
  • 33. Futureplone.app.toolbar supportAdd support for Deco layouts and tiles
  • 34. Sprint!LinguaPlone Migration improvementsUI Rough edgesMore Testing and use casesLocator translation policyJoin us on PC Sprint!

  • 35. Special thanks to... Anne Walter Jonathan Lewis Martijn Pieters Martin Aspeli David Glick Patrick Gerken Thomas Masmann Jean Carel Brand Mikel Larreategui
  • 36. Thank you! Questions? Ramon Navarro Bosch (@bloodbare) Víctor Fernández de Alba (@sneridagh)http://github.com/plone/plone.app.multilingual http://pypi.org/plone.app.multilingual http://pam.iskra.cat

×