plone.app.multilingual
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

plone.app.multilingual

  • 4,733 views
Uploaded on

plone.app.multilingual presentation at Plone Conference 2012 ...

plone.app.multilingual presentation at Plone Conference 2012

More 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
4,733
On Slideshare
4,729
From Embeds
4
Number of Embeds
1

Actions

Shares
Downloads
8
Comments
0
Likes
0

Embeds 4

https://www.linkedin.com 4

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