2013-03-29 19:31 UTC+0100 Viktor Szakats (harbour syenar.net)

* utils/hbmk2/hbmk2.prg
    + better match algrorithm for finding .hbl translation modules
      f.e. "es_AR" will fall back to "es", than fall back to
      whichever dialect is present. "es" will also be matched
      to "es_*" when "es" not present.
    ! now able to load languages Harbour doesn't even know about

  * utils/hbmk2/hbmk2.hbp
  * utils/hbmk2/po/hbmk2.el_GR.po -> utils/hbmk2/po/hbmk2.el.po
  * utils/hbmk2/po/hbmk2.es_PE.po -> utils/hbmk2/po/hbmk2.es.po
  * utils/hbmk2/po/hbmk2.hu_HU.po -> utils/hbmk2/po/hbmk2.hu.po
  * utils/hbmk2/po/hbmk2.it_IT.po -> utils/hbmk2/po/hbmk2.it.po
    % renamed to use short language code for languages
      that are unlikely to have multiple dialects implemented.
      We can branch out new dialects anytime as needed.
      (I'm still pending on Spanish. Please answer on the
      forum whether to have separate es_PE, es_AR and else.)
This commit is contained in:
Viktor Szakats
2013-03-29 19:32:41 +01:00
parent 69b251df6d
commit 1b6b2ba911
7 changed files with 64 additions and 29 deletions

View File

@@ -10,6 +10,25 @@
* Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment
*/
2013-03-29 19:31 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/hbmk2.prg
+ better match algrorithm for finding .hbl translation modules
f.e. "es_AR" will fall back to "es", than fall back to
whichever dialect is present. "es" will also be matched
to "es_*" when "es" not present.
! now able to load languages Harbour doesn't even know about
* utils/hbmk2/hbmk2.hbp
* utils/hbmk2/po/hbmk2.el_GR.po -> utils/hbmk2/po/hbmk2.el.po
* utils/hbmk2/po/hbmk2.es_PE.po -> utils/hbmk2/po/hbmk2.es.po
* utils/hbmk2/po/hbmk2.hu_HU.po -> utils/hbmk2/po/hbmk2.hu.po
* utils/hbmk2/po/hbmk2.it_IT.po -> utils/hbmk2/po/hbmk2.it.po
% renamed to use short language code for languages
that are unlikely to have multiple dialects implemented.
We can branch out new dialects anytime as needed.
(I'm still pending on Spanish. Please answer on the
forum whether to have separate es_PE, es_AR and else.)
2013-03-29 18:17 UTC+0100 Viktor Szakats (harbour syenar.net)
* utils/hbmk2/po/hbmk2.en_US.po -> utils/hbmk2/po/hbmk2.en.po
* tuning language IDs

View File

@@ -22,7 +22,7 @@ hbmk2.prg
po/hbmk2.%{hb_lng}.po
-hbl=hbmk2.%{hb_lng}.hbl
-lng=el_GR,es_PE,hu_HU,it_IT,pt_BR
-lng=el,es,hu,it,pt_BR
# not using these together with .rc input, because some compilers (mingw)
# do not support multiple .rc inputs

View File

@@ -1471,7 +1471,7 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit
hbmk[ _HBMK_lPause ] := lPause
hbmk[ _HBMK_nLevel ] := nLevel
SetUILang( hbmk[ _HBMK_cUILNG ] := GetUILang() )
SetUILang( hbmk, GetUILang() )
IF Empty( aArgs )
ShowHeader( hbmk )
@@ -1540,7 +1540,7 @@ STATIC FUNCTION __hbmk( aArgs, nArgTarget, nLevel, /* @ */ lPause, /* @ */ lExit
CASE Left( cParamL, 7 ) == "-build=" ; hbmk[ _HBMK_cBUILD ] := StrTran( hb_DirSepToOS( SubStr( cParam, 8 ) ), hb_ps() )
CASE Left( cParamL, 6 ) == "-build" ; hbmk[ _HBMK_lStopAfterHarbour ] := .T.
CASE Left( cParamL, 8 ) == "-credits" ; hbmk[ _HBMK_lStopAfterHarbour ] := .T.
CASE Left( cParamL, 6 ) == "-lang=" ; SetUILang( hbmk[ _HBMK_cUILNG ] := SubStr( cParam, 7 ) )
CASE Left( cParamL, 6 ) == "-lang=" ; SetUILang( hbmk, SubStr( cParam, 7 ) )
CASE Left( cParamL, 4 ) == "-shl" ; hbmk[ _HBMK_lShowLevel ] := .T.
CASE Left( cParamL, 7 ) == "-width="
@@ -13748,10 +13748,6 @@ STATIC PROCEDURE __hbshell( cFile, ... )
ENDIF
#endif
/* Set CP and language */
SetUILang( GetUILang() )
/* Save originals */
hbsh[ _HBSH_cDirBase ] := hb_DirBase()
@@ -13761,6 +13757,10 @@ STATIC PROCEDURE __hbshell( cFile, ... )
hbmk := hbsh[ _HBSH_hbmk ] := hbmk_new( .T. )
/* Set CP and language */
SetUILang( hbmk, GetUILang() )
/* Help */
IF HB_ISSTRING( cFile )
@@ -13771,7 +13771,7 @@ STATIC PROCEDURE __hbshell( cFile, ... )
CASE cParamL == "-help" .OR. cParamL == "--help" .OR. ;
cParamL == "-h" .OR. cParamL == "-?"
SetUILang( hbmk[ _HBMK_cUILNG ] := GetUILang() )
SetUILang( hbmk, GetUILang() )
ShowHeader( hbmk )
ShowHelp( hbmk, .T. )
RETURN
@@ -13779,7 +13779,7 @@ STATIC PROCEDURE __hbshell( cFile, ... )
CASE cParamL == "-longhelp" .OR. cParamL == "--longhelp" .OR. ;
cParamL == "-hh" .OR. cParamL == "-??"
SetUILang( hbmk[ _HBMK_cUILNG ] := GetUILang() )
SetUILang( hbmk, GetUILang() )
ShowHeader( hbmk )
ShowHelp( hbmk, .T., .T. )
RETURN
@@ -13804,7 +13804,7 @@ STATIC PROCEDURE __hbshell( cFile, ... )
hbmk[ _HBMK_lMarkdown ] := .T.
SetUILang( hbmk[ _HBMK_cUILNG ] := GetUILang() )
SetUILang( hbmk, GetUILang() )
ShowHeader( hbmk )
ShowHelp( hbmk, .T., .T. )
RETURN
@@ -15479,9 +15479,13 @@ STATIC FUNCTION GetUILang()
RETURN StrTran( cLNG, "_", "-" )
STATIC PROCEDURE SetUILang( cUILNG )
STATIC PROCEDURE SetUILang( hbmk, cUILNG )
LOCAL tmp
LOCAL aLang
LOCAL cLang
LOCAL cFileName
LOCAL cFile
LOCAL aFile
/* Setup input CP of the translation */
hb_cdpSelect( "UTF8EX" )
@@ -15495,21 +15499,35 @@ STATIC PROCEDURE SetUILang( cUILNG )
/* Configure language */
IF cUILNG == "en"
hb_i18n_Set( NIL )
hb_langSelect( cUILNG )
hb_langSelect( hbmk[ _HBMK_cUILNG ] := cUILNG )
ELSE
tmp := ;
hb_DirSepAdd( hb_DirBase() ) + ;
_SELF_NAME_ + ;
"." + ;
StrTran( cUILNG, "-", "_" ) + ;
".hbl"
IF hb_i18n_Check( tmp := hb_MemoRead( tmp ) )
hb_i18n_Set( hb_i18n_RestoreTable( tmp ) )
hb_langSelect( cUILNG )
ELSE
hb_i18n_Set( NIL )
hb_langSelect( "en" )
ENDIF
aLang := AAddNew( { cUILNG }, Left( cUILNG, 2 ) )
AAdd( aLang, Left( cUILNG, 2 ) + "*" )
FOR EACH cLang IN aLang
#define _LANG_TO_HBL( cLang ) hb_DirSepAdd( hb_DirBase() ) + _SELF_NAME_ + "." + StrTran( cLang, "-", "_" ) + ".hbl"
IF "*" $ cLang
IF Empty( aFile := Directory( _LANG_TO_HBL( cLang ) ) )
cFileName := NIL
ELSE
cFileName := aFile[ 1 ][ F_NAME ]
cLang := StrTran( SubStr( hb_FNameExt( hb_FNameName( cFileName ) ), 2 ), "_", "-" )
ENDIF
ELSE
cFileName := _LANG_TO_HBL( cLang )
ENDIF
IF ! Empty( cFileName ) .AND. ;
hb_i18n_Check( cFile := hb_MemoRead( cFileName ) )
hb_i18n_Set( hb_i18n_RestoreTable( cFile ) )
BEGIN SEQUENCE WITH {| oError | Break( oError ) }
hb_langSelect( hbmk[ _HBMK_cUILNG ] := cLang )
END /* SEQUENCE */
EXIT
ELSEIF cLang:__enumIsLast()
hb_i18n_Set( NIL )
hb_langSelect( hbmk[ _HBMK_cUILNG ] := "en" )
EXIT
ENDIF
NEXT
ENDIF
RETURN
@@ -15600,9 +15618,7 @@ STATIC PROCEDURE ShowHeader( hbmk )
ENDIF
Eval( hbmk[ _HBMK_bOut ], cText )
IF !( hbmk[ _HBMK_cUILNG ] == "en" ) .AND. ;
!( hbmk[ _HBMK_cUILNG ] == "en-GB" ) .AND. ;
!( hbmk[ _HBMK_cUILNG ] == "en-US" )
IF !( Lower( Left( hbmk[ _HBMK_cUILNG ], 2 ) ) == "en" )
cTrsText := hb_i18n_gettext_noop( "Translation (%1$s): (add your name here)" )
cTrsTextI := I_( cTrsText )
IF !( cTrsText == cTrsTextI ) .AND. ! Empty( cTrsTextI )