Pangloss
What is it?
A Web-based Multi-Lingual Terminology Management System
A dictionary (in different languages)
Why is it being built?
- There are other systems out there
- The good ones are proprietary
(fair enough, you say)
- But prices are artificially inflated.
- Expect to pay £15K+ for licenses
- Don't forget consulting fees...
- And other components...
So?
- Monetary barrier to localization companies
- A shame, because they're good products...
Who's building it?
- London Advice Services Alliance (LASA)
Multikulti, community translations
- Web Architects
Multikulti site
- quiup
Pangloss for multikulti
Why Open Source?
- Open standards (TMX, XLIFF, ...) are emerging
- A common char. encoding (UTF-8)
- Means vendors can share data now
- proprietary file formats war ala MS .doc is coming to an end (I hope!)
Why Open Source?
- So OSS solutions can interoperate with proprietary ones
- an in-expensive alternative...
Enough with these delusions of grandeur...
- Pangloss is not quite ready to compete
- It needs to be finished first
moreover...
- It's a terminology management system, not a translation memory tool
Moving right along...
So what does it do?
- Manage terms, of course!
In a nutshell:
- Categorize, translate, & proofread terms
- Search terms
- Build glossaries from web pages
(well, not yet)
- Manage other things (users and such)
Lets have a look, shall we?
So how was it done?
First, some history...
- Project began in March
- 1 full-time developer [mostly]
- 1 part-time htmler
- 2 whiteboard diagrams
- 1 notebook w/loads of scribbling
And surprisingly:
- A functional spec +
a tech spec were produced
- Both still resemble the current product!
(oooh...)
But:
- they don't go into too much detail (on purpose)
- it's not the biggest project in the world.
- it's easy to be consistent when there's only 1 developer
The Pretty Picture...
The Framework
What, no database?
So I have to write some things myself
- Collections --> tables
- Searches --> selects
- Ordering search results
But I don't have to:
- do OO *and* data modeling
- write SQL
- write an abstraction layer
Other dependencies...
'Test::More' => '0.01',
requires:
'perl' => '5.8.0',
'YAML' => '0.35',
'Date::Format' => '2.0',
'MIME::Types' => '1.06',
'Error' => '0.15',
'Petal' => '1.0',
#'Module::Build' => '0.01', # soon
A lot of things went wrong...
-
1 person, too many jobs
(new business, accounting, marketing, technical architect, front-end coder, back-end coder, sysadmin, ...)
- Juggling projects
- Lack of persistent user feedback
- Developer gold plating
- Over...
...Documented
...Budget
...Schedule (well, kinda)
But that's ok
- I've run other projects before...
- I know that's how you learn
- And besides...
A lot of things went right...
- project is well organized
- ~6,000 lines of code got written
- fairly easy to read
- 860+ tests
- design decisions were made
- API's emerged
- I'm happy with most of it...
A lot of things went right...
- a decent model emerged
ie: business objects, collections, editors, search
- high-level configuration of controller
ie: config.yaml
- separation of front/back end logic
ie: term editor
- localization can be done in front end
ie: error handling w/flags
Things are still going.
- the to-do list is long
- probably incomplete
- functionality not yet implemented
- system limitations unknown
- searches scalable?
- XLIFF, TMX, PO (ie: gettext) support
... etc ...
- TODO
If you're interested...
That's it.
References
Questions?