2011 m. balandžio 30 d., šeštadienis

Gnote 0.7.4 released

Gnote 0.7.4 "The 80 YO Mr.Spock" have been released!

You can download it from here

New features:

* Show addin categories and versions in addin preferences tab (#620402)
* Implemented notebook rename (#610194)
* Drop dependency on Boost filesystem (#641416)
* Require Glibmm 2.18 or newer

Fixes:

* Do not crash when $XDG_DATA_HOME is absent, create configuration
directories as S_IRWXU (#631408)
* Fix documentation for creating notebook (#633976)
* Instance save addin preferences (#637051)
* Use only icons of certain size in tray (#594932)
* Do not lose notebook using notebook toolbar button (#585048)
* Fix --highlight-search with non-uri --open-note (#608713)
* Fix paste of URL part (#633951)
* Fix paste of link part (#634026)
* Fix template note rename (#627539)
* Fix redo with multiline paste and bullets (#588098)
* Fix undo with multibyte characters (#641545)
* Backlinks doesn't work with newer versions libxml (#638321)
* Select new note body selection whith default content (#627073)
* Select new notebook note body selection whith default content (#627075)
* Fix template note selection on creation (#627418)
* Fix notebook template note selection on create (#627417)
* Upgrade to newer boost.m4
* Add missing #include to make translations work (#646051)
* Some GTK 3 compilation fixes (without affect to dependencies and
behaviour)

Translations:

* Updated translations:
- Arabic (ar)
- British English (en_GB)
- Catalan (ca)
- Czech (cs)
- Danish (da)
- French (fr)
- German (de)
- Hebrew (he)
- Hungarian (hu)
- Korean (ko)
- Lithuanian (lt)
- Polish (pl)
- Portuguese Brazil (pt_BR)
- Simplified Chinese (zh_CN)
- Slovenian (sl)
- Spanish (es)
- Swedish (sv)

Notes:
* Distributions, using GNOME 3 might consider adding --search option
to .desktop file
* Distributions, using GNOME 2.32 may want to apply this patch

Thanks:
* Debarshi Ray
* Kjartan Maraas

2011 m. balandžio 28 d., ketvirtadienis

How to make translatable software

As a software translator myself, I sometimes face difficulties, when translating software to Lithuanian language. For this reason I've collected the following guidelines for software developers.



  • Do not concatenate translatable strings

    • In some languages words change their form depending on context. Expecting, that several words, translated to other language and put together, will result in grammatically correct statement in that language and will be as meaningful as in original language is doomed to failure.

    • Typically there is one phrase to translate with one result. As in some language phrase might be different depending on context, it's not possible to translate it properly.

    • Separate phrases are difficult to translate (remember, translators don't see your code).

    • Exception: in case you enforce some text format, it might be convenient to provide different parts separately, such as <what happened>: <explanation>.



  • Use plural forms

    • The number of plural forms is different in different languages. While English has two (singular and plural), some other languages have more. Having statement like '%d error(s)' is impossible to translate properly to some languages, so that it would be correct in all possible cases.



  • Avoid assumptions on width of resulting text

    • When text gets translated to other language, it's difference in width from original is unlimited. The other language might miss a word for direct translation and use a short phrase instead.

    • A statement of few short words in one language may be a statement of more and much longer words in the other.

    • If you do restrict, comment it, so that translators are aware of this.



  • Expect the different formats

    • Number and date formats are different in different locales.

    • Currency symbol is placed before or after the number depending on locale.



  • Do add comments for translators

    • Translators typically don't see the code.

    • It's difficult to translate, when you don't know the meaning of phrase, where and in what context it is used.

    • When a string is parametrized, provide the meanings of parameters, '%s is %s' - which parameter is what?