~ubuntu-branches/ubuntu/trusty/lokalize/trusty-proposed

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
The most global class is 'Project'. It is a singleton and keeps project-related data/settings
'Settings' is also a singleton (src/prefs).

==LokalizeMainWindow==
'LokalizeMainWindow' is the main window with multitabs interface.
Uses QMdiArea for tabbing interface, and guiFactory()->addClient()/guiFactory()->removeClient()
to merge actions from tabs (editor, project overview, tm-search tab), and StatusBarProxy to deliver info from tabs.
Tabs are KMainWindows + KXmlGuiCleints.

==Project Overview tab==
Hacks KDirLister to merge contents from two dirs.
uses kdesdk/strigi-analyzer/po to scan translation files

==Editor tab==
'EditorTab' is a dispatcher (controller) for one catalog editing window (tab).
'EditorView' is msgid/msgstr viewer/editor for it.
'MsgCtxtView', 'GlossaryView' and other QDockWidget derivatives provide specialized features.
All specialized actions should go into views (QDockWidgets) or separate classes used from views.

'Catalog' is a controller+proxymodel for CatalogStorage translation files
'CatalogStorage' is interface for different storage models (QVector for gettext, QDom for xliff)

==Translation Memory==
Implemented as series of jobs running in second thread (src/tm/jobs.cpp).
See initDB() for database schema

==Glossary==
SAX parser/generator based. Tries to preserve unknown metadata on saving when possible.


API docs:
http://api.kde.org/4.x-api/kdesdk-apidocs/lokalize/html/annotated.html