Changeset 488 for CoolTranslator/UCoolTranslator.pas
- Timestamp:
- Oct 11, 2016, 4:03:46 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
CoolTranslator/UCoolTranslator.pas
r457 r488 6 6 7 7 uses 8 Classes, SysUtils, Forms, ExtCtrls, 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; 50 51 Languages: TLanguageList; 52 procedure Translate; 51 53 procedure LanguageListToStrings(Strings: TStrings); 52 procedure Translate;53 54 procedure TranslateResourceStrings(PoFileName: string); 54 55 procedure TranslateUnitResourceStrings(UnitName: string; PoFileName: string); … … 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 … … 284 291 end; 285 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 286 301 procedure TCoolTranslator.LanguageListToStrings(Strings: TStrings); 287 302 var … … 316 331 I: Integer; 317 332 begin 333 Result := ''; 318 334 if Text <> '' then begin 319 335 for I := 0 to FPoFiles.Count - 1 do begin … … 342 358 var 343 359 I: Integer; 344 begin 360 LangDir: string; 361 begin 362 LangDir := GetLangFileDir; 345 363 TLanguage(Languages[0]).Available := True; // Automatic 346 364 347 365 for I := 1 to Languages.Count - 1 do 348 366 with TLanguage(Languages[I]) do begin 349 Available := FileExists UTF8(POFilesFolder + DirectorySeparator + ExtractFileNameOnly(Application.ExeName) +367 Available := FileExists(LangDir + DirectorySeparator + ExtractFileNameOnly(Application.ExeName) + 350 368 '.' + Code + ExtensionSeparator + 'po') or (Code = 'en'); 351 369 end; … … 382 400 begin 383 401 // Win32 user may decide to override locale with LANG variable. 384 Lang := GetEnvironmentVariable UTF8('LANG');402 Lang := GetEnvironmentVariable('LANG'); 385 403 386 404 // Use user selected language … … 390 408 if Lang = '' then begin 391 409 for i := 1 to Paramcount - 1 do 392 if (ParamStr UTF8(i) = '--LANG') or (ParamStrUTF8(i) = '-l') or393 (ParamStr UTF8(i) = '--lang') then394 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); 395 413 end; 396 414 if Lang = '' then … … 400 418 Lang := FOnAutomaticLanguage(Lang); 401 419 end; 402 403 if Lang = 'en' then Lang := ''; // English files are without en code404 420 405 421 Result := Lang; … … 423 439 Exit; 424 440 425 Result := ChangeFileExt(ParamStr UTF8(0), LCExt);441 Result := ChangeFileExt(ParamStr(0), LCExt); 426 442 if FileExistsUTF8(Result) then 427 443 Exit;
Note:
See TracChangeset
for help on using the changeset viewer.