Fork me on GitHub

Substance D — Google Summer of Code 2013 week 5 and 6

under Gsoc, Substanced, Plone, Python, English

Greetings, following is the update for Substance D project. Substance D is an application server built using the Pyramid web framework. It can be used as a base to build a general-purpose web application like a blog, a shopping cart application, a scheduling application, or any other web app that requires both an administration and a retail interface. Substance D owes much of its spirit to the Zope application server. Quick links to project info:

Things done in 5. week

6. week

I attended Zidanca Sprint. It was mainly focused on NixOS but I discussed about multilingual support with Daniel Nouri since he was also re-thinking multilingual for Kotti

Main discussion was about how content around multilingual should be structured.

There were four ideas floating around:

  • implement something similar to LinguaPlone. There is a canonical object (dominating translation) and rest of translations are bound to it. The major drawback here is that explaining canonical object to users is very annoying, specially if all languages are treated equal (like Spanish and Catalan :-)
  • there is no canonical object, all translations are equal to each other and use "shared object" as a backend for non-translatable fields in the content
  • there is no canonical object, but one shared object proxies all translatable field interaction to hidden layer where translations lie (in some language roots)
  • there is no canonical object, all objects are equal and non-translatable fields are always synced between each other on modifications (current plone.app.multilingual implementation)

Note that content organization has strong implications on other important parts of multilingual: UI, searching and URLs.

After almost going for third option, I explained those wise ideas to my GSOC mentor Chris McDonough. It didn't take much to convince me that framework-ing multilingual is an old idea that might be in vain. Decided to make it as an application and re-use what Substance D currently provides.

Started substanced_multilingual package. Currently it registers languages and defines folderish content that has translatable content as items. SPOILER: Lot's of TODOs inside.

Next week

  • continue with multilingual support for Substance D
  • fix smallish tickets in between