2012-07-23 13:00 UTC+0200 Viktor Szakats (harbour syenar.net)

+ src/rtl/langcomp.prg
  * src/rtl/langapi.c
  * src/rtl/Makefile
    + added compatibility layer to HB_LANGSELECT() that 
      dynamically generates language modules for legacy 
      codepages from the UTF-8 codepages.
    ; TODO: Move this layer to C level (I need help)
    ; TODO: Delete legacy codepages
    ; TODO: Resolve language modules with missing codepage modules
            (ideally by implementing the option to chose from 
            real codepages directly)
This commit is contained in:
Viktor Szakats
2012-07-23 11:02:30 +00:00
parent 7b28c40557
commit 1c7fee465a
4 changed files with 149 additions and 1 deletions

View File

@@ -16,6 +16,19 @@
The license applies to all entries newer than 2009-04-28.
*/
2012-07-23 13:00 UTC+0200 Viktor Szakats (harbour syenar.net)
+ src/rtl/langcomp.prg
* src/rtl/langapi.c
* src/rtl/Makefile
+ added compatibility layer to HB_LANGSELECT() that
dynamically generates language modules for legacy
codepages from the UTF-8 codepages.
; TODO: Move this layer to C level (I need help)
; TODO: Delete legacy codepages
; TODO: Resolve language modules with missing codepage modules
(ideally by implementing the option to chose from
real codepages directly)
2012-07-23 11:43 UTC+0200 Viktor Szakats (harbour syenar.net)
* src/lang/msgcsutf.c
* src/lang/msgelutf.c

View File

@@ -239,6 +239,7 @@ PRG_SOURCES := \
hbi18n2.prg \
hbini.prg \
input.prg \
langcomp.prg \
libname.prg \
listbox.prg \
memoedit.prg \

View File

@@ -449,7 +449,7 @@ const char * hb_langDGetErrorDesc( int iIndex )
/* Harbour interface */
HB_FUNC( HB_LANGSELECT )
HB_FUNC( __HB_LANGSELECT )
{
const char * szNewLang;

View File

@@ -0,0 +1,134 @@
/*
* $Id$
*/
/*
* Harbour Project source code:
* The Language API compatibility layer
*
* Copyright 2012 Viktor Szakats (harbour syenar.net)
* www - http://harbour-project.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this software; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
*
* As a special exception, the Harbour Project gives permission for
* additional uses of the text contained in its release of Harbour.
*
* The exception is that, if you link the Harbour libraries with other
* files to produce an executable, this does not by itself cause the
* resulting executable to be covered by the GNU General Public License.
* Your use of that executable is in no way restricted on account of
* linking the Harbour library code into it.
*
* This exception does not however invalidate any other reasons why
* the executable file might be covered by the GNU General Public License.
*
* This exception applies only to the code released by the Harbour
* Project under the name Harbour. If you copy code from other
* Harbour Project or Free Software Foundation releases into a copy of
* Harbour, as the General Public License permits, the exception does
* not apply to the code that you add in this way. To avoid misleading
* anyone as to the status of such modified files, you must delete
* this exception notice from them.
*
* If you write modifications of your own for Harbour, it is your choice
* whether to permit this exception to apply to your modifications.
* If you do not wish that, delete this exception notice.
*
*/
#include "hbextcdp.ch"
#include "hbextlng.ch"
REQUEST HB_CODEPAGE_UTF8
FUNCTION hb_langSelect( cLangID )
IF HB_ISSTRING( cLangID )
/* For compatibility with legacy codepages */
SWITCH cLangID
CASE "BE866" ; hb_langNew( cLangID, "BG866" , "BEUTF", "UTF8" ) ; EXIT
CASE "BEWIN" ; hb_langNew( cLangID, "BGWIN" , "BEUTF", "UTF8" ) ; EXIT
CASE "BG866" ; hb_langNew( cLangID, "BG866" , "BGUTF", "UTF8" ) ; EXIT
CASE "BGISO" ; hb_langNew( cLangID, "BGISO" , "BGUTF", "UTF8" ) ; EXIT
CASE "BGMIK" ; hb_langNew( cLangID, "BGMIK" , "BGUTF", "UTF8" ) ; EXIT
CASE "BGWIN" ; hb_langNew( cLangID, "BGWIN" , "BGUTF", "UTF8" ) ; EXIT
CASE "CA" ; hb_langNew( cLangID, "ES850" , "CAUTF", "UTF8" ) ; EXIT
CASE "CS852" ; hb_langNew( cLangID, "CS852" , "CSUTF", "UTF8" ) ; EXIT
CASE "CSISO" ; hb_langNew( cLangID, "CSISO" , "CSUTF", "UTF8" ) ; EXIT
CASE "CSKAM" ; hb_langNew( cLangID, "CSKAMC", "CSUTF", "UTF8" ) ; EXIT
CASE "CSWIN" ; hb_langNew( cLangID, "CSWIN" , "CSUTF", "UTF8" ) ; EXIT
CASE "DE" ; hb_langNew( cLangID, "DE850" , "DEUTF", "UTF8" ) ; EXIT
CASE "DEWIN" ; hb_langNew( cLangID, "DEWIN" , "DEUTF", "UTF8" ) ; EXIT
CASE "EL" ; hb_langNew( cLangID, "EL737" , "ELUTF", "UTF8" ) ; EXIT
CASE "ELWIN" ; hb_langNew( cLangID, "ELWIN" , "ELUTF", "UTF8" ) ; EXIT
CASE "EO" ; hb_langNew( cLangID, "ES850" , "EOUTF", "UTF8" ) ; EXIT
CASE "ES" ; hb_langNew( cLangID, "ES850" , "ESUTF", "UTF8" ) ; EXIT
CASE "ESWIN" ; hb_langNew( cLangID, "ESWIN" , "ESUTF", "UTF8" ) ; EXIT
CASE "EU" ; hb_langNew( cLangID, "ES850" , "EUUTF", "UTF8" ) ; EXIT
CASE "FR" ; hb_langNew( cLangID, "FR850" , "FRUTF", "UTF8" ) ; EXIT
CASE "GL" ; hb_langNew( cLangID, "ES850" , "GLUTF", "UTF8" ) ; EXIT
// CASE "HE862" ; hb_langNew( cLangID, "?????" , "HEUTF", "UTF8" ) ; EXIT
// CASE "HEWIN" ; hb_langNew( cLangID, "?????" , "HEUTF", "UTF8" ) ; EXIT
CASE "HR646" ; hb_langNew( cLangID, "HR646" , "HRUTF", "UTF8" ) ; EXIT
CASE "HR852" ; hb_langNew( cLangID, "HR852" , "HRUTF", "UTF8" ) ; EXIT
CASE "HRISO" ; hb_langNew( cLangID, "HRISO" , "HRUTF", "UTF8" ) ; EXIT
CASE "HRWIN" ; hb_langNew( cLangID, "HRWIN" , "HRUTF", "UTF8" ) ; EXIT
CASE "HU852" ; hb_langNew( cLangID, "HU852" , "HUUTF", "UTF8" ) ; EXIT
// CASE "HUCWI" ; hb_langNew( cLangID, "?????" , "HUUTF", "UTF8" ) ; EXIT
CASE "HUISO" ; hb_langNew( cLangID, "HUISO" , "HUUTF", "UTF8" ) ; EXIT
CASE "HUWIN" ; hb_langNew( cLangID, "HUWIN" , "HUUTF", "UTF8" ) ; EXIT
CASE "ID" ; hb_langNew( cLangID, "EN" , "IDUTF", "UTF8" ) ; EXIT
CASE "IS850" ; hb_langNew( cLangID, "IS850" , "ISUTF", "UTF8" ) ; EXIT
CASE "IT" ; hb_langNew( cLangID, "IT850" , "ITUTF", "UTF8" ) ; EXIT
// CASE "KO" ; hb_langNew( cLangID, "?????" , "KOUTF", "UTF8" ) ; EXIT
CASE "LTWIN" ; hb_langNew( cLangID, "LTWIN" , "LTUTF", "UTF8" ) ; EXIT
CASE "NL" ; hb_langNew( cLangID, "EN" , "NLUTF", "UTF8" ) ; EXIT
CASE "PL852" ; hb_langNew( cLangID, "PL852" , "PLUTF", "UTF8" ) ; EXIT
CASE "PLISO" ; hb_langNew( cLangID, "PLISO" , "PLUTF", "UTF8" ) ; EXIT
CASE "PLMAZ" ; hb_langNew( cLangID, "PLMAZ" , "PLUTF", "UTF8" ) ; EXIT
CASE "PLWIN" ; hb_langNew( cLangID, "PLWIN" , "PLUTF", "UTF8" ) ; EXIT
CASE "PT" ; hb_langNew( cLangID, "PT850" , "PTUTF", "UTF8" ) ; EXIT
CASE "PTISO" ; hb_langNew( cLangID, "PTISO" , "PTUTF", "UTF8" ) ; EXIT
CASE "RO" ; hb_langNew( cLangID, "RO852" , "ROUTF", "UTF8" ) ; EXIT
CASE "RU866" ; hb_langNew( cLangID, "RU866" , "RUUTF", "UTF8" ) ; EXIT
CASE "RUKOI" ; hb_langNew( cLangID, "RUKOI8", "RUUTF", "UTF8" ) ; EXIT
CASE "RUWIN" ; hb_langNew( cLangID, "RU1251", "RUUTF", "UTF8" ) ; EXIT
CASE "SK852" ; hb_langNew( cLangID, "SK852" , "SKUTF", "UTF8" ) ; EXIT
CASE "SKISO" ; hb_langNew( cLangID, "SKISO" , "SKUTF", "UTF8" ) ; EXIT
CASE "SKKAM" ; hb_langNew( cLangID, "SKKAMC", "SKUTF", "UTF8" ) ; EXIT
CASE "SKWIN" ; hb_langNew( cLangID, "SKWIN" , "SKUTF", "UTF8" ) ; EXIT
CASE "SL646" ; hb_langNew( cLangID, "SL646" , "SLUTF", "UTF8" ) ; EXIT
CASE "SL852" ; hb_langNew( cLangID, "SL852" , "SLUTF", "UTF8" ) ; EXIT
CASE "SLISO" ; hb_langNew( cLangID, "SLISO" , "SLUTF", "UTF8" ) ; EXIT
CASE "SLWIN" ; hb_langNew( cLangID, "SLWIN" , "SLUTF", "UTF8" ) ; EXIT
// CASE "SR852" ; hb_langNew( cLangID, "?????" , "SRUTF", "UTF8" ) ; EXIT
// CASE "SRISO" ; hb_langNew( cLangID, "?????" , "SRUTF", "UTF8" ) ; EXIT
CASE "SRWIN" ; hb_langNew( cLangID, "SRWIN" , "SRUTF", "UTF8" ) ; EXIT
CASE "SV" ; hb_langNew( cLangID, "SV850" , "SVUTF", "UTF8" ) ; EXIT
CASE "SVWIN" ; hb_langNew( cLangID, "SVWIN" , "SVUTF", "UTF8" ) ; EXIT
CASE "TR857" ; hb_langNew( cLangID, "TR857" , "TRUTF", "UTF8" ) ; EXIT
CASE "TRWIN" ; hb_langNew( cLangID, "TRWIN" , "TRUTF", "UTF8" ) ; EXIT
CASE "UA866" ; hb_langNew( cLangID, "UA866" , "UAUTF", "UTF8" ) ; EXIT
// CASE "UADOS" ; hb_langNew( cLangID, "?????" , "UAUTF", "UTF8" ) ; EXIT
CASE "UAKOI" ; hb_langNew( cLangID, "UAKOI8", "UAUTF", "UTF8" ) ; EXIT
CASE "UAWIN" ; hb_langNew( cLangID, "UA1125", "UAUTF", "UTF8" ) ; EXIT
// CASE "ZHB5" ; hb_langNew( cLangID, "?????" , "ZHUTF", "UTF8" ) ; EXIT
// CASE "ZHGB" ; hb_langNew( cLangID, "?????" , "ZHUTF", "UTF8" ) ; EXIT
ENDSWITCH
ENDIF
RETURN __hb_langSelect( cLangID )