Changeset 74 for trunk/Packages/CoolTranslator/UCoolTranslator.pas
- Timestamp:
- Jan 18, 2018, 11:54:13 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Packages/CoolTranslator/UCoolTranslator.pas
r73 r74 6 6 7 7 uses 8 Classes, SysUtils, Forms, StdCtrls, ExtCtrls, StrUtils, Controls, Contnrs,8 Classes, SysUtils, Forms, ExtCtrls, Controls, Contnrs, LazFileUtils, LazUTF8, 9 9 Translations, TypInfo, Dialogs, FileUtil, LCLProc, ULanguages, LCLType; 10 10 … … 46 46 procedure TranslateProperty(Component: TPersistent; PropInfo: PPropInfo); 47 47 function IsExcluded(Component: TPersistent; PropertyName: string): Boolean; 48 function GetLangFileDir: string; 48 49 public 49 50 ComponentExcludes: TComponentExcludesList; … … 150 151 I: Integer; 151 152 LocaleShort: string; 153 SearchMask: string; 152 154 begin 153 155 FPOFiles.Clear; … … 157 159 //ShowMessage(ExtractFileDir(Application.ExeName) + 158 160 // DirectorySeparator + 'Languages' + ' ' + '*.' + LocaleShort + '.po'); 159 FileList := FindAllFiles(ExtractFileDir(UTF8Encode(Application.ExeName)) + 160 DirectorySeparator + FPOFilesFolder, '*.' + LocaleShort + '.po'); 161 SearchMask := '*'; 162 if LocaleShort <> '' then SearchMask := SearchMask + '.' + LocaleShort; 163 SearchMask := SearchMask + '.po'; 164 FileList := FindAllFiles(GetLangFileDir, SearchMask); 161 165 for I := 0 to FileList.Count - 1 do begin 162 166 FileName := FileList[I]; 163 167 //FileName := FindLocaleFileName('.po'); 164 if FileExistsUTF8(FileName) then FPOFiles.Add(TPOFile.Create(FileName)); 168 if FileExists(FileName) and ( 169 ((LocaleShort = '') and (Pos('.', FileName) = Pos('.po', FileName))) or 170 (LocaleShort <> '')) then FPOFiles.Add(TPOFile.Create(FileName)); 165 171 end; 166 172 finally … … 174 180 FPoFilesFolder := AValue; 175 181 ReloadFiles; 182 CheckLanguageFiles; 176 183 end; 177 184 … … 223 230 var 224 231 PropType: PTypeInfo; 225 Parent: TObject;226 232 Obj: TObject; 227 233 I: Integer; … … 285 291 end; 286 292 293 function TCoolTranslator.GetLangFileDir: string; 294 begin 295 Result := FPOFilesFolder; 296 if Copy(Result, 1, 1) <> DirectorySeparator then 297 Result := ExtractFileDir(UTF8Encode(Application.ExeName)) + 298 DirectorySeparator + Result; 299 end; 300 287 301 procedure TCoolTranslator.LanguageListToStrings(Strings: TStrings); 288 302 var … … 317 331 I: Integer; 318 332 begin 333 Result := ''; 319 334 if Text <> '' then begin 320 335 for I := 0 to FPoFiles.Count - 1 do begin … … 343 358 var 344 359 I: Integer; 345 begin 360 LangDir: string; 361 begin 362 LangDir := GetLangFileDir; 346 363 TLanguage(Languages[0]).Available := True; // Automatic 347 364 348 365 for I := 1 to Languages.Count - 1 do 349 366 with TLanguage(Languages[I]) do begin 350 Available := FileExists UTF8(POFilesFolder + DirectorySeparator + ExtractFileNameOnly(Application.ExeName) +367 Available := FileExists(LangDir + DirectorySeparator + ExtractFileNameOnly(Application.ExeName) + 351 368 '.' + Code + ExtensionSeparator + 'po') or (Code = 'en'); 352 369 end; … … 383 400 begin 384 401 // Win32 user may decide to override locale with LANG variable. 385 Lang := GetEnvironmentVariable UTF8('LANG');402 Lang := GetEnvironmentVariable('LANG'); 386 403 387 404 // Use user selected language … … 391 408 if Lang = '' then begin 392 409 for i := 1 to Paramcount - 1 do 393 if (ParamStr UTF8(i) = '--LANG') or (ParamStrUTF8(i) = '-l') or394 (ParamStr UTF8(i) = '--lang') then395 Lang := ParamStr UTF8(i + 1);410 if (ParamStr(i) = '--LANG') or (ParamStr(i) = '-l') or 411 (ParamStr(i) = '--lang') then 412 Lang := ParamStr(i + 1); 396 413 end; 397 414 if Lang = '' then 398 L CLGetLanguageIDs(Lang, T);415 LazGetLanguageIDs(Lang, T); 399 416 400 417 if Assigned(Language) and (Language.Code = '') and Assigned(FOnAutomaticLanguage) then begin … … 402 419 end; 403 420 404 if Lang = 'en' then Lang := ''; // English files are without en code405 406 421 Result := Lang; 407 422 end; … … 415 430 var 416 431 T: string; 417 I: Integer;418 432 Lang: string; 419 433 begin … … 425 439 Exit; 426 440 427 Result := ChangeFileExt(ParamStr UTF8(0), LCExt);441 Result := ChangeFileExt(ParamStr(0), LCExt); 428 442 if FileExistsUTF8(Result) then 429 443 Exit;
Note:
See TracChangeset
for help on using the changeset viewer.