File: DESIGN

package info (click to toggle)
lokalize 4%3A25.04.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 13,720 kB
  • sloc: cpp: 26,207; xml: 484; python: 483; sh: 21; makefile: 6
file content (32 lines) | stat: -rw-r--r-- 1,438 bytes parent folder | download | duplicates (8)
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