* utils/hbmk2/hbmk2.prg
! Added workaround for DIRECTORY() problem under Windows.
'*.ext' input files weren't working if the actual filenames
had different casing (on Windows). Also changed the hack
to only kick in on Windows platforms, *nixes seems to work
as expected.
; NOTE: This workaround should probably be moved to Harbour
FileFind API.
* INSTALL
+ Added HB_INC_ODBC.
* contrib/hbwin/tests/testole.prg
* contrib/hbwin/legacyc.c
* Updated to reflect OLE function name changes.
* contrib/hbwin/legacyc.c
+ Added GETACTIVEOBJECT(), CREATEOBJECT(), OLEERROR()
compatibility calls. All of them are simple aliases to
new OLE function, which means there may be differences
in behviour. Users will need to adjust them for full
compatibility.
However, I'd recommend changing all code to use our
new OLE functions and classes.
* contrib/hbwin/Makefile
+ contrib/hbwin/legacy.prg
* Moved TOLEAUTO() compatibility class to .prg level.
It's a stub, inheriting from WIN_OLEAUTO. I hope TOLEAUTO
users will fill it with required compitibility methods.
; NOTE: Getting these warnings with bcc:
Warning W8075 ../../axcore.c 93: Suspicious pointer conversion in function hb_ax_init
Warning W8075 ../../axcore.c 322: Suspicious pointer conversion in function HB_FUN___AXREGISTERHANDLER
; NOTE: Getting these errors with msvc (default C++ mode):
../../axcore.c(93) : error C2440: '=' : cannot convert from 'FARPROC' to 'HRESULT (__stdcall *)(HWND,IUnknown **)'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
../../axcore.c(146) : error C2143: syntax error : missing ';' before '*'
../../axcore.c(146) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
../../axcore.c(146) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
../../axcore.c(175) : error C2039: 'lpVtbl' : is not a member of 'ISink'
../../axcore.c(145) : see declaration of 'ISink'
../../axcore.c(175) : error C2227: left of '->Release' must point to class/struct/union/generic type
../../axcore.c(179) : error C2143: syntax error : missing ')' before 'this'
../../axcore.c(179) : error C2143: syntax error : missing ';' before 'this'
../../axcore.c(179) : error C2059: syntax error : ')'
../../axcore.c(180) : error C2143: syntax error : missing ';' before '{'
../../axcore.c(180) : error C2447: '{' : missing function header (old-style formal list?)
[ ...snip... ]
../../axcore.c(198) : error C2365: 'Release' : redefinition; previous definition was 'formerly unknown identifier'
[ ...snip... ]
../../axcore.c(282) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
../../axcore.c(282) : error C2146: syntax error : missing ';' before identifier 'ISink_Vtbl'
../../axcore.c(282) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
../../axcore.c(283) : error C2440: 'initializing' : cannot convert from 'HRESULT (__stdcall *)(IDispatch *)' to 'int'
There is no context in which this conversion is possible
../../axcore.c(284) : error C2078: too many initializers
../../axcore.c(322) : error C2039: 'lpVtbl' : is not a member of 'ISink'
../../axcore.c(145) : see declaration of 'ISink'
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
+ Added support for UTF-8 output. Currently on on *nix
systems. The current solution is just an ugly hack,
for the most part to test this problem in real life.
The output format is also fixed to *nix OSes, there is
not attempt made to detect terminal encoding, so it
may be wrong if terminal expects something else.
* utils/hbi18n/hbi18n.prg
* .po_ -> .po (Przemek, please verify me, or modify it as
you think best)
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
+ Displaying C compiler used (with path) if autodetection
was used and -info enabled.
! Workaround added to MemoLine() sometimes returning empty
string for the last line.
* source/rtl/tget.prg
% Minor opt.
* contrib/hbwin/win_reg.prg
* contrib/hbwin/win_regc.c
* Cleanups: Documenting params, changing default, using SWITCH,
HKEY to HKCU (from HKLM) to be friendly with restricted user
situations (code may become incompatible), removed unused params,
changed return values to logical, more consistently filling params
returned by ref, fixed hkResult usage, fixed hbResult to use real
pointer type, minor opts.
Some of these changes may create incompatibility if:
- no hkey is passed, since the default has changed.
- using win_reg*() functions directly, since return value and
hbResult type has changed.
! Fixed potential GPF is non-string was passed for string params.
* contrib/hbwin/tests/testreg.prg
+ Added registry write test.
* utils/hbmk2/hbmk2.prg
* utils/hbi18n/hbi18n.prg
* utils/hbrun/hbrun.prg
* Minor opt.
* utils/hbmk2/hbmk2.prg
+ Changed default workdir to use output binary dir as a base.
! Fixed -instpath and -compr option not working with -hblib and -hbdyn modes.
* utils/hbmk2/hbmk2.hu_HU.po
! Cleaned.
* utils/hbmk2/hbmk2.prg
! Fixed setup of .hbl input codepages.
+ Added support to specify output CPs for Windows/DOS/OS2
and *nix systems.
; TOFIX: This isn't enough as f.e. all my *nixes require
UTF-8 output which we currently cannot provide in a
transparent way, so accented chars are all broken
on these platforms. I could hack it around by
calling HB_STRTOUTF8() on all strings going to
output when *nix is detected, but if possible it'd
better to do it transparently.
* utils/hbmk2/hbmk2.hu_HU.po
* Converted to ISO CP from 852.
* utils/hbmk2/hbmk2.prg
! Fixed handling of self-detected name inducted automatic
options (like -xhb when xhbmk2 is used) after adding
multitarget support.
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/hbmk2.hu_HU.po
* Minor cleanup to a few texts.
! Fixed doing nothing for single target cmdlines after latest commit.
+ Added dir/path inheritance of .hbm file path to more options
(-hbl, -po, -o, -L, -instpath, -incpath, -incpathtry, -i, -workdir,
-vcshead, -tshead, *.hbl + .hbp equivalents.)
+ Added dir support for VCS ID readout.
* utils/hbmk2/hbmk2.pt_BR.po
! Tabs -> Spaces
* utils/hbmk2/hbmk2.prg
+ Added experimental support for multitarget command lines.
The final usage may be changed.
There are two ways to do multitarget hbmk2 sessions:
1.) hbmk2 [<common_params1>] target1.hbt [<common_params2>] target2.hbt [<common_params3>]
where .hbt is an .hbm file just with an .hbt extension.
Examples:
hbmk2 mylib1.hbt mylib2.hbt myapp.hbt
hbmk2 -trace -pause mylib1.hbt mylib2.hbt myapp.hbt -beep
2.) hbmk2 [<common_params1>] -target <target1_params> -target <target2_params> [-notarget <common_params2>]
Examples:
hbmk2 -target hello1.prg -target hello2.prg
hbmk2 -trace -target hello1.prg -target hello2.prg
hbmk2 -trace -target hello1.prg -target hello2.prg -notarget -beep
! Fixed not expanding wildcards in .hbm files on *nix systems.
* contrib/xhb/xhbcomp.prg
* Minor formatting.
* utils/hbmk2/hbmk2.prg
! Just added bcc hack fixed to not cause problems when
bcc is explicitly selected, but the compiler cannot be
detected in path.
* utils/hbmk2/hbmk2.prg
+ Added automatic bcc configuration hack to add PSDK dir to
the libpath list. This is to fix bcc installations where
this isn't done in bcc configuration itself in bcc32.cfg,
ilink32.cfg. PSDK dir is required for hbmk2 because most
libs on the standard hbmk2 list of Windows system libs
(like winspool) included in link process are stored in
this subdir. It's still recommended to do this tweak in
local bcc environment.
; Please test it.
* utils/hbmk2/examples/contribf.hbp
+ Added hbqt.
* utils/hbmk2/hbmk2.prg
! Fix to prev commit.
! Fix ignoring .po input without a language macro when
checking .hbl dependencies.
! Cosmetic fix to some i18n related outputs.
! Fixed recent RTE when generating .hbl.
* utils/hbmk2/hbmk2.prg
! Fixed -beep to work on all build failures.
+ Linking gtwin/trm/dos/os2 as non-default GT for -pause
support (gtcgi doesn't support Inkey(0)).
+ Added -pause option to force a pause on exit in case of
any error. This only works with alternate GTs above.
! Added missing -beep from help screen.
+ utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hbm
+ Added Portuguese translation. Work of Vailton Renato. Thanks!
; NOTE: Quite some strings has changed since version, so the .po
file by now needs an update from source plus some parts
translated.
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
* Minor updates.
* utils/hbmk2/hbmk2.prg
% Changed default way of updating .po files. New method supports
incremental updates, thus much faster than previous solution.
As a side-effect, removed from source and changed translatable
strings won't automatically disappear from .po files.
This new method is also much friendlier to version control
systems, as .po entry order won't change on each minor update
(and generate a huge commit diff).
+ Added -rebuildpo option to activate a complete rebuild of .po
files, clearing all no more existing entries. This operation
will take more time, will create big diffs and it's recommended
to be done when doing a complete rebuild (maybe this will
be automatically enforced later on).
; With this, hbmk2 seems feature complete. (maybe C++/C mode
switching could be added yet, it's on the TODO list)
* bin/hb-func.sh
* Addition of libs= entry in hbmk.cfg file will now be
initiated by setting envvar HB_USER_LIBS_DEF (was HB_USER_LIBS),
to avoid potential binary build problems where locally
set HB_USER_LIBS envvar could create an unusuable (on other
systems) builds (hbmk2 setup).
+ contrib/rddsql/readme.txt
+ Added readme (posted on the list). Work of Mindaugas.
* utils/hbmk2/hbmk2.prg
+ Using HB_USERLANG() to detect language, so it now also
works on Windows.
+ Added support for -lang= switch to override language.
+ Added support for HB_LANG envvar to override language.
(this is the recommended method)
* include/hbextern.ch
* source/rtl/Makefile
+ source/rtl/lang.c
+ Added HB_USERLANG() function to retrieve ietf code of
language set by user. Works also on Windows.
* contrib/hbwin/win_misc.c
* contrib/hbwin/wapi_winbase.c
* contrib/hbwin/wapi_winuser.c
* WAPI_*() functions moved to wapi_* files.
+ WAPI_GETPROCADDRESS() added. This is a pure wrapper to
this Windows API.
* contrib/hbwin/win_prn1.c
* contrib/hbwin/win_prt.c
% hb_parnl() -> hb_parni() where it was cast to int anyway.
* utils/hbmk2/hbmk2.prg
* -shareable -> -fullshared/-fixshared
+ contrib/hbmysql/mysqlold.c
* contrib/hbmysql/mysql.c
* contrib/hbmysql/Makefile
* Compatibility function names moved to separate file.
+ contrib/hbodbc/odbcold.c
* contrib/hbodbc/odbc.c
* contrib/hbodbc/Makefile
* Compatibility function names moved to separate file.
* contrib/hbwin/win_prt.c
! Applied fix submitted by Alex Strickland. Thank you.
* contrib/hbwin/legacy.c
* contrib/hbwin/win_dll.c
* GETLASTERROR()/SETLASTERROR() moved to legacy.c.
We have WAPI_GETLASTERROR()/WAPI_SETLASTERROR() and
it's recommended to use them instead.
+ XBase++ compatible DLL handling functions marked with
HB_COMPAT_XPP.
! DLLLOAD() changed back to return numeric pointer. This
is required to stay compatible with XBase++.
; TODO:
- Add C API to make DLL calls.
- Move CALLDLL*() functions to xhb lib.
- Add WAPI_LOADLIBRARY()/WAPI_FREELIBRARY()/WIN_GETPROCADDRESS()
functions to replace current LOADLIBRARY()/FREELIBRARY()/GETPROCADDRESS()
calls, fixing them to work on pointers only.
* utils/hbmk2/hbmk2.prg
+ Added -shareable/-shareable- option to control the aspect
of harbour.so absolute dir reference. It can override
previous rule controlled by system location detection. See
more in help.
* Minor internal change to one of the functions.
+ source/rtl/hbzlibgz.c
* source/rtl/hbzlib.c
* source/rtl/Makefile
% Split source into two, so unnecessary code parts won't be
included in final binaries.
* utils/hbmk2/hbmk2.prg
! Fixed regression causing -o not to work in -hbcmp mode.
(bug introd in the compile/link phase switch)
+ Added support for -o in -hbcmp mode for pocc compilers.
+ Added support for -o in -hbcmp mode for owatcom compilers.
; Please test.
* contrib/rddads/rddads.h
- Deleted some commented lines targeting compatibility with
some now forgotten macros.
* utils/hbmk2/hbmk2.prg
! Fixed to accept any kind of parameter with -runflag= switch.
! Fixed to not call hb_FSetAttr( ".hbmk", FC_HIDDEN ) for *nix systems.
This creates inaccessible dirs for some reason.
! Fixed to not beep in -hbrun mode.
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
+ Added -tshead=<file> option to create a .ch header with
build timestamp information in it: _HBMK_BUILD_DATE,
_HBMK_BUILD_TIME_, HB_BUILD_TIMESTAMP_.
* -opt/-noopt -> -optim/-nooptim to avoid name ambiguity.
+ Added feature to -vcshead= to create a locally rolled
build number if there is no version control system detected.
In this case _HBMK_VCS_TYPE_ will be defined as "hbmk"
and _HBMK_VCS_ID_ will be initialized with a string, starting
with "1" and incremented on each hbmk2 call.
* Internal change to componentize hbmk2 functionality, clearing
away all STATIC vars and some parameter passing hacks.
Work in progress, TODO added.
! Fixed cosmetic bug in debug output when making .po.
* source/rtl/mlcfunc.c
! Fixed warning appeard in latest change.
* source/rtl/trim.c
* source/compiler/hbfunchk.c
- Removed HB_EXTENSION protected second extended parameters
from RTRIM() and ALLTRIM(). If you miss this option, please
report it on the list, we may readd such functionality under
some different name.
INCOMPATIBLE for HB_EXTENSION builds.
* doc/dirstruc.txt
* bin/hb-func.sh
* utils/hbmk2/examples/contribf.hbp
- contrib/hbole
* contrib/Makefile
+ contrib/hbwin/oleinit.c
+ contrib/hbwin/olecore.c
+ contrib/hbwin/hbwinole.h
+ contrib/hbwin/oleauto.prg
+ contrib/hbwin/tests/sample.odt
* contrib/hbwin/tests/testole.prg
- contrib/hbwin/win_tole.prg
- contrib/hbwin/win_ole.c
+ contrib/examples/hboleold
+ contrib/examples/hboleold/tests
+ contrib/examples/hboleold/tests/testole.prg
+ contrib/examples/hboleold/win_tole.prg
+ contrib/examples/hboleold/win_ole.c
+ contrib/examples/hboleold/Makefile
* Replaced old hbwin OLE implementation with
new implementation in hbole. Thanks to
Mindaugas Kavaliauskas for the new implementation.
Those who need the old implementation in the
meantime for any reason, can find it in contrib/example/hboleold.
; TODO: Fill the few missing features (ActiveX/FiveWin
compatibility).
* ChangeLog
* Marked two TODO/TOFIX done.
* harbour-win-spec
* harbour-wce-spec
* bin/hb-func.sh
* doc/dirstruc.txt
* doc/whatsnew.txt
- contrib/hbwinprn
* contrib/Makefile
* contrib/hbwin/Makefile
+ contrib/hbwin/win_prn1.c
+ contrib/hbwin/win_prn2.c
+ contrib/hbwin/win_tprn.prg
+ contrib/hbwin/tests/testprn.prg
* utils/hbmk2/examples/hmg.hbp
* utils/hbmk2/examples/fwh.hbp
* utils/hbmk2/examples/contribf.hbp
! Undone undiscussed (worsened by recent mailing list problems)
changes done in previous two commits.
The direction in Harbour is that we try to gather all
Windows specific functionality into one contrib (hbwin),
if there is a fault or missing feature we fix it at the
proper place (in this case in hbole) instead of splitting
hbwin lib into pieces.
; TOFIX: Refix deleted change history for "moved" files.
; TODO: Move hbole to hbwin and fix missing OLE bits in hbwin.
* ChangeLog
! Fixed duplicated header in one of the entries after prev two commits.
* utils/hbmk2/hbmk2.prg
! Fixed not recognizing -incpath/-inctrypath
! Removed prioritizing own C compiler when detecting
C compiler. This resulted in msvc64 not being recognized
when using an MSVC build of hbmk2.
+ Added -instpath= option to specifiy dirs where target gets
copied after a successful build.
* utils/hbmk2/hbmk2.prg
+ Added -hbrun option which will run the target without trying to
build it. If target is missing, the command will fail.
+ -run/-hbrun options will now run GUI target executable using 'start'
command on Windows platforms so that hbmk2 will return and leave
the app running.
* include/hbextern.ch
+ Added HB_GZPUTC().
* include/hbsetup.ch
- Removed HB_EXTENSION from documented list of build modified macros.
* source/common/hbverdsp.c
- Deleted HB_EXTENSION dependent part.
* source/rtl/mlcfunc.c
- Deleted HB_EXTENSION branch. Please modify your program to
use Set( _SET_EOL ) instead of passing EOLs explicitly to
memo functions. This works also in xhb.
INCOMPATIBLE when for HB_EXTENSION builds.
* source/rtl/alert.prg
! Minor in comment.
* source/rtl/saverest.c
- Removed SAVESCREEN()/RESTSCREEN() extra "lNoCheck" parameter
when HB_EXTENSION is enabled. Please report on the list
if you need this functionality.
* source/compiler/hbfunchk.c
! Fix to prev: AT() declaration.
; TODO: Clean rest of HB_EXTENSION stuff.
* utils/hbmk2/hbmk2.prg
+ Added -beep/nobeep/beep- options to enable beep signal
when build is finished. In case of error a double beep
will be heard.
* INSTALL
* Minor formatting.
* utils/hbmk2/hbmk2.prg
! Fixed to not attempt cycling through all specified languages
if target .po or .hbl filename doesn't contain a language macro.
! Fixed to strip encoding from LANG value.
* Some changes to modularize language/encoding detection.
(work in progress)
* utils/hbmk2/hbmk2.prg
% Applied __I18N_potArrayJoin() tweak to embedded LoadPOTFiles()
function. This hugely boosts .pot merge performance for large
number of these files.
* harbour/utils/hbi18n/hbi18n.prg
% added support for optional reusing hIndex table in repeated calls
to __I18N_potArrayJoin() with the same aTrans array.
* harbour/source/rtl/hbi18n2.prg
% reuse hIndex table in repeated calls to __I18N_potArrayJoin()
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/hbmk2.hu_HU.po
% Optimize to do only one .pot -> .po merge per session
(was one merge per target language)
+ Added screen feedback for .po/.hbl related operations.
% Don't do .po rebuild if no source file has changed.
* utils/hbmk2/hbmk2.prg
! Further fixes to .po file handling functionality after real
life testing. What needs to be handled gracefully is that
it's perfectly normal that a file doesn't have a .pot
file generated (when the source doesn't have any translatable
texts). Unfortunately this situation adds some hard-to-detect
problems which can in turn cause .po translations to be lost.
Since the only current way to detect if translatable texts
exist is to check for the .pot file, if a .pot file is missing
for other reasons (manual deletion, corruption) hbmk will take
it normally and remove related translations from .po files.
I don't know what could be a good solution to this problem.
The other issue is scalability: Since there is no way to
update .po files with only partial .pot information (coming
from recompiled sources in that build session), each build
session has to do a full .pot merge and update (for all
languages). This is slow, if you have some idea how to make
this incremental, please speak up.
Probably we should reverse the logic and take the .po file
(containing translations) as a base, and add new pairs from
_available_ .pots. Pair removal (IOW cleanup) should be an
option, done periodically (before release), but not something
happening in each build session. This would also solve the problem
of retaining old translations, since they will stay there until
we specifically ask the system to remove them. Maybe that's
what we should do. Przemek, what do you think?
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/hbmk2.hbm
- utils/hbmk2/hbmk2.hu_HU.pot
+ utils/hbmk2/hbmk2.hu_HU.po
* Changed hbmk to use official gettext terminology, where
.pot refers to raw extracted translation file, .po refers
to merged .pot files which holds the actual translations.
hbmk switch names and extensions changed accordingly.
! Fixes to .po from .pot generation support.
* utils/hbmk2/hbmk2.prg
! Fixed -pot= option mentioned in prev entry.
! -pot= refinement to handle missing source .pots (which
is normal). Also added/fixed some lng related debug options.
! Remaining debug texts made non-translatable.
; NOTE: It's now possible to handle all aspect of translation
files using hbmk2 alone. (extraction from source ->
creation of unified translation file -> merging this
file with previous version retaining existing
translations -> creation of .hbl file from .pots)
* utils/hbmk2/hbmk2.prg
* utils/hbmk2/hbmk2.hu_HU.pot
+ Added new -pot= switch with which it's possible to create
one .pot file for the whole project. When this switch is
used, Harbour compiler will be run with -j parameter so
that .pot files will be generated.
hbmk will take care of preserving existing translations.
This changes contains parts taken from hbi18n, work of
Przemek, copyright retained.
; TOFIX: For some reason update of existing .pot file with
new one doesn't work. It's probably something obvious
but I cannot see what.
* utils/hbmk2/hbmk2.prg
! Further fixes to texts.
+ Added hb_cdpSelect() call as provision. Also included a few CPs
in executable.
* utils/hbmk2/hbmk2.hu_HU.pot
+ Finished HU translation (probably it could be tweak with
regards to terminology).
* harbour/source/rtl/hbi18n2.prg
+ added new Harbour internal i18n functions:
__I18N_POTARRAYTRANS() and __I18N_HASHJOIN()
* harbour/utils/hbi18n/hbi18n.prg
+ added new switch to hb18n tool:
-a add automatic translations to 1-st .pot file using
translations from other .pot or .hbl files
* contrib/hbole/tests/testole.prg
+ Readded CDO and OO open examples (working).
* utils/hbmk2/hbmk2.hbm
+ Added .hbl file generation.
* utils/hbmk2/hbmk2.prg
+ Added translator info to banner.
! Minor fix to now display job # if single-threaded compilation is done.
(Thanks for __enumBase() trick to Przemek)
* Some steps to better support xhb shared mode (untested).
+ Added filter support for .prg and .c/.cpp input files.
(This also means that input files with '{' '}' char pairs in them
aren't supported anymore).
! Minor terminology fix in one of the rare error messages.
; TODO: ? Adding GNU Make support to .pot -> .hbl generation, plus
we'd also need to develop a common rule for naming and
placement for these translation files. Current hbmk2 method
cannot be considered final.
+ utils/hbmk2/hbmk2.hu_HU.pot
+ Added Hungarian translation (not complete/final yet).
* utils/hbmk2/hbmk2.prg
+ Added experimental and partial support to build using/for xhb.
This is to help some 3rd party lib developers who'd like to
target both compilers. Some aspects of xhb support aren't working
or working slightly differently: Default Harbour switch is
-n instead of -n2 which isn't supported in xhb. Everything
related to dll handling won't currently work. Cross-compiling
won't work either due to at least differences in __PLATFORM__
macros. Anyway, play with it and tweak the source if needed.
I hope we can add support without adding too much hacks into
hbmk2 source, if however we need to bend logic too far, I'd
rather leave those problematic parts of to keep the code
maintainable. F.e. xhb compatible COMP/ARCH values aren't
supported and I don't plan to add them.
Enable support by renaming hbmk2 to have an 'x' prefix: xhbmk2,
or use -xhb command line switch. The only intent is be able
to use hbmk2 to build binaries from sources using xhb compiler
and libs. Also notice that I've made just very light tests
only with bcc55 compiler.
[ notice: xhb support doesn't mean you can compile hbmk2 with
xhb. This wasn't intented or planned. ]
* utils/hbmk2/examples/contribf.hbp
! Fixes.
* utils/hbmk2/hbmk2.prg
* Cleanup: Added few internal constants.
* Cleanup: Some debug strings marked as non-translatable.
+ Help screen forming changed to be friendly to translators.
Please update .pot files.