Changeset 220 for trunk/Components/ACLLanguageUnit.pas
- Timestamp:
- Jun 25, 2007, 8:48:35 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Components/ACLLanguageUnit.pas
r188 r220 139 139 Multicolumnlistbox, 140 140 ACLUtility, 141 ACLStringUtility, 142 FileUtilsUnit; 141 FileUtilsUnit, 142 StringUtilsUnit, 143 DebugUnit; 143 144 144 145 var … … 260 261 var 261 262 F: TextFile; 262 S: string;263 tmpLine: string; 263 264 Name: string; 264 265 Value: string; 265 p: longint;266 266 pItem: TPLanguageItem; 267 tmpLineParts : TStringList; 267 268 begin 268 269 FSaving := false; … … 284 285 Reset( F ); 285 286 287 tmpLineParts := TStringList.Create; 288 286 289 while not Eof( F ) do 287 290 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 295 300 if Name[ 1 ] <> '#' then 296 301 begin 297 302 // 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; 299 308 300 309 New( pItem ); … … 307 316 end; 308 317 318 tmpLineParts.Destroy; 309 319 CloseFile( F ); 310 320 end; … … 418 428 419 429 var 420 QuotedValue: string; 421 begin 422 QuotedValue := 423 StrDoubleQuote( 424 InsertDuplicateChars( Value, DoubleQuote ) ); 425 WriteLn( FOutputFile, 426 Name + ' ' + QuotedValue + ' ' + Marker ); 430 tmpQuotedValue : string; 431 begin 432 tmpQuotedValue := StrEscapeAllCharsBy(Value, [], '"'); 433 tmpQuotedValue := StrInDoubleQuotes(tmpQuotedValue); 434 WriteLn( FOutputFile, Name + ' ' + tmpQuotedValue + ' ' + Marker ); 427 435 end; 428 436 … … 745 753 MajorLanguage: string; 746 754 MinorLanguage: string; 747 begin 748 // ProfileEvent( 'LoadDefaultLanguage' ); 749 755 tmpParts : TStringList; 756 757 begin 750 758 LanguageVar := GetEnv( 'LANG' ); 751 752 // ProfileEvent( ' LANG=' + LanguageVar ); 759 LogEvent(LogI18n, 'LANG=' + LanguageVar); 760 753 761 if LanguageVar = '' then 762 begin 754 763 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; 761 774 762 775 // note there might be some other stuff on the end of LANG 763 776 // such as ES_ES_EURO... 764 777 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 772 784 begin 773 785 // found a specifc language 774 // ProfileEvent( ' Found' ); 786 LogEvent(LogI18n, ' translation for ' + MajorLanguage + '_' + MinorLanguage + ' sucessfully loaded'); 787 tmpParts.Destroy; 775 788 exit; 776 789 end; 777 790 end; 778 791 779 // ProfileEvent( ' Trying Major only' );780 792 // try generic language? 793 LogEvent(LogI18n, 'try loading (major only) ' + MajorLanguage); 781 794 if LoadAutoLanguage( AppName, MajorLanguage ) then 782 795 begin 783 // ProfileEvent( ' Found');784 end785 else786 begin787 // ProfileEvent( ' No language found, using default' ); 788 789 // load defaults790 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; 805 end; 806 794 807 795 808 Initialization
Note:
See TracChangeset
for help on using the changeset viewer.