Ignore:
Timestamp:
Jun 25, 2007, 8:48:35 PM (18 years ago)
Author:
RBRi
Message:
  • ACLStringUtility
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Components/ACLLanguageUnit.pas

    r188 r220  
    139139  Multicolumnlistbox,
    140140  ACLUtility,
    141   ACLStringUtility,
    142   FileUtilsUnit;
     141  FileUtilsUnit,
     142  StringUtilsUnit,
     143  DebugUnit;
    143144
    144145var
     
    260261var
    261262  F: TextFile;
    262   S: string;
     263  tmpLine: string;
    263264  Name: string;
    264265  Value: string;
    265   p: longint;
    266266  pItem: TPLanguageItem;
     267  tmpLineParts : TStringList;
    267268begin
    268269  FSaving := false;
     
    284285  Reset( F );
    285286
     287  tmpLineParts := TStringList.Create;
     288
    286289  while not Eof( F ) do
    287290  begin
    288     ReadLn( F, S );
    289 
    290     p := 1;
    291     GetNextQuotedValue( S, p, Name, DoubleQuote );
    292 
    293     if Name <> '' then
    294     begin
     291    ReadLn( F, tmpLine);
     292
     293    tmpLineParts.clear;
     294    StrExtractStringsQuoted(tmpLineParts, tmpLine);
     295
     296    if tmpLineParts.count > 0 then
     297    begin
     298      Name := tmpLineParts[0];
     299
    295300      if Name[ 1 ] <> '#' then
    296301      begin
    297302        // Got a name, read the value and store.
    298         GetNextQuotedValue( S, p, Value, DoubleQuote );
     303        value := '';
     304        if tmpLineParts.count > 0 then
     305        begin
     306          value := tmpLineParts[1];
     307        end;
    299308
    300309        New( pItem );
     
    307316  end;
    308317
     318  tmpLineParts.Destroy;
    309319  CloseFile( F );
    310320end;
     
    418428
    419429var
    420   QuotedValue: string;
    421 begin
    422   QuotedValue :=
    423     StrDoubleQuote(
    424       InsertDuplicateChars( Value, DoubleQuote ) );
    425   WriteLn( FOutputFile,
    426            Name + ' ' + QuotedValue + ' ' + Marker );
     430  tmpQuotedValue : string;
     431begin
     432  tmpQuotedValue := StrEscapeAllCharsBy(Value, [], '"');
     433  tmpQuotedValue := StrInDoubleQuotes(tmpQuotedValue);
     434  WriteLn( FOutputFile, Name + ' ' + tmpQuotedValue + ' ' + Marker );
    427435end;
    428436
     
    745753  MajorLanguage: string;
    746754  MinorLanguage: string;
    747 begin
    748 //  ProfileEvent( 'LoadDefaultLanguage' );
    749 
     755  tmpParts : TStringList;
     756
     757begin
    750758  LanguageVar := GetEnv( 'LANG' );
    751 
    752 //  ProfileEvent( '  LANG=' + LanguageVar );
     759  LogEvent(LogI18n, 'LANG=' + LanguageVar);
     760
    753761  if LanguageVar = '' then
     762  begin
    754763    LanguageVar := 'EN_US';
    755 
    756   MajorLanguage := ExtractNextValue( LanguageVar, '_' );
    757   MinorLanguage := ExtractNextValue( LanguageVar, '_' );
    758 
    759 //  ProfileEvent( '  MajorLanguage=' + MajorLanguage );
    760 //  ProfileEvent( '  MinorLanguage=' + MinorLanguage );
     764  end;
     765
     766  tmpParts := TStringList.Create;
     767  StrExtractStrings(tmpParts, LanguageVar, ['_'], #0);
     768
     769  MajorLanguage := '';
     770  if tmpParts.count > 0 then
     771  begin
     772    MajorLanguage := tmpParts[0];
     773  end;
    761774
    762775  // note there might be some other stuff on the end of LANG
    763776  // such as ES_ES_EURO...
    764777
    765   if MinorLanguage <> '' then
    766   begin
    767 //    ProfileEvent( '  Trying Major_Minor' );
    768     if LoadAutoLanguage( AppName,
    769                          MajorLanguage
    770                          + '_'
    771                          + MinorLanguage ) then
     778  if tmpParts.count > 1 then
     779  begin
     780    MinorLanguage := tmpParts[1];
     781
     782    LogEvent(LogI18n, 'try loading ' + MajorLanguage + '_' + MinorLanguage);
     783    if LoadAutoLanguage(AppName, MajorLanguage + '_' + MinorLanguage) then
    772784    begin
    773785      // found a specifc language
    774 //      ProfileEvent( '    Found' );
     786      LogEvent(LogI18n, ' translation for ' + MajorLanguage + '_' + MinorLanguage + ' sucessfully loaded');
     787      tmpParts.Destroy;
    775788      exit;
    776789    end;
    777790  end;
    778791
    779 //  ProfileEvent( '  Trying Major only' );
    780792  // try generic language?
     793  LogEvent(LogI18n, 'try loading (major only) ' + MajorLanguage);
    781794  if LoadAutoLanguage( AppName, MajorLanguage ) then
    782795  begin
    783 //    ProfileEvent( '    Found' );
    784   end
    785   else
    786   begin
    787 //    ProfileEvent( '    No language found, using default' );
    788 
    789     // load defaults
    790     LoadLanguage( '' );
    791   end;
    792 
    793 end;
     796      LogEvent(LogI18n, 'translation for ' + MajorLanguage + 'sucessfully loaded');
     797      tmpParts.Destroy;
     798      exit;
     799  end;
     800
     801  LogEvent(LogI18n, 'No language found, using default ' + MajorLanguage);
     802  LoadLanguage( '' );
     803
     804  tmpParts.Destroy;
     805end;
     806
    794807
    795808Initialization
Note: See TracChangeset for help on using the changeset viewer.