VFX deutsch
Russische Sprache

Von:Ulf Neugebauer uNe-tronics@t-NoSpam.de
An:Jörg Richter richter.prg@gmail.com
erstellt am:25.09.2017 10:19:47 - #20127 in section Antworten     Antworten ohne Zitat
Hallo Jörg,

in Ergänzung zu Rainer, Labels haben auch so einige Eigenarten!

.SetAll( "Style" ,0 ,"Label" )


Nach diversen Erfahrungen mit Übersetzungsbüros:

- Import aus Excel (kein Gebietsschema umstellen)!

- Sys(3101, CP_...)

#DEFINE CP_Eastern_European 1250
#DEFINE CP_Russian 1251
#DEFINE CP_Windows_ANSI 1252
#DEFINE CP_Greek 1253
#DEFINE CP_Turkish 1254
#DEFINE CP_Hebrew 1255
#DEFINE CP_Arabic 1256
#DEFINE CP_UTF8 65001

- Excel:

SYS(3101 ,CP_UTF8 )
lnCount = 1
lcLangText = NVL( loSheet.Range("C" + TRANSFORM( lnCount )).Value ,"" )
lcUnicode = STRCONV( lcLangText ,12 )
lcLangText = UnicodeToText( lcUnicode )

Hilfsfunktionen zur Konvertierung, Unicode (ASCx) zu ASC Entsprechung.
Der Case Switch muss natürlich für Russisch erweitert werden!

FUNCTION Buf2Word ( tcBuffer )

RETURN ASC( SUBSTR( tcBuffer ,1 ,1 )) + ;
ASC( SUBSTR( tcBuffer ,2 ,1 )) * 256

FUNCTION UnicodeToText( tcUnicode )
LOCAL lnLen AS Integer ,;
lcChar AS String ,;
lcText AS String ,;
lnAscx AS Integer

lcText = ""
lnLen = LEN( tcUnicode )
IF lnLen = 0
RETURN lcText
ENDIF


FOR lnCount = 1 TO lnLen-1 STEP 2
lcChar = SUBSTR( tcUnicode ,lnCount ,2 )
lnAscx = Buf2Word( lcChar )
IF lnAscx < 256
lcText = lcText + CHR( lnAscx )
ELSE
DO CASE
CASE lnAscx = 287
lcText = lcText + CHR( 240 )

CASE lnAscx = 305
lcText = lcText + CHR( 253 )

CASE lnAscx = 304
lcText = lcText + CHR( 221 )

CASE lnAscx = 350
lcText = lcText + CHR( 222 )

CASE lnAscx = 351
lcText = lcText + CHR( 254 )

* Latin Extended-B
CASE lnAscx = 536
lcText = lcText + CHR( 222 )

CASE lnAscx = 537
lcText = lcText + CHR( 254 )

* Sonderzeichen http://www.webmaster-seo.com/unicode/original/range/17/
CASE lnAscx = 8230
lcText = lcText + "..."

CASE lnAscx = 8217
lcText = lcText + "'"

CASE lnAscx = 8211
lcText = lcText + "-"

OTHERWISE
ACTIVATE SCREEN
? lnAscx
lcText = lcText + "?"

ENDCASE
ENDIF
ENDFOR

RETURN lcText


Viel Erfolg

Ulf Neugebauer


Fox on The Run (The Sweet)