- Timestamp:
- Jun 28, 2024, 11:08:43 PM (5 months ago)
- Location:
- trunk
- Files:
-
- 21 added
- 5 deleted
- 14 edited
- 1 copied
- 53 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/DbEngines/UEngineMySQL.pas
r26 r30 5 5 uses 6 6 Classes, Dialogs, SysUtils, UDatabase, USqlDatabase, UHtmlClasses, 7 UGenerics;7 Generics; 8 8 9 9 type -
trunk/DbEngines/UEngineXML.pas
r29 r30 4 4 5 5 uses 6 Classes, SysUtils, DOM, XMLRead, XMLWrite, UDatabase, UXMLUtils, FileUtil,7 UHtmlClasses, USqlDatabase, UGenerics;6 Classes, SysUtils, DOM, XMLRead, XMLWrite, UDatabase, XML, FileUtil, 7 UHtmlClasses, USqlDatabase, Generics; 8 8 9 9 type -
trunk/Forms/UFormPreferences.pas
r28 r30 29 29 30 30 uses 31 UCore, ULanguages;31 UCore, Languages; 32 32 33 33 { TFormPreferences } -
trunk/Languages/MyData.cs.po
r28 r30 12 12 "X-Generator: Poedit 3.0.1\n" 13 13 14 #: tcore.aabout.caption15 msgctxt "tcore.aabout.caption"16 msgid "About"17 msgstr "O aplikaci"18 19 #: tcore.adatabaseconnect.caption20 msgid "Connect"21 msgstr "Připojit"22 23 #: tcore.adatabasedisconnect.caption24 msgid "Disconnect"25 msgstr "Odpojit"26 27 #: tcore.aexit.caption28 msgid "Exit"29 msgstr "Ukončit"30 31 #: tcore.applicationinfo1.description32 msgid "Customizable database storage"33 msgstr "Nastavitelné databázové úložiště"34 35 #: tcore.apreferences.caption36 msgctxt "tcore.apreferences.caption"37 msgid "Preferences"38 msgstr "Předvolby"39 40 14 #: tformconnect.buttoncancel.caption 41 15 msgctxt "tformconnect.buttoncancel.caption" … … 322 296 msgstr "Záznamy" 323 297 324 #: tformtable.buttoncancel.caption325 msgctxt "tformtable.buttoncancel.caption"326 msgid "Cancel"327 msgstr "Zrušit"328 329 #: tformtable.buttonok.caption330 msgctxt "tformtable.buttonok.caption"331 msgid "Ok"332 msgstr "Ok"333 334 #: tformtable.caption335 msgctxt "tformtable.caption"336 msgid "Table"337 msgstr "Tabulka"338 339 #: tformtable.label1.caption340 msgid "System name:"341 msgstr "Jméno systému:"342 343 #: tformtable.label2.caption344 msgid "Caption:"345 msgstr "Titulek:"346 347 298 #: tformtables.aadd.caption 348 299 msgctxt "tformtables.aadd.caption" … … 526 477 msgstr "Opravdu chcete odstranit tabulku '%s'?" 527 478 528 #: uhtmlclasses.sstringtoipconversionerror529 msgctxt "uhtmlclasses.sstringtoipconversionerror"530 msgid "String to IP address conversion error"531 msgstr "Chyba převodu řetězce na IP adresu"532 533 479 #: uipaddress.sstringtoipconversionerror 534 480 msgctxt "uipaddress.sstringtoipconversionerror" 535 481 msgid "String to IP address conversion error" 536 482 msgstr "Chyba převodu řetězce na IP adresu" 483 -
trunk/Languages/MyData.pot
r28 r30 1 1 msgid "" 2 2 msgstr "Content-Type: text/plain; charset=UTF-8" 3 4 #: tcore.aabout.caption5 msgid "About"6 msgstr ""7 8 #: tcore.adatabaseconnect.caption9 msgid "Connect"10 msgstr ""11 12 #: tcore.adatabasedisconnect.caption13 msgid "Disconnect"14 msgstr ""15 16 #: tcore.aexit.caption17 msgid "Exit"18 msgstr ""19 20 #: tcore.applicationinfo1.description21 msgid "Customizable database storage"22 msgstr ""23 24 #: tcore.apreferences.caption25 msgctxt "tcore.apreferences.caption"26 msgid "Preferences"27 msgstr ""28 3 29 4 #: tformconnect.buttoncancel.caption … … 311 286 msgstr "" 312 287 313 #: tformtable.buttoncancel.caption314 msgctxt "tformtable.buttoncancel.caption"315 msgid "Cancel"316 msgstr ""317 318 #: tformtable.buttonok.caption319 msgctxt "tformtable.buttonok.caption"320 msgid "Ok"321 msgstr ""322 323 #: tformtable.caption324 msgctxt "tformtable.caption"325 msgid "Table"326 msgstr ""327 328 #: tformtable.label1.caption329 msgid "System name:"330 msgstr ""331 332 #: tformtable.label2.caption333 msgid "Caption:"334 msgstr ""335 336 288 #: tformtables.aadd.caption 337 289 msgctxt "tformtables.aadd.caption" … … 505 457 msgstr "" 506 458 507 #: uhtmlclasses.sstringtoipconversionerror508 msgctxt "uhtmlclasses.sstringtoipconversionerror"509 msgid "String to IP address conversion error"510 msgstr ""511 512 459 #: uipaddress.sstringtoipconversionerror 513 460 msgctxt "uipaddress.sstringtoipconversionerror" -
trunk/MyData.lpi
r26 r30 246 246 <Linking> 247 247 <Debugging> 248 <DebugInfoType Value="dsDwarf3"/> 248 249 <UseHeaptrc Value="True"/> 249 250 <UseExternalDbgSyms Value="True"/> -
trunk/Packages/Common/ApplicationInfo.pas
r29 r30 1 unit UApplicationInfo;1 unit ApplicationInfo; 2 2 3 3 interface 4 4 5 5 uses 6 SysUtils, Classes, Forms, URegistry, Controls, Graphics, LCLType;6 SysUtils, Classes, Forms, RegistryEx, Controls, Graphics, LCLType; 7 7 8 8 type -
trunk/Packages/Common/Common.Delay.pas
r29 r30 1 unit UDelay;1 unit Common.Delay; 2 2 3 3 interface … … 71 71 72 72 end. 73 -
trunk/Packages/Common/Common.lpk
r25 r30 11 11 <PathDelim Value="\"/> 12 12 <SearchPaths> 13 <OtherUnitFiles Value="Forms"/> 13 14 <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)-$(BuildMode)"/> 14 15 </SearchPaths> … … 41 42 Source: https://svn.zdechov.net/PascalClassLibrary/Common/"/> 42 43 <License Value="Copy left."/> 43 <Version Minor="1 0"/>44 <Files Count="3 2">44 <Version Minor="12"/> 45 <Files Count="36"> 45 46 <Item1> 46 47 <Filename Value="StopWatch.pas"/> … … 48 49 </Item1> 49 50 <Item2> 50 <Filename Value=" UCommon.pas"/>51 <UnitName Value=" UCommon"/>51 <Filename Value="Common.pas"/> 52 <UnitName Value="Common"/> 52 53 </Item2> 53 54 <Item3> 54 <Filename Value=" UDebugLog.pas"/>55 <HasRegisterProc Value="True"/> 56 <UnitName Value=" UDebugLog"/>55 <Filename Value="DebugLog.pas"/> 56 <HasRegisterProc Value="True"/> 57 <UnitName Value="DebugLog"/> 57 58 </Item3> 58 59 <Item4> 59 <Filename Value=" UDelay.pas"/>60 <UnitName Value=" UDelay"/>60 <Filename Value="Common.Delay.pas"/> 61 <UnitName Value="Common.Delay"/> 61 62 </Item4> 62 63 <Item5> 63 <Filename Value=" UPrefixMultiplier.pas"/>64 <HasRegisterProc Value="True"/> 65 <UnitName Value=" UPrefixMultiplier"/>64 <Filename Value="PrefixMultiplier.pas"/> 65 <HasRegisterProc Value="True"/> 66 <UnitName Value="PrefixMultiplier"/> 66 67 </Item5> 67 68 <Item6> 68 <Filename Value="U URI.pas"/>69 <UnitName Value="U URI"/>69 <Filename Value="URI.pas"/> 70 <UnitName Value="URI"/> 70 71 </Item6> 71 72 <Item7> 72 <Filename Value=" UThreading.pas"/>73 <UnitName Value=" UThreading"/>73 <Filename Value="Threading.pas"/> 74 <UnitName Value="Threading"/> 74 75 </Item7> 75 76 <Item8> 76 <Filename Value=" UMemory.pas"/>77 <UnitName Value=" UMemory"/>77 <Filename Value="Memory.pas"/> 78 <UnitName Value="Memory"/> 78 79 </Item8> 79 80 <Item9> 80 <Filename Value=" UResetableThread.pas"/>81 <UnitName Value=" UResetableThread"/>81 <Filename Value="ResetableThread.pas"/> 82 <UnitName Value="ResetableThread"/> 82 83 </Item9> 83 84 <Item10> 84 <Filename Value=" UPool.pas"/>85 <UnitName Value=" UPool"/>85 <Filename Value="Pool.pas"/> 86 <UnitName Value="Pool"/> 86 87 </Item10> 87 88 <Item11> 88 <Filename Value=" ULastOpenedList.pas"/>89 <HasRegisterProc Value="True"/> 90 <UnitName Value=" ULastOpenedList"/>89 <Filename Value="LastOpenedList.pas"/> 90 <HasRegisterProc Value="True"/> 91 <UnitName Value="LastOpenedList"/> 91 92 </Item11> 92 93 <Item12> 93 <Filename Value=" URegistry.pas"/>94 <UnitName Value=" URegistry"/>94 <Filename Value="RegistryEx.pas"/> 95 <UnitName Value="RegistryEx"/> 95 96 </Item12> 96 97 <Item13> 97 <Filename Value=" UJobProgressView.pas"/>98 <HasRegisterProc Value="True"/> 99 <UnitName Value=" UJobProgressView"/>98 <Filename Value="JobProgressView.pas"/> 99 <HasRegisterProc Value="True"/> 100 <UnitName Value="JobProgressView"/> 100 101 </Item13> 101 102 <Item14> 102 <Filename Value=" UXMLUtils.pas"/>103 <UnitName Value=" UXMLUtils"/>103 <Filename Value="XML.pas"/> 104 <UnitName Value="XML"/> 104 105 </Item14> 105 106 <Item15> 106 <Filename Value=" UApplicationInfo.pas"/>107 <HasRegisterProc Value="True"/> 108 <UnitName Value=" UApplicationInfo"/>107 <Filename Value="ApplicationInfo.pas"/> 108 <HasRegisterProc Value="True"/> 109 <UnitName Value="ApplicationInfo"/> 109 110 </Item15> 110 111 <Item16> 111 <Filename Value=" USyncCounter.pas"/>112 <UnitName Value=" USyncCounter"/>112 <Filename Value="SyncCounter.pas"/> 113 <UnitName Value="SyncCounter"/> 113 114 </Item16> 114 115 <Item17> 115 <Filename Value=" UListViewSort.pas"/>116 <HasRegisterProc Value="True"/> 117 <UnitName Value=" UListViewSort"/>116 <Filename Value="ListViewSort.pas"/> 117 <HasRegisterProc Value="True"/> 118 <UnitName Value="ListViewSort"/> 118 119 </Item17> 119 120 <Item18> 120 <Filename Value=" UPersistentForm.pas"/>121 <HasRegisterProc Value="True"/> 122 <UnitName Value=" UPersistentForm"/>121 <Filename Value="PersistentForm.pas"/> 122 <HasRegisterProc Value="True"/> 123 <UnitName Value="PersistentForm"/> 123 124 </Item18> 124 125 <Item19> 125 <Filename Value=" UFindFile.pas"/>126 <HasRegisterProc Value="True"/> 127 <UnitName Value=" UFindFile"/>126 <Filename Value="FindFile.pas"/> 127 <HasRegisterProc Value="True"/> 128 <UnitName Value="FindFile"/> 128 129 </Item19> 129 130 <Item20> 130 <Filename Value=" UScaleDPI.pas"/>131 <HasRegisterProc Value="True"/> 132 <UnitName Value=" UScaleDPI"/>131 <Filename Value="ScaleDPI.pas"/> 132 <HasRegisterProc Value="True"/> 133 <UnitName Value="ScaleDPI"/> 133 134 </Item20> 134 135 <Item21> 135 <Filename Value=" UTheme.pas"/>136 <HasRegisterProc Value="True"/> 137 <UnitName Value=" UTheme"/>136 <Filename Value="Theme.pas"/> 137 <HasRegisterProc Value="True"/> 138 <UnitName Value="Theme"/> 138 139 </Item21> 139 140 <Item22> 140 <Filename Value=" UStringTable.pas"/>141 <UnitName Value=" UStringTable"/>141 <Filename Value="StringTable.pas"/> 142 <UnitName Value="StringTable"/> 142 143 </Item22> 143 144 <Item23> 144 <Filename Value=" UMetaCanvas.pas"/>145 <UnitName Value=" UMetaCanvas"/>145 <Filename Value="MetaCanvas.pas"/> 146 <UnitName Value="MetaCanvas"/> 146 147 </Item23> 147 148 <Item24> 148 <Filename Value=" UGeometric.pas"/>149 <UnitName Value=" UGeometric"/>149 <Filename Value="Geometric.pas"/> 150 <UnitName Value="Geometric"/> 150 151 </Item24> 151 152 <Item25> 152 <Filename Value=" UTranslator.pas"/>153 <HasRegisterProc Value="True"/> 154 <UnitName Value=" UTranslator"/>153 <Filename Value="Translator.pas"/> 154 <HasRegisterProc Value="True"/> 155 <UnitName Value="Translator"/> 155 156 </Item25> 156 157 <Item26> 157 <Filename Value=" ULanguages.pas"/>158 <UnitName Value=" ULanguages"/>158 <Filename Value="Languages.pas"/> 159 <UnitName Value="Languages"/> 159 160 </Item26> 160 161 <Item27> 161 <Filename Value=" UFormAbout.pas"/>162 <UnitName Value=" UFormAbout"/>162 <Filename Value="PixelPointer.pas"/> 163 <UnitName Value="PixelPointer"/> 163 164 </Item27> 164 165 <Item28> 165 <Filename Value="UAboutDialog.pas"/> 166 <HasRegisterProc Value="True"/> 167 <UnitName Value="UAboutDialog"/> 166 <Filename Value="DataFile.pas"/> 167 <UnitName Value="DataFile"/> 168 168 </Item28> 169 169 <Item29> 170 <Filename Value=" UPixelPointer.pas"/>171 <UnitName Value=" UPixelPointer"/>170 <Filename Value="TestCase.pas"/> 171 <UnitName Value="TestCase"/> 172 172 </Item29> 173 173 <Item30> 174 <Filename Value=" UDataFile.pas"/>175 <UnitName Value=" UDataFile"/>174 <Filename Value="Generics.pas"/> 175 <UnitName Value="Generics"/> 176 176 </Item30> 177 177 <Item31> 178 <Filename Value="UTestCase.pas"/> 179 <UnitName Value="UTestCase"/> 178 <Filename Value="CommonPackage.pas"/> 179 <Type Value="Main Unit"/> 180 <UnitName Value="CommonPackage"/> 180 181 </Item31> 181 182 <Item32> 182 <Filename Value=" UGenerics.pas"/>183 <UnitName Value=" UGenerics"/>183 <Filename Value="Table.pas"/> 184 <UnitName Value="Table"/> 184 185 </Item32> 186 <Item33> 187 <Filename Value="FormEx.pas"/> 188 <HasRegisterProc Value="True"/> 189 <UnitName Value="FormEx"/> 190 </Item33> 191 <Item34> 192 <Filename Value="Forms\FormTests.pas"/> 193 <UnitName Value="FormTests"/> 194 </Item34> 195 <Item35> 196 <Filename Value="Forms\FormTest.pas"/> 197 <UnitName Value="FormTest"/> 198 </Item35> 199 <Item36> 200 <Filename Value="Forms\FormAbout.pas"/> 201 <UnitName Value="FormAbout"/> 202 </Item36> 185 203 </Files> 186 204 <CompatibilityMode Value="True"/> -
trunk/Packages/Common/Common.pas
r29 r30 1 unit UCommon;1 unit Common; 2 2 3 3 interface … … 65 65 function GetFileFilterItemExt(Filter: string; Index: Integer): string; 66 66 function IntToBin(Data: Int64; Count: Byte): string; 67 function Implode(Separator: Char; List: TList<string>): string; 67 function Implode(Separator: string; List: TList<string>): string; 68 function Implode(Separator: string; List: TStringList; Around: string = ''): string; 68 69 function LastPos(const SubStr: String; const S: String): Integer; 69 70 function LoadFileToStr(const FileName: TFileName): AnsiString; … … 206 207 end;*) 207 208 209 function Implode(Separator: string; List: TStringList; Around: string = ''): string; 210 var 211 I: Integer; 212 begin 213 Result := ''; 214 for I := 0 to List.Count - 1 do begin 215 Result := Result + Around + List[I] + Around; 216 if I < List.Count - 1 then Result := Result + Separator; 217 end; 218 end; 219 208 220 function LastPos(const SubStr: String; const S: String): Integer; 209 221 begin … … 314 326 end; 315 327 316 function Implode(Separator: Char; List: TList<string>): string;328 function Implode(Separator: string; List: TList<string>): string; 317 329 var 318 330 I: Integer; -
trunk/Packages/Common/CommonPackage.pas
r29 r30 3 3 } 4 4 5 unit Common ;5 unit CommonPackage; 6 6 7 7 {$warn 5023 off : no warning about unused units} … … 9 9 10 10 uses 11 StopWatch, UCommon, UDebugLog, UDelay, UPrefixMultiplier, UURI, UThreading,12 UMemory, UResetableThread, UPool, ULastOpenedList, URegistry,13 UJobProgressView, UXMLUtils, UApplicationInfo, USyncCounter, UListViewSort,14 UPersistentForm, UFindFile, UScaleDPI, UTheme, UStringTable, UMetaCanvas,15 UGeometric, UTranslator, ULanguages, UFormAbout, UAboutDialog,16 UPixelPointer, UDataFile, UTestCase, UGenerics, LazarusPackageIntf;11 StopWatch, Common, DebugLog, Common.Delay, PrefixMultiplier, URI, Threading, 12 Memory, ResetableThread, Pool, LastOpenedList, RegistryEx, JobProgressView, 13 XML, ApplicationInfo, SyncCounter, ListViewSort, PersistentForm, FindFile, 14 ScaleDPI, Theme, StringTable, MetaCanvas, Geometric, Translator, Languages, 15 PixelPointer, DataFile, TestCase, Generics, Table, FormEx, FormTests, 16 FormTest, FormAbout, LazarusPackageIntf; 17 17 18 18 implementation … … 20 20 procedure Register; 21 21 begin 22 RegisterUnit(' UDebugLog', @UDebugLog.Register);23 RegisterUnit(' UPrefixMultiplier', @UPrefixMultiplier.Register);24 RegisterUnit(' ULastOpenedList', @ULastOpenedList.Register);25 RegisterUnit(' UJobProgressView', @UJobProgressView.Register);26 RegisterUnit(' UApplicationInfo', @UApplicationInfo.Register);27 RegisterUnit(' UListViewSort', @UListViewSort.Register);28 RegisterUnit(' UPersistentForm', @UPersistentForm.Register);29 RegisterUnit(' UFindFile', @UFindFile.Register);30 RegisterUnit(' UScaleDPI', @UScaleDPI.Register);31 RegisterUnit(' UTheme', @UTheme.Register);32 RegisterUnit(' UTranslator', @UTranslator.Register);33 RegisterUnit(' UAboutDialog', @UAboutDialog.Register);22 RegisterUnit('DebugLog', @DebugLog.Register); 23 RegisterUnit('PrefixMultiplier', @PrefixMultiplier.Register); 24 RegisterUnit('LastOpenedList', @LastOpenedList.Register); 25 RegisterUnit('JobProgressView', @JobProgressView.Register); 26 RegisterUnit('ApplicationInfo', @ApplicationInfo.Register); 27 RegisterUnit('ListViewSort', @ListViewSort.Register); 28 RegisterUnit('PersistentForm', @PersistentForm.Register); 29 RegisterUnit('FindFile', @FindFile.Register); 30 RegisterUnit('ScaleDPI', @ScaleDPI.Register); 31 RegisterUnit('Theme', @Theme.Register); 32 RegisterUnit('Translator', @Translator.Register); 33 RegisterUnit('FormEx', @FormEx.Register); 34 34 end; 35 35 -
trunk/Packages/Common/DataFile.pas
r29 r30 1 unit UDataFile;1 unit DataFile; 2 2 3 3 interface … … 77 77 procedure TDataFile.Assign(Source: TPersistent); 78 78 begin 79 inherited;80 79 if Source is TDataFile then begin 81 80 FFileName := TDataFile(Source).FFileName; 82 81 FModified := TDataFile(Source).FModified; 83 end ;82 end else inherited; 84 83 end; 85 84 … … 109 108 110 109 end. 111 -
trunk/Packages/Common/DebugLog.pas
r29 r30 1 unit UDebugLog;1 unit DebugLog; 2 2 3 3 interface … … 134 134 135 135 end. 136 -
trunk/Packages/Common/FindFile.pas
r29 r30 19 19 } 20 20 21 unit UFindFile;21 unit FindFile; 22 22 23 23 interface … … 75 75 constructor TFindFile.Create(AOwner: TComponent); 76 76 begin 77 inherited Create(AOwner);77 inherited; 78 78 Path := IncludeTrailingBackslash(UTF8Encode(GetCurrentDir)); 79 79 FileMask := FilterAll; … … 143 143 SysUtils.FindClose(Rec); 144 144 end; 145 end; 145 end; 146 146 147 147 end. 148 -
trunk/Packages/Common/Generics.pas
r29 r30 1 unit UGenerics;1 unit Generics; 2 2 3 3 interface … … 77 77 78 78 end. 79 -
trunk/Packages/Common/Geometric.pas
r29 r30 1 unit UGeometric;1 unit Geometric; 2 2 3 3 interface … … 8 8 type 9 9 TPointArray = array of TPoint; 10 11 { TVector } 12 13 TVector = record 14 Position: TPoint; 15 Direction: TPoint; 16 function GetLength: Double; 17 function GetAngle: Double; 18 procedure SetLength(Value: Double); 19 class function Create(P1, P2: TPoint): TVector; static; 20 end; 10 21 11 22 function Distance(P1, P2: TPoint): Integer; … … 13 24 function AddPoint(const P1, P2: TPoint): TPoint; 14 25 function SubPoint(const P1, P2: TPoint): TPoint; 15 function PointToLineDistance(const P, V, W: TPoint ): Integer;26 function PointToLineDistance(const P, V, W: TPoint; out Intersect: TPoint): Integer; 16 27 function ComparePoint(P1, P2: TPoint): Boolean; 17 28 function RotatePoint(Center, P: TPoint; Angle: Double): TPoint; … … 50 61 end; 51 62 52 function PointToLineDistance(const P, V, W: TPoint ): Integer;63 function PointToLineDistance(const P, V, W: TPoint; out Intersect: TPoint): Integer; 53 64 var 54 65 l2, t: Double; … … 68 79 if T < 0 then begin 69 80 Result := Distance(P, V); // Beyond the 'v' end of the segment 70 exit; 81 Intersect := V; 82 Exit; 71 83 end 72 84 else if T > 1 then begin 73 85 Result := Distance(P, W); // Beyond the 'w' end of the segment 86 Intersect := W; 74 87 Exit; 75 88 end; … … 77 90 TT.Y := Trunc(V.Y + T * (W.Y - V.Y)); 78 91 Result := Distance(P, TT); 92 Intersect := TT; 79 93 end; 80 94 … … 162 176 end; 163 177 178 { TVector } 179 180 function TVector.GetLength: Double; 181 begin 182 Result := Sqrt(Sqr(Direction.X) + Sqr(Direction.Y)); 183 end; 184 185 function TVector.GetAngle: Double; 186 begin 187 Result := ArcTan2(Direction.Y, Direction.X); 188 end; 189 190 procedure TVector.SetLength(Value: Double); 191 var 192 Angle: Double; 193 begin 194 Angle := GetAngle; 195 Direction := Point(Round(Cos(Angle) * Value), 196 Round(Sin(Angle) * Value)); 197 end; 198 199 class function TVector.Create(P1, P2: TPoint): TVector; 200 begin 201 Result.Position := P1; 202 Result.Direction := Point(P2.X - P1.X, P2.Y - P1.Y); 203 end; 164 204 165 205 end. 166 -
trunk/Packages/Common/JobProgressView.pas
r29 r30 1 unit UJobProgressView;1 unit JobProgressView; 2 2 3 3 interface … … 5 5 uses 6 6 SysUtils, Variants, Classes, Graphics, Controls, Forms, Syncobjs, 7 Dialogs, ComCtrls, StdCtrls, ExtCtrls, Generics.Collections, UThreading, Math,7 Dialogs, ComCtrls, StdCtrls, ExtCtrls, Generics.Collections, Threading, Math, 8 8 DateUtils; 9 9 … … 154 154 end; 155 155 156 //var157 // FormJobProgressView: TFormJobProgressView;158 159 156 procedure Register; 160 157 … … 185 182 try 186 183 try 187 //raise Exception.Create('Exception in job');188 184 ProgressView.CurrentJob.Method(Job); 189 185 except -
trunk/Packages/Common/Languages.pas
r29 r30 1 unit ULanguages;1 unit Languages; 2 2 3 3 interface … … 216 216 SLang_za = 'Zhuang'; 217 217 SLang_zh = 'Chinese'; 218 SLang_zh_Hans = 'Simplified Chinese'; 219 SLang_zh_Hant = 'Traditional Chinese'; 218 220 SLang_zu = 'Zulu'; 221 219 222 220 223 implementation … … 228 231 begin 229 232 I := 0; 230 while (I < Count) and ( TLanguage(Items[I]).Code <ACode) do Inc(I);231 if I < Count then Result := TLanguage(Items[I])233 while (I < Count) and (Items[I].Code <> ACode) do Inc(I); 234 if I < Count then Result := Items[I] 232 235 else Result := nil; 233 236 end; … … 439 442 AddNew('za', SLang_za); 440 443 AddNew('zh', SLang_zh); 444 AddNew('zh-Hant', SLang_zh_Hant); 445 AddNew('zh-Hans', SLang_zh_Hans); 441 446 AddNew('zu', SLang_zu); 442 447 end; 443 448 444 449 end. 445 -
trunk/Packages/Common/Languages/DataFile.cs.po
r29 r30 12 12 "X-Generator: Poedit 3.0.1\n" 13 13 14 #: udatafile.sallfiles 14 #: datafile.sallfiles 15 msgctxt "datafile.sallfiles" 15 16 msgid "All files" 16 17 msgstr "Všechny soubory" 17 18 18 #: udatafile.sdatafilename 19 #: datafile.sdatafilename 20 msgctxt "datafile.sdatafilename" 19 21 msgid "Data file" 20 22 msgstr "Datový soubor" 23 -
trunk/Packages/Common/Languages/DataFile.pot
r29 r30 2 2 msgstr "Content-Type: text/plain; charset=UTF-8" 3 3 4 #: udatafile.sallfiles4 #: datafile.sallfiles 5 5 msgid "All files" 6 6 msgstr "" 7 7 8 #: udatafile.sdatafilename8 #: datafile.sdatafilename 9 9 msgid "Data file" 10 10 msgstr "" -
trunk/Packages/Common/Languages/DebugLog.cs.po
r29 r30 1 1 msgid "" 2 2 msgstr "" 3 "Content-Type: text/plain; charset=UTF-8\n"4 3 "Project-Id-Version: \n" 5 4 "POT-Creation-Date: \n" … … 7 6 "Last-Translator: Jiří Hajda <robie@centrum.cz>\n" 8 7 "Language-Team: \n" 8 "Language: cs\n" 9 9 "MIME-Version: 1.0\n" 10 "Content-Type: text/plain; charset=UTF-8\n" 10 11 "Content-Transfer-Encoding: 8bit\n" 12 "X-Generator: Poedit 3.0.1\n" 11 13 12 #: udebuglog.sfilenamenotdefined 14 #: debuglog.sfilenamenotdefined 15 msgctxt "debuglog.sfilenamenotdefined" 13 16 msgid "Filename not defined" 14 17 msgstr "Neurčen soubor" -
trunk/Packages/Common/Languages/DebugLog.pot
r29 r30 2 2 msgstr "Content-Type: text/plain; charset=UTF-8" 3 3 4 #: udebuglog.sfilenamenotdefined4 #: debuglog.sfilenamenotdefined 5 5 msgid "Filename not defined" 6 6 msgstr "" -
trunk/Packages/Common/Languages/FindFile.cs.po
r29 r30 1 1 msgid "" 2 2 msgstr "" 3 "Content-Type: text/plain; charset=UTF-8\n"4 3 "Project-Id-Version: \n" 5 4 "POT-Creation-Date: \n" … … 7 6 "Last-Translator: \n" 8 7 "Language-Team: \n" 8 "Language: cs\n" 9 9 "MIME-Version: 1.0\n" 10 "Content-Type: text/plain; charset=UTF-8\n" 10 11 "Content-Transfer-Encoding: 8bit\n" 11 "Language: cs\n" 12 "X-Generator: Poedit 1.8.9\n" 12 "X-Generator: Poedit 3.0.1\n" 13 13 14 #: ufindfile.sdirnotfound 14 #: findfile.sdirnotfound 15 msgctxt "findfile.sdirnotfound" 15 16 msgid "Directory not found" 16 17 msgstr "Adresář nenalezen" -
trunk/Packages/Common/Languages/FindFile.pot
r29 r30 2 2 msgstr "Content-Type: text/plain; charset=UTF-8" 3 3 4 #: ufindfile.sdirnotfound4 #: findfile.sdirnotfound 5 5 msgid "Directory not found" 6 6 msgstr "" -
trunk/Packages/Common/Languages/FormAbout.cs.po
r29 r30 1 1 msgid "" 2 2 msgstr "" 3 "Content-Type: text/plain; charset=UTF-8\n"4 3 "Project-Id-Version: \n" 5 4 "POT-Creation-Date: \n" … … 7 6 "Last-Translator: Chronos <robie@centrum.cz>\n" 8 7 "Language-Team: \n" 8 "Language: cs\n" 9 9 "MIME-Version: 1.0\n" 10 "Content-Type: text/plain; charset=UTF-8\n" 10 11 "Content-Transfer-Encoding: 8bit\n" 11 "Language: cs\n" 12 "X-Generator: Poedit 2.4.1\n" 12 "X-Generator: Poedit 3.0.1\n" 13 13 14 #: uformabout.slicense 14 #: formabout.slicense 15 msgctxt "formabout.slicense" 15 16 msgid "License" 16 17 msgstr "Licence" 17 18 18 #: uformabout.sreleasedate 19 #: formabout.sreleasedate 20 msgctxt "formabout.sreleasedate" 19 21 msgid "Release date" 20 22 msgstr "Datum uvolnění" 21 23 22 #: uformabout.sversion 24 #: formabout.sversion 25 msgctxt "formabout.sversion" 23 26 msgid "Version" 24 27 msgstr "Verze" -
trunk/Packages/Common/Languages/FormAbout.pot
r29 r30 2 2 msgstr "Content-Type: text/plain; charset=UTF-8" 3 3 4 #: uformabout.slicense4 #: formabout.slicense 5 5 msgid "License" 6 6 msgstr "" 7 7 8 #: uformabout.sreleasedate8 #: formabout.sreleasedate 9 9 msgid "Release date" 10 10 msgstr "" 11 11 12 #: uformabout.sversion12 #: formabout.sversion 13 13 msgid "Version" 14 14 msgstr "" -
trunk/Packages/Common/Languages/JobProgressView.cs.po
r29 r30 10 10 "Content-Type: text/plain; charset=UTF-8\n" 11 11 "Content-Transfer-Encoding: 8bit\n" 12 "X-Generator: Poedit 2.2\n"12 "X-Generator: Poedit 3.0.1\n" 13 13 14 #: ujobprogressview.sestimatedtime14 #: jobprogressview.sestimatedtime 15 15 #, object-pascal-format 16 msgctxt "jobprogressview.sestimatedtime" 16 17 msgid "Estimated time: %s" 17 18 msgstr "Odhadovaný čas: %s" 18 19 19 #: ujobprogressview.sexecuted 20 #: jobprogressview.sexecuted 21 msgctxt "jobprogressview.sexecuted" 20 22 msgid "Executed" 21 23 msgstr "Vykonané" 22 24 23 #: ujobprogressview.sfinished 25 #: jobprogressview.sfinished 26 msgctxt "jobprogressview.sfinished" 24 27 msgid "Finished" 25 28 msgstr "Dokončené" 26 29 27 #: ujobprogressview.spleasewait 30 #: jobprogressview.spleasewait 31 msgctxt "jobprogressview.spleasewait" 28 32 msgid "Please wait..." 29 33 msgstr "Prosím čekejte..." 30 34 31 #: ujobprogressview.sterminate 35 #: jobprogressview.sterminate 36 msgctxt "jobprogressview.sterminate" 32 37 msgid "Termination" 33 38 msgstr "Přerušení" 34 39 35 #: ujobprogressview.stotalestimatedtime40 #: jobprogressview.stotalestimatedtime 36 41 #, object-pascal-format 42 msgctxt "jobprogressview.stotalestimatedtime" 37 43 msgid "Total estimated time: %s" 38 44 msgstr "Celkový odhadovaný čas: %s" -
trunk/Packages/Common/Languages/JobProgressView.pot
r29 r30 2 2 msgstr "Content-Type: text/plain; charset=UTF-8" 3 3 4 #: ujobprogressview.sestimatedtime4 #: jobprogressview.sestimatedtime 5 5 #, object-pascal-format 6 6 msgid "Estimated time: %s" 7 7 msgstr "" 8 8 9 #: ujobprogressview.sexecuted9 #: jobprogressview.sexecuted 10 10 msgid "Executed" 11 11 msgstr "" 12 12 13 #: ujobprogressview.sfinished13 #: jobprogressview.sfinished 14 14 msgid "Finished" 15 15 msgstr "" 16 16 17 #: ujobprogressview.spleasewait17 #: jobprogressview.spleasewait 18 18 msgid "Please wait..." 19 19 msgstr "" 20 20 21 #: ujobprogressview.sterminate21 #: jobprogressview.sterminate 22 22 msgid "Termination" 23 23 msgstr "" 24 24 25 #: ujobprogressview.stotalestimatedtime25 #: jobprogressview.stotalestimatedtime 26 26 #, object-pascal-format 27 27 msgid "Total estimated time: %s" -
trunk/Packages/Common/Languages/Languages.cs.po
r29 r30 1 1 msgid "" 2 2 msgstr "" 3 "Content-Type: text/plain; charset=UTF-8\n"4 3 "Project-Id-Version: \n" 5 4 "POT-Creation-Date: \n" … … 7 6 "Last-Translator: Jiří Hajda <software@mezservis.cz>\n" 8 7 "Language-Team: \n" 8 "Language: cs\n" 9 9 "MIME-Version: 1.0\n" 10 "Content-Type: text/plain; charset=UTF-8\n" 10 11 "Content-Transfer-Encoding: 8bit\n" 11 12 #: ulanguages.slangauto 12 "X-Generator: Poedit 3.0.1\n" 13 14 #: languages.slangauto 15 msgctxt "languages.slangauto" 13 16 msgid "Automatic" 14 17 msgstr "Automaticky" 15 18 16 #: ulanguages.slang_aa 19 #: languages.slang_aa 20 msgctxt "languages.slang_aa" 17 21 msgid "Afar" 18 22 msgstr "" 19 23 20 #: ulanguages.slang_ab 24 #: languages.slang_ab 25 msgctxt "languages.slang_ab" 21 26 msgid "Abkhazian" 22 27 msgstr "Abcházština" 23 28 24 #: ulanguages.slang_ae 29 #: languages.slang_ae 30 msgctxt "languages.slang_ae" 25 31 msgid "Avestan" 26 32 msgstr "" 27 33 28 #: ulanguages.slang_af 34 #: languages.slang_af 35 msgctxt "languages.slang_af" 29 36 msgid "Afrikaans" 30 37 msgstr "Afrikánština" 31 38 32 #: ulanguages.slang_ak 39 #: languages.slang_ak 40 msgctxt "languages.slang_ak" 33 41 msgid "Akan" 34 42 msgstr "" 35 43 36 #: ulanguages.slang_am 44 #: languages.slang_am 45 msgctxt "languages.slang_am" 37 46 msgid "Amharic" 38 47 msgstr "" 39 48 40 #: ulanguages.slang_an 49 #: languages.slang_an 50 msgctxt "languages.slang_an" 41 51 msgid "Aragonese" 42 52 msgstr "" 43 53 44 #: ulanguages.slang_ar 54 #: languages.slang_ar 55 msgctxt "languages.slang_ar" 45 56 msgid "Arabic" 46 57 msgstr "Arabština" 47 58 48 #: ulanguages.slang_as 59 #: languages.slang_as 60 msgctxt "languages.slang_as" 49 61 msgid "Assamese" 50 62 msgstr "" 51 63 52 #: ulanguages.slang_av 64 #: languages.slang_av 65 msgctxt "languages.slang_av" 53 66 msgid "Avaric" 54 67 msgstr "" 55 68 56 #: ulanguages.slang_ay 69 #: languages.slang_ay 70 msgctxt "languages.slang_ay" 57 71 msgid "Aymara" 58 72 msgstr "" 59 73 60 #: ulanguages.slang_az 74 #: languages.slang_az 75 msgctxt "languages.slang_az" 61 76 msgid "Azerbaijani" 62 77 msgstr "" 63 78 64 #: ulanguages.slang_ba 79 #: languages.slang_ba 80 msgctxt "languages.slang_ba" 65 81 msgid "Bashkir" 66 82 msgstr "" 67 83 68 #: ulanguages.slang_be 84 #: languages.slang_be 85 msgctxt "languages.slang_be" 69 86 msgid "Belarusian" 70 87 msgstr "" 71 88 72 #: ulanguages.slang_bg 89 #: languages.slang_bg 90 msgctxt "languages.slang_bg" 73 91 msgid "Bulgarian" 74 92 msgstr "Maďarština" 75 93 76 #: ulanguages.slang_bh 94 #: languages.slang_bh 95 msgctxt "languages.slang_bh" 77 96 msgid "Bihari" 78 97 msgstr "" 79 98 80 #: ulanguages.slang_bi 99 #: languages.slang_bi 100 msgctxt "languages.slang_bi" 81 101 msgid "Bislama" 82 102 msgstr "" 83 103 84 #: ulanguages.slang_bm 104 #: languages.slang_bm 105 msgctxt "languages.slang_bm" 85 106 msgid "Bambara" 86 107 msgstr "" 87 108 88 #: ulanguages.slang_bn 109 #: languages.slang_bn 110 msgctxt "languages.slang_bn" 89 111 msgid "Bengali" 90 112 msgstr "" 91 113 92 #: ulanguages.slang_bo 114 #: languages.slang_bo 115 msgctxt "languages.slang_bo" 93 116 msgid "Tibetan" 94 117 msgstr "Tibetština" 95 118 96 #: ulanguages.slang_br 119 #: languages.slang_br 120 msgctxt "languages.slang_br" 97 121 msgid "Breton" 98 122 msgstr "" 99 123 100 #: ulanguages.slang_bs 124 #: languages.slang_bs 125 msgctxt "languages.slang_bs" 101 126 msgid "Bosnian" 102 127 msgstr "" 103 128 104 #: ulanguages.slang_ca 129 #: languages.slang_ca 130 msgctxt "languages.slang_ca" 105 131 msgid "Catalan" 106 132 msgstr "Katalánština" 107 133 108 #: ulanguages.slang_ce 134 #: languages.slang_ce 135 msgctxt "languages.slang_ce" 109 136 msgid "Chechen" 110 137 msgstr "" 111 138 112 #: ulanguages.slang_ch 139 #: languages.slang_ch 140 msgctxt "languages.slang_ch" 113 141 msgid "Chamorro" 114 142 msgstr "" 115 143 116 #: ulanguages.slang_co 144 #: languages.slang_co 145 msgctxt "languages.slang_co" 117 146 msgid "Corsican" 118 147 msgstr "" 119 148 120 #: ulanguages.slang_cr 149 #: languages.slang_cr 150 msgctxt "languages.slang_cr" 121 151 msgid "Cree" 122 152 msgstr "Kríjština" 123 153 124 #: ulanguages.slang_cs 154 #: languages.slang_cs 155 msgctxt "languages.slang_cs" 125 156 msgid "Czech" 126 157 msgstr "Čeština" 127 158 128 #: ulanguages.slang_cv 159 #: languages.slang_cv 160 msgctxt "languages.slang_cv" 129 161 msgid "Chuvash" 130 162 msgstr "" 131 163 132 #: ulanguages.slang_cy 164 #: languages.slang_cy 165 msgctxt "languages.slang_cy" 133 166 msgid "Welsh" 134 167 msgstr "" 135 168 136 #: ulanguages.slang_da 169 #: languages.slang_da 170 msgctxt "languages.slang_da" 137 171 msgid "Danish" 138 172 msgstr "Dánština" 139 173 140 #: ulanguages.slang_de 174 #: languages.slang_de 175 msgctxt "languages.slang_de" 141 176 msgid "German" 142 177 msgstr "Němčina" 143 178 144 #: ulanguages.slang_de_at 179 #: languages.slang_de_at 180 msgctxt "languages.slang_de_at" 145 181 msgid "Austrian German" 146 182 msgstr "Australská němčina" 147 183 148 #: ulanguages.slang_de_ch 184 #: languages.slang_de_ch 185 msgctxt "languages.slang_de_ch" 149 186 msgid "Swiss German" 150 187 msgstr "Švédská němčina" 151 188 152 #: ulanguages.slang_dv 189 #: languages.slang_dv 190 msgctxt "languages.slang_dv" 153 191 msgid "Divehi" 154 192 msgstr "" 155 193 156 #: ulanguages.slang_dz 194 #: languages.slang_dz 195 msgctxt "languages.slang_dz" 157 196 msgid "Dzongkha" 158 197 msgstr "" 159 198 160 #: ulanguages.slang_ee 199 #: languages.slang_ee 200 msgctxt "languages.slang_ee" 161 201 msgid "Ewe" 162 202 msgstr "" 163 203 164 #: ulanguages.slang_el 204 #: languages.slang_el 205 msgctxt "languages.slang_el" 165 206 msgid "Greek" 166 207 msgstr "Řečtina" 167 208 168 #: ulanguages.slang_en 209 #: languages.slang_en 210 msgctxt "languages.slang_en" 169 211 msgid "English" 170 212 msgstr "Angličtina" 171 213 172 #: ulanguages.slang_en_au 214 #: languages.slang_en_au 215 msgctxt "languages.slang_en_au" 173 216 msgid "Australian English" 174 217 msgstr "Australská angličtina" 175 218 176 #: ulanguages.slang_en_ca 219 #: languages.slang_en_ca 220 msgctxt "languages.slang_en_ca" 177 221 msgid "Canadian English" 178 222 msgstr "Kanadská angličtina" 179 223 180 #: ulanguages.slang_en_gb 224 #: languages.slang_en_gb 225 msgctxt "languages.slang_en_gb" 181 226 msgid "British English" 182 227 msgstr "Britská angličtina" 183 228 184 #: ulanguages.slang_en_us 229 #: languages.slang_en_us 230 msgctxt "languages.slang_en_us" 185 231 msgid "American English" 186 232 msgstr "Americká angličtina" 187 233 188 #: ulanguages.slang_eo 234 #: languages.slang_eo 235 msgctxt "languages.slang_eo" 189 236 msgid "Esperanto" 190 237 msgstr "Esperanto" 191 238 192 #: ulanguages.slang_es 239 #: languages.slang_es 240 msgctxt "languages.slang_es" 193 241 msgid "Spanish" 194 242 msgstr "Španělština" 195 243 196 #: ulanguages.slang_et 244 #: languages.slang_et 245 msgctxt "languages.slang_et" 197 246 msgid "Estonian" 198 247 msgstr "Estonština" 199 248 200 #: ulanguages.slang_eu 249 #: languages.slang_eu 250 msgctxt "languages.slang_eu" 201 251 msgid "Basque" 202 252 msgstr "" 203 253 204 #: ulanguages.slang_fa 254 #: languages.slang_fa 255 msgctxt "languages.slang_fa" 205 256 msgid "Persian" 206 257 msgstr "Perština" 207 258 208 #: ulanguages.slang_ff 259 #: languages.slang_ff 260 msgctxt "languages.slang_ff" 209 261 msgid "Fulah" 210 262 msgstr "" 211 263 212 #: ulanguages.slang_fi 264 #: languages.slang_fi 265 msgctxt "languages.slang_fi" 213 266 msgid "Finnish" 214 267 msgstr "Finština" 215 268 216 #: ulanguages.slang_fj 269 #: languages.slang_fj 270 msgctxt "languages.slang_fj" 217 271 msgid "Fijian" 218 272 msgstr "" 219 273 220 #: ulanguages.slang_fo 274 #: languages.slang_fo 275 msgctxt "languages.slang_fo" 221 276 msgid "Faroese" 222 277 msgstr "" 223 278 224 #: ulanguages.slang_fr 279 #: languages.slang_fr 280 msgctxt "languages.slang_fr" 225 281 msgid "French" 226 282 msgstr "Francouzština" 227 283 228 #: ulanguages.slang_fr_be229 msgctxt " ulanguages.slang_fr_be"284 #: languages.slang_fr_be 285 msgctxt "languages.slang_fr_be" 230 286 msgid "Walloon" 231 287 msgstr "" 232 288 233 #: ulanguages.slang_fy 289 #: languages.slang_fy 290 msgctxt "languages.slang_fy" 234 291 msgid "Frisian" 235 292 msgstr "" 236 293 237 #: ulanguages.slang_ga 294 #: languages.slang_ga 295 msgctxt "languages.slang_ga" 238 296 msgid "Irish" 239 297 msgstr "Irština" 240 298 241 #: ulanguages.slang_gd 299 #: languages.slang_gd 300 msgctxt "languages.slang_gd" 242 301 msgid "Gaelic" 243 302 msgstr "" 244 303 245 #: ulanguages.slang_gl 304 #: languages.slang_gl 305 msgctxt "languages.slang_gl" 246 306 msgid "Gallegan" 247 307 msgstr "" 248 308 249 #: ulanguages.slang_gn 309 #: languages.slang_gn 310 msgctxt "languages.slang_gn" 250 311 msgid "Guarani" 251 312 msgstr "" 252 313 253 #: ulanguages.slang_gu 314 #: languages.slang_gu 315 msgctxt "languages.slang_gu" 254 316 msgid "Gujarati" 255 317 msgstr "" 256 318 257 #: ulanguages.slang_gv 319 #: languages.slang_gv 320 msgctxt "languages.slang_gv" 258 321 msgid "Manx" 259 322 msgstr "" 260 323 261 #: ulanguages.slang_ha 324 #: languages.slang_ha 325 msgctxt "languages.slang_ha" 262 326 msgid "Hausa" 263 327 msgstr "" 264 328 265 #: ulanguages.slang_he 329 #: languages.slang_he 330 msgctxt "languages.slang_he" 266 331 msgid "Hebrew" 267 332 msgstr "Hebrejština" 268 333 269 #: ulanguages.slang_hi 334 #: languages.slang_hi 335 msgctxt "languages.slang_hi" 270 336 msgid "Hindi" 271 337 msgstr "" 272 338 273 #: ulanguages.slang_ho 339 #: languages.slang_ho 340 msgctxt "languages.slang_ho" 274 341 msgid "Hiri Motu" 275 342 msgstr "" 276 343 277 #: ulanguages.slang_hr 344 #: languages.slang_hr 345 msgctxt "languages.slang_hr" 278 346 msgid "Croatian" 279 347 msgstr "Chorvatština" 280 348 281 #: ulanguages.slang_ht 349 #: languages.slang_ht 350 msgctxt "languages.slang_ht" 282 351 msgid "Haitian" 283 352 msgstr "" 284 353 285 #: ulanguages.slang_hu 354 #: languages.slang_hu 355 msgctxt "languages.slang_hu" 286 356 msgid "Hungarian" 287 357 msgstr "Maďarština" 288 358 289 #: ulanguages.slang_hy 359 #: languages.slang_hy 360 msgctxt "languages.slang_hy" 290 361 msgid "Armenian" 291 362 msgstr "Arménština" 292 363 293 #: ulanguages.slang_hz 364 #: languages.slang_hz 365 msgctxt "languages.slang_hz" 294 366 msgid "Herero" 295 367 msgstr "" 296 368 297 #: ulanguages.slang_ia 369 #: languages.slang_ia 370 msgctxt "languages.slang_ia" 298 371 msgid "Interlingua" 299 372 msgstr "" 300 373 301 #: ulanguages.slang_id 374 #: languages.slang_id 375 msgctxt "languages.slang_id" 302 376 msgid "Indonesian" 303 377 msgstr "" 304 378 305 #: ulanguages.slang_ie 379 #: languages.slang_ie 380 msgctxt "languages.slang_ie" 306 381 msgid "Interlingue" 307 382 msgstr "" 308 383 309 #: ulanguages.slang_ig 384 #: languages.slang_ig 385 msgctxt "languages.slang_ig" 310 386 msgid "Igbo" 311 387 msgstr "" 312 388 313 #: ulanguages.slang_ii 389 #: languages.slang_ii 390 msgctxt "languages.slang_ii" 314 391 msgid "Sichuan Yi" 315 392 msgstr "" 316 393 317 #: ulanguages.slang_ik 394 #: languages.slang_ik 395 msgctxt "languages.slang_ik" 318 396 msgid "Inupiaq" 319 397 msgstr "" 320 398 321 #: ulanguages.slang_io 399 #: languages.slang_io 400 msgctxt "languages.slang_io" 322 401 msgid "Ido" 323 402 msgstr "" 324 403 325 #: ulanguages.slang_is 404 #: languages.slang_is 405 msgctxt "languages.slang_is" 326 406 msgid "Icelandic" 327 407 msgstr "Islandština" 328 408 329 #: ulanguages.slang_it 409 #: languages.slang_it 410 msgctxt "languages.slang_it" 330 411 msgid "Italian" 331 412 msgstr "Italština" 332 413 333 #: ulanguages.slang_iu 414 #: languages.slang_iu 415 msgctxt "languages.slang_iu" 334 416 msgid "Inuktitut" 335 417 msgstr "" 336 418 337 #: ulanguages.slang_ja 419 #: languages.slang_ja 420 msgctxt "languages.slang_ja" 338 421 msgid "Japanese" 339 422 msgstr "Japonština" 340 423 341 #: ulanguages.slang_jv 424 #: languages.slang_jv 425 msgctxt "languages.slang_jv" 342 426 msgid "Javanese" 343 427 msgstr "" 344 428 345 #: ulanguages.slang_ka 429 #: languages.slang_ka 430 msgctxt "languages.slang_ka" 346 431 msgid "Georgian" 347 432 msgstr "Gruzínština" 348 433 349 #: ulanguages.slang_kg 434 #: languages.slang_kg 435 msgctxt "languages.slang_kg" 350 436 msgid "Kongo" 351 437 msgstr "Konžština" 352 438 353 #: ulanguages.slang_ki 439 #: languages.slang_ki 440 msgctxt "languages.slang_ki" 354 441 msgid "Kikuyu" 355 442 msgstr "" 356 443 357 #: ulanguages.slang_kj 444 #: languages.slang_kj 445 msgctxt "languages.slang_kj" 358 446 msgid "Kuanyama" 359 447 msgstr "" 360 448 361 #: ulanguages.slang_kk 449 #: languages.slang_kk 450 msgctxt "languages.slang_kk" 362 451 msgid "Kazakh" 363 452 msgstr "" 364 453 365 #: ulanguages.slang_kl 454 #: languages.slang_kl 455 msgctxt "languages.slang_kl" 366 456 msgid "Greenlandic" 367 457 msgstr "Grónština" 368 458 369 #: ulanguages.slang_km 459 #: languages.slang_km 460 msgctxt "languages.slang_km" 370 461 msgid "Khmer" 371 462 msgstr "" 372 463 373 #: ulanguages.slang_kn 464 #: languages.slang_kn 465 msgctxt "languages.slang_kn" 374 466 msgid "Kannada" 375 467 msgstr "Kannadština" 376 468 377 #: ulanguages.slang_ko 469 #: languages.slang_ko 470 msgctxt "languages.slang_ko" 378 471 msgid "Korean" 379 472 msgstr "Korejština" 380 473 381 #: ulanguages.slang_kr 474 #: languages.slang_kr 475 msgctxt "languages.slang_kr" 382 476 msgid "Kanuri" 383 477 msgstr "" 384 478 385 #: ulanguages.slang_ks 479 #: languages.slang_ks 480 msgctxt "languages.slang_ks" 386 481 msgid "Kashmiri" 387 482 msgstr "" 388 483 389 #: ulanguages.slang_ku 484 #: languages.slang_ku 485 msgctxt "languages.slang_ku" 390 486 msgid "Kurdish" 391 487 msgstr "" 392 488 393 #: ulanguages.slang_kv 489 #: languages.slang_kv 490 msgctxt "languages.slang_kv" 394 491 msgid "Komi" 395 492 msgstr "" 396 493 397 #: ulanguages.slang_kw 494 #: languages.slang_kw 495 msgctxt "languages.slang_kw" 398 496 msgid "Cornish" 399 497 msgstr "Kornština" 400 498 401 #: ulanguages.slang_ky 499 #: languages.slang_ky 500 msgctxt "languages.slang_ky" 402 501 msgid "Kirghiz" 403 502 msgstr "" 404 503 405 #: ulanguages.slang_la 504 #: languages.slang_la 505 msgctxt "languages.slang_la" 406 506 msgid "Latin" 407 507 msgstr "Latina" 408 508 409 #: ulanguages.slang_lb 509 #: languages.slang_lb 510 msgctxt "languages.slang_lb" 410 511 msgid "Luxembourgish" 411 512 msgstr "Lucemburština" 412 513 413 #: ulanguages.slang_lg 514 #: languages.slang_lg 515 msgctxt "languages.slang_lg" 414 516 msgid "Ganda" 415 517 msgstr "" 416 518 417 #: ulanguages.slang_li 519 #: languages.slang_li 520 msgctxt "languages.slang_li" 418 521 msgid "Limburgan" 419 522 msgstr "" 420 523 421 #: ulanguages.slang_ln 524 #: languages.slang_ln 525 msgctxt "languages.slang_ln" 422 526 msgid "Lingala" 423 527 msgstr "" 424 528 425 #: ulanguages.slang_lo 529 #: languages.slang_lo 530 msgctxt "languages.slang_lo" 426 531 msgid "Lao" 427 532 msgstr "Laoština" 428 533 429 #: ulanguages.slang_lt 534 #: languages.slang_lt 535 msgctxt "languages.slang_lt" 430 536 msgid "Lithuanian" 431 537 msgstr "Litevština" 432 538 433 #: ulanguages.slang_lu 539 #: languages.slang_lu 540 msgctxt "languages.slang_lu" 434 541 msgid "Luba-Katanga" 435 542 msgstr "" 436 543 437 #: ulanguages.slang_lv 544 #: languages.slang_lv 545 msgctxt "languages.slang_lv" 438 546 msgid "Latvian" 439 547 msgstr "Lotyština" 440 548 441 #: ulanguages.slang_mg 549 #: languages.slang_mg 550 msgctxt "languages.slang_mg" 442 551 msgid "Malagasy" 443 552 msgstr "" 444 553 445 #: ulanguages.slang_mh 554 #: languages.slang_mh 555 msgctxt "languages.slang_mh" 446 556 msgid "Marshallese" 447 557 msgstr "" 448 558 449 #: ulanguages.slang_mi 559 #: languages.slang_mi 560 msgctxt "languages.slang_mi" 450 561 msgid "Maori" 451 562 msgstr "" 452 563 453 #: ulanguages.slang_mk 564 #: languages.slang_mk 565 msgctxt "languages.slang_mk" 454 566 msgid "Macedonian" 455 567 msgstr "Makedonština" 456 568 457 #: ulanguages.slang_ml 569 #: languages.slang_ml 570 msgctxt "languages.slang_ml" 458 571 msgid "Malayalam" 459 572 msgstr "" 460 573 461 #: ulanguages.slang_mn 574 #: languages.slang_mn 575 msgctxt "languages.slang_mn" 462 576 msgid "Mongolian" 463 577 msgstr "Mongolština" 464 578 465 #: ulanguages.slang_mo 579 #: languages.slang_mo 580 msgctxt "languages.slang_mo" 466 581 msgid "Moldavian" 467 582 msgstr "Moldavština" 468 583 469 #: ulanguages.slang_mr 584 #: languages.slang_mr 585 msgctxt "languages.slang_mr" 470 586 msgid "Marathi" 471 587 msgstr "" 472 588 473 #: ulanguages.slang_ms 589 #: languages.slang_ms 590 msgctxt "languages.slang_ms" 474 591 msgid "Malay" 475 592 msgstr "" 476 593 477 #: ulanguages.slang_mt 594 #: languages.slang_mt 595 msgctxt "languages.slang_mt" 478 596 msgid "Maltese" 479 597 msgstr "" 480 598 481 #: ulanguages.slang_my 599 #: languages.slang_my 600 msgctxt "languages.slang_my" 482 601 msgid "Burmese" 483 602 msgstr "" 484 603 485 #: ulanguages.slang_na 604 #: languages.slang_na 605 msgctxt "languages.slang_na" 486 606 msgid "Nauru" 487 607 msgstr "" 488 608 489 #: ulanguages.slang_nb 609 #: languages.slang_nb 610 msgctxt "languages.slang_nb" 490 611 msgid "Norwegian Bokmaal" 491 612 msgstr "" 492 613 493 #: ulanguages.slang_nd 614 #: languages.slang_nd 615 msgctxt "languages.slang_nd" 494 616 msgid "Ndebele, North" 495 617 msgstr "" 496 618 497 #: ulanguages.slang_ne 619 #: languages.slang_ne 620 msgctxt "languages.slang_ne" 498 621 msgid "Nepali" 499 622 msgstr "" 500 623 501 #: ulanguages.slang_ng 624 #: languages.slang_ng 625 msgctxt "languages.slang_ng" 502 626 msgid "Ndonga" 503 627 msgstr "" 504 628 505 #: ulanguages.slang_nl 629 #: languages.slang_nl 630 msgctxt "languages.slang_nl" 506 631 msgid "Dutch" 507 632 msgstr "Němčina" 508 633 509 #: ulanguages.slang_nl_be 634 #: languages.slang_nl_be 635 msgctxt "languages.slang_nl_be" 510 636 msgid "Flemish" 511 637 msgstr "" 512 638 513 #: ulanguages.slang_nn 639 #: languages.slang_nn 640 msgctxt "languages.slang_nn" 514 641 msgid "Norwegian Nynorsk" 515 642 msgstr "" 516 643 517 #: ulanguages.slang_no 644 #: languages.slang_no 645 msgctxt "languages.slang_no" 518 646 msgid "Norwegian" 519 647 msgstr "Norština" 520 648 521 #: ulanguages.slang_nr 649 #: languages.slang_nr 650 msgctxt "languages.slang_nr" 522 651 msgid "Ndebele, South" 523 652 msgstr "" 524 653 525 #: ulanguages.slang_nv 654 #: languages.slang_nv 655 msgctxt "languages.slang_nv" 526 656 msgid "Navajo" 527 657 msgstr "Navažština" 528 658 529 #: ulanguages.slang_ny 659 #: languages.slang_ny 660 msgctxt "languages.slang_ny" 530 661 msgid "Chichewa" 531 662 msgstr "" 532 663 533 #: ulanguages.slang_oc 664 #: languages.slang_oc 665 msgctxt "languages.slang_oc" 534 666 msgid "Occitan" 535 667 msgstr "" 536 668 537 #: ulanguages.slang_oj 669 #: languages.slang_oj 670 msgctxt "languages.slang_oj" 538 671 msgid "Ojibwa" 539 672 msgstr "" 540 673 541 #: ulanguages.slang_om 674 #: languages.slang_om 675 msgctxt "languages.slang_om" 542 676 msgid "Oromo" 543 677 msgstr "" 544 678 545 #: ulanguages.slang_or 679 #: languages.slang_or 680 msgctxt "languages.slang_or" 546 681 msgid "Oriya" 547 682 msgstr "" 548 683 549 #: ulanguages.slang_os 684 #: languages.slang_os 685 msgctxt "languages.slang_os" 550 686 msgid "Ossetian" 551 687 msgstr "" 552 688 553 #: ulanguages.slang_pa 689 #: languages.slang_pa 690 msgctxt "languages.slang_pa" 554 691 msgid "Panjabi" 555 692 msgstr "" 556 693 557 #: ulanguages.slang_pi 694 #: languages.slang_pi 695 msgctxt "languages.slang_pi" 558 696 msgid "Pali" 559 697 msgstr "" 560 698 561 #: ulanguages.slang_pl 699 #: languages.slang_pl 700 msgctxt "languages.slang_pl" 562 701 msgid "Polish" 563 702 msgstr "Polština" 564 703 565 #: ulanguages.slang_ps 704 #: languages.slang_ps 705 msgctxt "languages.slang_ps" 566 706 msgid "Pushto" 567 707 msgstr "" 568 708 569 #: ulanguages.slang_pt 709 #: languages.slang_pt 710 msgctxt "languages.slang_pt" 570 711 msgid "Portuguese" 571 712 msgstr "Portugalština" 572 713 573 #: ulanguages.slang_pt_br 714 #: languages.slang_pt_br 715 msgctxt "languages.slang_pt_br" 574 716 msgid "Brazilian Portuguese" 575 717 msgstr "Brazislká portugalština" 576 718 577 #: ulanguages.slang_qu 719 #: languages.slang_qu 720 msgctxt "languages.slang_qu" 578 721 msgid "Quechua" 579 722 msgstr "" 580 723 581 #: ulanguages.slang_rm 724 #: languages.slang_rm 725 msgctxt "languages.slang_rm" 582 726 msgid "Raeto-Romance" 583 727 msgstr "" 584 728 585 #: ulanguages.slang_rn 729 #: languages.slang_rn 730 msgctxt "languages.slang_rn" 586 731 msgid "Rundi" 587 732 msgstr "" 588 733 589 #: ulanguages.slang_ro 734 #: languages.slang_ro 735 msgctxt "languages.slang_ro" 590 736 msgid "Romanian" 591 737 msgstr "Romština" 592 738 593 #: ulanguages.slang_ru 739 #: languages.slang_ru 740 msgctxt "languages.slang_ru" 594 741 msgid "Russian" 595 742 msgstr "Ruština" 596 743 597 #: ulanguages.slang_rw 744 #: languages.slang_rw 745 msgctxt "languages.slang_rw" 598 746 msgid "Kinyarwanda" 599 747 msgstr "" 600 748 601 #: ulanguages.slang_sa 749 #: languages.slang_sa 750 msgctxt "languages.slang_sa" 602 751 msgid "Sanskrit" 603 752 msgstr "" 604 753 605 #: ulanguages.slang_sc 754 #: languages.slang_sc 755 msgctxt "languages.slang_sc" 606 756 msgid "Sardinian" 607 757 msgstr "" 608 758 609 #: ulanguages.slang_sd 759 #: languages.slang_sd 760 msgctxt "languages.slang_sd" 610 761 msgid "Sindhi" 611 762 msgstr "" 612 763 613 #: ulanguages.slang_se 764 #: languages.slang_se 765 msgctxt "languages.slang_se" 614 766 msgid "Northern Sami" 615 767 msgstr "" 616 768 617 #: ulanguages.slang_sg 769 #: languages.slang_sg 770 msgctxt "languages.slang_sg" 618 771 msgid "Sango" 619 772 msgstr "" 620 773 621 #: ulanguages.slang_si 774 #: languages.slang_si 775 msgctxt "languages.slang_si" 622 776 msgid "Sinhalese" 623 777 msgstr "" 624 778 625 #: ulanguages.slang_sk 779 #: languages.slang_sk 780 msgctxt "languages.slang_sk" 626 781 msgid "Slovak" 627 782 msgstr "Slovenština" 628 783 629 #: ulanguages.slang_sl 784 #: languages.slang_sl 785 msgctxt "languages.slang_sl" 630 786 msgid "Slovenian" 631 787 msgstr "Slovinština" 632 788 633 #: ulanguages.slang_sm 789 #: languages.slang_sm 790 msgctxt "languages.slang_sm" 634 791 msgid "Samoan" 635 792 msgstr "" 636 793 637 #: ulanguages.slang_sn 794 #: languages.slang_sn 795 msgctxt "languages.slang_sn" 638 796 msgid "Shona" 639 797 msgstr "" 640 798 641 #: ulanguages.slang_so 799 #: languages.slang_so 800 msgctxt "languages.slang_so" 642 801 msgid "Somali" 643 802 msgstr "" 644 803 645 #: ulanguages.slang_sq 804 #: languages.slang_sq 805 msgctxt "languages.slang_sq" 646 806 msgid "Albanian" 647 807 msgstr "Albánština" 648 808 649 #: ulanguages.slang_sr 809 #: languages.slang_sr 810 msgctxt "languages.slang_sr" 650 811 msgid "Serbian" 651 812 msgstr "" 652 813 653 #: ulanguages.slang_ss 814 #: languages.slang_ss 815 msgctxt "languages.slang_ss" 654 816 msgid "Swati" 655 817 msgstr "" 656 818 657 #: ulanguages.slang_st 819 #: languages.slang_st 820 msgctxt "languages.slang_st" 658 821 msgid "Sotho, Southern" 659 822 msgstr "" 660 823 661 #: ulanguages.slang_su 824 #: languages.slang_su 825 msgctxt "languages.slang_su" 662 826 msgid "Sundanese" 663 827 msgstr "Sundština" 664 828 665 #: ulanguages.slang_sv 829 #: languages.slang_sv 830 msgctxt "languages.slang_sv" 666 831 msgid "Swedish" 667 832 msgstr "Švédština" 668 833 669 #: ulanguages.slang_sw 834 #: languages.slang_sw 835 msgctxt "languages.slang_sw" 670 836 msgid "Swahili" 671 837 msgstr "" 672 838 673 #: ulanguages.slang_ta 839 #: languages.slang_ta 840 msgctxt "languages.slang_ta" 674 841 msgid "Tamil" 675 842 msgstr "" 676 843 677 #: ulanguages.slang_te 844 #: languages.slang_te 845 msgctxt "languages.slang_te" 678 846 msgid "Telugu" 679 847 msgstr "" 680 848 681 #: ulanguages.slang_tg 849 #: languages.slang_tg 850 msgctxt "languages.slang_tg" 682 851 msgid "Tajik" 683 852 msgstr "" 684 853 685 #: ulanguages.slang_th 854 #: languages.slang_th 855 msgctxt "languages.slang_th" 686 856 msgid "Thai" 687 857 msgstr "" 688 858 689 #: ulanguages.slang_ti 859 #: languages.slang_ti 860 msgctxt "languages.slang_ti" 690 861 msgid "Tigrinya" 691 862 msgstr "" 692 863 693 #: ulanguages.slang_tk 864 #: languages.slang_tk 865 msgctxt "languages.slang_tk" 694 866 msgid "Turkmen" 695 867 msgstr "" 696 868 697 #: ulanguages.slang_tl 869 #: languages.slang_tl 870 msgctxt "languages.slang_tl" 698 871 msgid "Tagalog" 699 872 msgstr "" 700 873 701 #: ulanguages.slang_tn 874 #: languages.slang_tn 875 msgctxt "languages.slang_tn" 702 876 msgid "Tswana" 703 877 msgstr "" 704 878 705 #: ulanguages.slang_to 879 #: languages.slang_to 880 msgctxt "languages.slang_to" 706 881 msgid "Tonga" 707 882 msgstr "" 708 883 709 #: ulanguages.slang_tr 884 #: languages.slang_tr 885 msgctxt "languages.slang_tr" 710 886 msgid "Turkish" 711 887 msgstr "Turečtina" 712 888 713 #: ulanguages.slang_ts 889 #: languages.slang_ts 890 msgctxt "languages.slang_ts" 714 891 msgid "Tsonga" 715 892 msgstr "" 716 893 717 #: ulanguages.slang_tt 894 #: languages.slang_tt 895 msgctxt "languages.slang_tt" 718 896 msgid "Tatar" 719 897 msgstr "Tatarština" 720 898 721 #: ulanguages.slang_tw 899 #: languages.slang_tw 900 msgctxt "languages.slang_tw" 722 901 msgid "Twi" 723 902 msgstr "" 724 903 725 #: ulanguages.slang_ty 904 #: languages.slang_ty 905 msgctxt "languages.slang_ty" 726 906 msgid "Tahitian" 727 907 msgstr "" 728 908 729 #: ulanguages.slang_ug 909 #: languages.slang_ug 910 msgctxt "languages.slang_ug" 730 911 msgid "Uighur" 731 912 msgstr "" 732 913 733 #: ulanguages.slang_uk 914 #: languages.slang_uk 915 msgctxt "languages.slang_uk" 734 916 msgid "Ukrainian" 735 917 msgstr "Ukrajinština" 736 918 737 #: ulanguages.slang_ur 919 #: languages.slang_ur 920 msgctxt "languages.slang_ur" 738 921 msgid "Urdu" 739 922 msgstr "" 740 923 741 #: ulanguages.slang_uz 924 #: languages.slang_uz 925 msgctxt "languages.slang_uz" 742 926 msgid "Uzbek" 743 927 msgstr "" 744 928 745 #: ulanguages.slang_ve 929 #: languages.slang_ve 930 msgctxt "languages.slang_ve" 746 931 msgid "Venda" 747 932 msgstr "" 748 933 749 #: ulanguages.slang_vi 934 #: languages.slang_vi 935 msgctxt "languages.slang_vi" 750 936 msgid "Vietnamese" 751 937 msgstr "Vietnamština" 752 938 753 #: ulanguages.slang_vo 939 #: languages.slang_vo 940 msgctxt "languages.slang_vo" 754 941 msgid "Volapuk" 755 942 msgstr "" 756 943 757 #: ulanguages.slang_wa758 msgctxt " ulanguages.slang_wa"944 #: languages.slang_wa 945 msgctxt "languages.slang_wa" 759 946 msgid "Walloon" 760 947 msgstr "" 761 948 762 #: ulanguages.slang_wo 949 #: languages.slang_wo 950 msgctxt "languages.slang_wo" 763 951 msgid "Wolof" 764 952 msgstr "" 765 953 766 #: ulanguages.slang_xh 954 #: languages.slang_xh 955 msgctxt "languages.slang_xh" 767 956 msgid "Xhosa" 768 957 msgstr "" 769 958 770 #: ulanguages.slang_yi 959 #: languages.slang_yi 960 msgctxt "languages.slang_yi" 771 961 msgid "Yiddish" 772 962 msgstr "" 773 963 774 #: ulanguages.slang_yo 964 #: languages.slang_yo 965 msgctxt "languages.slang_yo" 775 966 msgid "Yoruba" 776 967 msgstr "" 777 968 778 #: ulanguages.slang_za 969 #: languages.slang_za 970 msgctxt "languages.slang_za" 779 971 msgid "Zhuang" 780 972 msgstr "" 781 973 782 #: ulanguages.slang_zh 974 #: languages.slang_zh 975 msgctxt "languages.slang_zh" 783 976 msgid "Chinese" 784 977 msgstr "Čínština" 785 978 786 #: ulanguages.slang_zu 979 #: languages.slang_zh_hans 980 msgid "Simplified Chinese" 981 msgstr "" 982 983 #: languages.slang_zh_hant 984 msgid "Traditional Chinese" 985 msgstr "" 986 987 #: languages.slang_zu 988 msgctxt "languages.slang_zu" 787 989 msgid "Zulu" 788 990 msgstr "Zuluština" -
trunk/Packages/Common/Languages/Languages.pot
r29 r30 2 2 msgstr "Content-Type: text/plain; charset=UTF-8" 3 3 4 #: ulanguages.slangauto4 #: languages.slangauto 5 5 msgid "Automatic" 6 6 msgstr "" 7 7 8 #: ulanguages.slang_aa8 #: languages.slang_aa 9 9 msgid "Afar" 10 10 msgstr "" 11 11 12 #: ulanguages.slang_ab12 #: languages.slang_ab 13 13 msgid "Abkhazian" 14 14 msgstr "" 15 15 16 #: ulanguages.slang_ae16 #: languages.slang_ae 17 17 msgid "Avestan" 18 18 msgstr "" 19 19 20 #: ulanguages.slang_af20 #: languages.slang_af 21 21 msgid "Afrikaans" 22 22 msgstr "" 23 23 24 #: ulanguages.slang_ak24 #: languages.slang_ak 25 25 msgid "Akan" 26 26 msgstr "" 27 27 28 #: ulanguages.slang_am28 #: languages.slang_am 29 29 msgid "Amharic" 30 30 msgstr "" 31 31 32 #: ulanguages.slang_an32 #: languages.slang_an 33 33 msgid "Aragonese" 34 34 msgstr "" 35 35 36 #: ulanguages.slang_ar36 #: languages.slang_ar 37 37 msgid "Arabic" 38 38 msgstr "" 39 39 40 #: ulanguages.slang_as40 #: languages.slang_as 41 41 msgid "Assamese" 42 42 msgstr "" 43 43 44 #: ulanguages.slang_av44 #: languages.slang_av 45 45 msgid "Avaric" 46 46 msgstr "" 47 47 48 #: ulanguages.slang_ay48 #: languages.slang_ay 49 49 msgid "Aymara" 50 50 msgstr "" 51 51 52 #: ulanguages.slang_az52 #: languages.slang_az 53 53 msgid "Azerbaijani" 54 54 msgstr "" 55 55 56 #: ulanguages.slang_ba56 #: languages.slang_ba 57 57 msgid "Bashkir" 58 58 msgstr "" 59 59 60 #: ulanguages.slang_be60 #: languages.slang_be 61 61 msgid "Belarusian" 62 62 msgstr "" 63 63 64 #: ulanguages.slang_bg64 #: languages.slang_bg 65 65 msgid "Bulgarian" 66 66 msgstr "" 67 67 68 #: ulanguages.slang_bh68 #: languages.slang_bh 69 69 msgid "Bihari" 70 70 msgstr "" 71 71 72 #: ulanguages.slang_bi72 #: languages.slang_bi 73 73 msgid "Bislama" 74 74 msgstr "" 75 75 76 #: ulanguages.slang_bm76 #: languages.slang_bm 77 77 msgid "Bambara" 78 78 msgstr "" 79 79 80 #: ulanguages.slang_bn80 #: languages.slang_bn 81 81 msgid "Bengali" 82 82 msgstr "" 83 83 84 #: ulanguages.slang_bo84 #: languages.slang_bo 85 85 msgid "Tibetan" 86 86 msgstr "" 87 87 88 #: ulanguages.slang_br88 #: languages.slang_br 89 89 msgid "Breton" 90 90 msgstr "" 91 91 92 #: ulanguages.slang_bs92 #: languages.slang_bs 93 93 msgid "Bosnian" 94 94 msgstr "" 95 95 96 #: ulanguages.slang_ca96 #: languages.slang_ca 97 97 msgid "Catalan" 98 98 msgstr "" 99 99 100 #: ulanguages.slang_ce100 #: languages.slang_ce 101 101 msgid "Chechen" 102 102 msgstr "" 103 103 104 #: ulanguages.slang_ch104 #: languages.slang_ch 105 105 msgid "Chamorro" 106 106 msgstr "" 107 107 108 #: ulanguages.slang_co108 #: languages.slang_co 109 109 msgid "Corsican" 110 110 msgstr "" 111 111 112 #: ulanguages.slang_cr112 #: languages.slang_cr 113 113 msgid "Cree" 114 114 msgstr "" 115 115 116 #: ulanguages.slang_cs116 #: languages.slang_cs 117 117 msgid "Czech" 118 118 msgstr "" 119 119 120 #: ulanguages.slang_cv120 #: languages.slang_cv 121 121 msgid "Chuvash" 122 122 msgstr "" 123 123 124 #: ulanguages.slang_cy124 #: languages.slang_cy 125 125 msgid "Welsh" 126 126 msgstr "" 127 127 128 #: ulanguages.slang_da128 #: languages.slang_da 129 129 msgid "Danish" 130 130 msgstr "" 131 131 132 #: ulanguages.slang_de132 #: languages.slang_de 133 133 msgid "German" 134 134 msgstr "" 135 135 136 #: ulanguages.slang_de_at136 #: languages.slang_de_at 137 137 msgid "Austrian German" 138 138 msgstr "" 139 139 140 #: ulanguages.slang_de_ch140 #: languages.slang_de_ch 141 141 msgid "Swiss German" 142 142 msgstr "" 143 143 144 #: ulanguages.slang_dv144 #: languages.slang_dv 145 145 msgid "Divehi" 146 146 msgstr "" 147 147 148 #: ulanguages.slang_dz148 #: languages.slang_dz 149 149 msgid "Dzongkha" 150 150 msgstr "" 151 151 152 #: ulanguages.slang_ee152 #: languages.slang_ee 153 153 msgid "Ewe" 154 154 msgstr "" 155 155 156 #: ulanguages.slang_el156 #: languages.slang_el 157 157 msgid "Greek" 158 158 msgstr "" 159 159 160 #: ulanguages.slang_en160 #: languages.slang_en 161 161 msgid "English" 162 162 msgstr "" 163 163 164 #: ulanguages.slang_en_au164 #: languages.slang_en_au 165 165 msgid "Australian English" 166 166 msgstr "" 167 167 168 #: ulanguages.slang_en_ca168 #: languages.slang_en_ca 169 169 msgid "Canadian English" 170 170 msgstr "" 171 171 172 #: ulanguages.slang_en_gb172 #: languages.slang_en_gb 173 173 msgid "British English" 174 174 msgstr "" 175 175 176 #: ulanguages.slang_en_us176 #: languages.slang_en_us 177 177 msgid "American English" 178 178 msgstr "" 179 179 180 #: ulanguages.slang_eo180 #: languages.slang_eo 181 181 msgid "Esperanto" 182 182 msgstr "" 183 183 184 #: ulanguages.slang_es184 #: languages.slang_es 185 185 msgid "Spanish" 186 186 msgstr "" 187 187 188 #: ulanguages.slang_et188 #: languages.slang_et 189 189 msgid "Estonian" 190 190 msgstr "" 191 191 192 #: ulanguages.slang_eu192 #: languages.slang_eu 193 193 msgid "Basque" 194 194 msgstr "" 195 195 196 #: ulanguages.slang_fa196 #: languages.slang_fa 197 197 msgid "Persian" 198 198 msgstr "" 199 199 200 #: ulanguages.slang_ff200 #: languages.slang_ff 201 201 msgid "Fulah" 202 202 msgstr "" 203 203 204 #: ulanguages.slang_fi204 #: languages.slang_fi 205 205 msgid "Finnish" 206 206 msgstr "" 207 207 208 #: ulanguages.slang_fj208 #: languages.slang_fj 209 209 msgid "Fijian" 210 210 msgstr "" 211 211 212 #: ulanguages.slang_fo212 #: languages.slang_fo 213 213 msgid "Faroese" 214 214 msgstr "" 215 215 216 #: ulanguages.slang_fr216 #: languages.slang_fr 217 217 msgid "French" 218 218 msgstr "" 219 219 220 #: ulanguages.slang_fr_be221 msgctxt " ulanguages.slang_fr_be"220 #: languages.slang_fr_be 221 msgctxt "languages.slang_fr_be" 222 222 msgid "Walloon" 223 223 msgstr "" 224 224 225 #: ulanguages.slang_fy225 #: languages.slang_fy 226 226 msgid "Frisian" 227 227 msgstr "" 228 228 229 #: ulanguages.slang_ga229 #: languages.slang_ga 230 230 msgid "Irish" 231 231 msgstr "" 232 232 233 #: ulanguages.slang_gd233 #: languages.slang_gd 234 234 msgid "Gaelic" 235 235 msgstr "" 236 236 237 #: ulanguages.slang_gl237 #: languages.slang_gl 238 238 msgid "Gallegan" 239 239 msgstr "" 240 240 241 #: ulanguages.slang_gn241 #: languages.slang_gn 242 242 msgid "Guarani" 243 243 msgstr "" 244 244 245 #: ulanguages.slang_gu245 #: languages.slang_gu 246 246 msgid "Gujarati" 247 247 msgstr "" 248 248 249 #: ulanguages.slang_gv249 #: languages.slang_gv 250 250 msgid "Manx" 251 251 msgstr "" 252 252 253 #: ulanguages.slang_ha253 #: languages.slang_ha 254 254 msgid "Hausa" 255 255 msgstr "" 256 256 257 #: ulanguages.slang_he257 #: languages.slang_he 258 258 msgid "Hebrew" 259 259 msgstr "" 260 260 261 #: ulanguages.slang_hi261 #: languages.slang_hi 262 262 msgid "Hindi" 263 263 msgstr "" 264 264 265 #: ulanguages.slang_ho265 #: languages.slang_ho 266 266 msgid "Hiri Motu" 267 267 msgstr "" 268 268 269 #: ulanguages.slang_hr269 #: languages.slang_hr 270 270 msgid "Croatian" 271 271 msgstr "" 272 272 273 #: ulanguages.slang_ht273 #: languages.slang_ht 274 274 msgid "Haitian" 275 275 msgstr "" 276 276 277 #: ulanguages.slang_hu277 #: languages.slang_hu 278 278 msgid "Hungarian" 279 279 msgstr "" 280 280 281 #: ulanguages.slang_hy281 #: languages.slang_hy 282 282 msgid "Armenian" 283 283 msgstr "" 284 284 285 #: ulanguages.slang_hz285 #: languages.slang_hz 286 286 msgid "Herero" 287 287 msgstr "" 288 288 289 #: ulanguages.slang_ia289 #: languages.slang_ia 290 290 msgid "Interlingua" 291 291 msgstr "" 292 292 293 #: ulanguages.slang_id293 #: languages.slang_id 294 294 msgid "Indonesian" 295 295 msgstr "" 296 296 297 #: ulanguages.slang_ie297 #: languages.slang_ie 298 298 msgid "Interlingue" 299 299 msgstr "" 300 300 301 #: ulanguages.slang_ig301 #: languages.slang_ig 302 302 msgid "Igbo" 303 303 msgstr "" 304 304 305 #: ulanguages.slang_ii305 #: languages.slang_ii 306 306 msgid "Sichuan Yi" 307 307 msgstr "" 308 308 309 #: ulanguages.slang_ik309 #: languages.slang_ik 310 310 msgid "Inupiaq" 311 311 msgstr "" 312 312 313 #: ulanguages.slang_io313 #: languages.slang_io 314 314 msgid "Ido" 315 315 msgstr "" 316 316 317 #: ulanguages.slang_is317 #: languages.slang_is 318 318 msgid "Icelandic" 319 319 msgstr "" 320 320 321 #: ulanguages.slang_it321 #: languages.slang_it 322 322 msgid "Italian" 323 323 msgstr "" 324 324 325 #: ulanguages.slang_iu325 #: languages.slang_iu 326 326 msgid "Inuktitut" 327 327 msgstr "" 328 328 329 #: ulanguages.slang_ja329 #: languages.slang_ja 330 330 msgid "Japanese" 331 331 msgstr "" 332 332 333 #: ulanguages.slang_jv333 #: languages.slang_jv 334 334 msgid "Javanese" 335 335 msgstr "" 336 336 337 #: ulanguages.slang_ka337 #: languages.slang_ka 338 338 msgid "Georgian" 339 339 msgstr "" 340 340 341 #: ulanguages.slang_kg341 #: languages.slang_kg 342 342 msgid "Kongo" 343 343 msgstr "" 344 344 345 #: ulanguages.slang_ki345 #: languages.slang_ki 346 346 msgid "Kikuyu" 347 347 msgstr "" 348 348 349 #: ulanguages.slang_kj349 #: languages.slang_kj 350 350 msgid "Kuanyama" 351 351 msgstr "" 352 352 353 #: ulanguages.slang_kk353 #: languages.slang_kk 354 354 msgid "Kazakh" 355 355 msgstr "" 356 356 357 #: ulanguages.slang_kl357 #: languages.slang_kl 358 358 msgid "Greenlandic" 359 359 msgstr "" 360 360 361 #: ulanguages.slang_km361 #: languages.slang_km 362 362 msgid "Khmer" 363 363 msgstr "" 364 364 365 #: ulanguages.slang_kn365 #: languages.slang_kn 366 366 msgid "Kannada" 367 367 msgstr "" 368 368 369 #: ulanguages.slang_ko369 #: languages.slang_ko 370 370 msgid "Korean" 371 371 msgstr "" 372 372 373 #: ulanguages.slang_kr373 #: languages.slang_kr 374 374 msgid "Kanuri" 375 375 msgstr "" 376 376 377 #: ulanguages.slang_ks377 #: languages.slang_ks 378 378 msgid "Kashmiri" 379 379 msgstr "" 380 380 381 #: ulanguages.slang_ku381 #: languages.slang_ku 382 382 msgid "Kurdish" 383 383 msgstr "" 384 384 385 #: ulanguages.slang_kv385 #: languages.slang_kv 386 386 msgid "Komi" 387 387 msgstr "" 388 388 389 #: ulanguages.slang_kw389 #: languages.slang_kw 390 390 msgid "Cornish" 391 391 msgstr "" 392 392 393 #: ulanguages.slang_ky393 #: languages.slang_ky 394 394 msgid "Kirghiz" 395 395 msgstr "" 396 396 397 #: ulanguages.slang_la397 #: languages.slang_la 398 398 msgid "Latin" 399 399 msgstr "" 400 400 401 #: ulanguages.slang_lb401 #: languages.slang_lb 402 402 msgid "Luxembourgish" 403 403 msgstr "" 404 404 405 #: ulanguages.slang_lg405 #: languages.slang_lg 406 406 msgid "Ganda" 407 407 msgstr "" 408 408 409 #: ulanguages.slang_li409 #: languages.slang_li 410 410 msgid "Limburgan" 411 411 msgstr "" 412 412 413 #: ulanguages.slang_ln413 #: languages.slang_ln 414 414 msgid "Lingala" 415 415 msgstr "" 416 416 417 #: ulanguages.slang_lo417 #: languages.slang_lo 418 418 msgid "Lao" 419 419 msgstr "" 420 420 421 #: ulanguages.slang_lt421 #: languages.slang_lt 422 422 msgid "Lithuanian" 423 423 msgstr "" 424 424 425 #: ulanguages.slang_lu425 #: languages.slang_lu 426 426 msgid "Luba-Katanga" 427 427 msgstr "" 428 428 429 #: ulanguages.slang_lv429 #: languages.slang_lv 430 430 msgid "Latvian" 431 431 msgstr "" 432 432 433 #: ulanguages.slang_mg433 #: languages.slang_mg 434 434 msgid "Malagasy" 435 435 msgstr "" 436 436 437 #: ulanguages.slang_mh437 #: languages.slang_mh 438 438 msgid "Marshallese" 439 439 msgstr "" 440 440 441 #: ulanguages.slang_mi441 #: languages.slang_mi 442 442 msgid "Maori" 443 443 msgstr "" 444 444 445 #: ulanguages.slang_mk445 #: languages.slang_mk 446 446 msgid "Macedonian" 447 447 msgstr "" 448 448 449 #: ulanguages.slang_ml449 #: languages.slang_ml 450 450 msgid "Malayalam" 451 451 msgstr "" 452 452 453 #: ulanguages.slang_mn453 #: languages.slang_mn 454 454 msgid "Mongolian" 455 455 msgstr "" 456 456 457 #: ulanguages.slang_mo457 #: languages.slang_mo 458 458 msgid "Moldavian" 459 459 msgstr "" 460 460 461 #: ulanguages.slang_mr461 #: languages.slang_mr 462 462 msgid "Marathi" 463 463 msgstr "" 464 464 465 #: ulanguages.slang_ms465 #: languages.slang_ms 466 466 msgid "Malay" 467 467 msgstr "" 468 468 469 #: ulanguages.slang_mt469 #: languages.slang_mt 470 470 msgid "Maltese" 471 471 msgstr "" 472 472 473 #: ulanguages.slang_my473 #: languages.slang_my 474 474 msgid "Burmese" 475 475 msgstr "" 476 476 477 #: ulanguages.slang_na477 #: languages.slang_na 478 478 msgid "Nauru" 479 479 msgstr "" 480 480 481 #: ulanguages.slang_nb481 #: languages.slang_nb 482 482 msgid "Norwegian Bokmaal" 483 483 msgstr "" 484 484 485 #: ulanguages.slang_nd485 #: languages.slang_nd 486 486 msgid "Ndebele, North" 487 487 msgstr "" 488 488 489 #: ulanguages.slang_ne489 #: languages.slang_ne 490 490 msgid "Nepali" 491 491 msgstr "" 492 492 493 #: ulanguages.slang_ng493 #: languages.slang_ng 494 494 msgid "Ndonga" 495 495 msgstr "" 496 496 497 #: ulanguages.slang_nl497 #: languages.slang_nl 498 498 msgid "Dutch" 499 499 msgstr "" 500 500 501 #: ulanguages.slang_nl_be501 #: languages.slang_nl_be 502 502 msgid "Flemish" 503 503 msgstr "" 504 504 505 #: ulanguages.slang_nn505 #: languages.slang_nn 506 506 msgid "Norwegian Nynorsk" 507 507 msgstr "" 508 508 509 #: ulanguages.slang_no509 #: languages.slang_no 510 510 msgid "Norwegian" 511 511 msgstr "" 512 512 513 #: ulanguages.slang_nr513 #: languages.slang_nr 514 514 msgid "Ndebele, South" 515 515 msgstr "" 516 516 517 #: ulanguages.slang_nv517 #: languages.slang_nv 518 518 msgid "Navajo" 519 519 msgstr "" 520 520 521 #: ulanguages.slang_ny521 #: languages.slang_ny 522 522 msgid "Chichewa" 523 523 msgstr "" 524 524 525 #: ulanguages.slang_oc525 #: languages.slang_oc 526 526 msgid "Occitan" 527 527 msgstr "" 528 528 529 #: ulanguages.slang_oj529 #: languages.slang_oj 530 530 msgid "Ojibwa" 531 531 msgstr "" 532 532 533 #: ulanguages.slang_om533 #: languages.slang_om 534 534 msgid "Oromo" 535 535 msgstr "" 536 536 537 #: ulanguages.slang_or537 #: languages.slang_or 538 538 msgid "Oriya" 539 539 msgstr "" 540 540 541 #: ulanguages.slang_os541 #: languages.slang_os 542 542 msgid "Ossetian" 543 543 msgstr "" 544 544 545 #: ulanguages.slang_pa545 #: languages.slang_pa 546 546 msgid "Panjabi" 547 547 msgstr "" 548 548 549 #: ulanguages.slang_pi549 #: languages.slang_pi 550 550 msgid "Pali" 551 551 msgstr "" 552 552 553 #: ulanguages.slang_pl553 #: languages.slang_pl 554 554 msgid "Polish" 555 555 msgstr "" 556 556 557 #: ulanguages.slang_ps557 #: languages.slang_ps 558 558 msgid "Pushto" 559 559 msgstr "" 560 560 561 #: ulanguages.slang_pt561 #: languages.slang_pt 562 562 msgid "Portuguese" 563 563 msgstr "" 564 564 565 #: ulanguages.slang_pt_br565 #: languages.slang_pt_br 566 566 msgid "Brazilian Portuguese" 567 567 msgstr "" 568 568 569 #: ulanguages.slang_qu569 #: languages.slang_qu 570 570 msgid "Quechua" 571 571 msgstr "" 572 572 573 #: ulanguages.slang_rm573 #: languages.slang_rm 574 574 msgid "Raeto-Romance" 575 575 msgstr "" 576 576 577 #: ulanguages.slang_rn577 #: languages.slang_rn 578 578 msgid "Rundi" 579 579 msgstr "" 580 580 581 #: ulanguages.slang_ro581 #: languages.slang_ro 582 582 msgid "Romanian" 583 583 msgstr "" 584 584 585 #: ulanguages.slang_ru585 #: languages.slang_ru 586 586 msgid "Russian" 587 587 msgstr "" 588 588 589 #: ulanguages.slang_rw589 #: languages.slang_rw 590 590 msgid "Kinyarwanda" 591 591 msgstr "" 592 592 593 #: ulanguages.slang_sa593 #: languages.slang_sa 594 594 msgid "Sanskrit" 595 595 msgstr "" 596 596 597 #: ulanguages.slang_sc597 #: languages.slang_sc 598 598 msgid "Sardinian" 599 599 msgstr "" 600 600 601 #: ulanguages.slang_sd601 #: languages.slang_sd 602 602 msgid "Sindhi" 603 603 msgstr "" 604 604 605 #: ulanguages.slang_se605 #: languages.slang_se 606 606 msgid "Northern Sami" 607 607 msgstr "" 608 608 609 #: ulanguages.slang_sg609 #: languages.slang_sg 610 610 msgid "Sango" 611 611 msgstr "" 612 612 613 #: ulanguages.slang_si613 #: languages.slang_si 614 614 msgid "Sinhalese" 615 615 msgstr "" 616 616 617 #: ulanguages.slang_sk617 #: languages.slang_sk 618 618 msgid "Slovak" 619 619 msgstr "" 620 620 621 #: ulanguages.slang_sl621 #: languages.slang_sl 622 622 msgid "Slovenian" 623 623 msgstr "" 624 624 625 #: ulanguages.slang_sm625 #: languages.slang_sm 626 626 msgid "Samoan" 627 627 msgstr "" 628 628 629 #: ulanguages.slang_sn629 #: languages.slang_sn 630 630 msgid "Shona" 631 631 msgstr "" 632 632 633 #: ulanguages.slang_so633 #: languages.slang_so 634 634 msgid "Somali" 635 635 msgstr "" 636 636 637 #: ulanguages.slang_sq637 #: languages.slang_sq 638 638 msgid "Albanian" 639 639 msgstr "" 640 640 641 #: ulanguages.slang_sr641 #: languages.slang_sr 642 642 msgid "Serbian" 643 643 msgstr "" 644 644 645 #: ulanguages.slang_ss645 #: languages.slang_ss 646 646 msgid "Swati" 647 647 msgstr "" 648 648 649 #: ulanguages.slang_st649 #: languages.slang_st 650 650 msgid "Sotho, Southern" 651 651 msgstr "" 652 652 653 #: ulanguages.slang_su653 #: languages.slang_su 654 654 msgid "Sundanese" 655 655 msgstr "" 656 656 657 #: ulanguages.slang_sv657 #: languages.slang_sv 658 658 msgid "Swedish" 659 659 msgstr "" 660 660 661 #: ulanguages.slang_sw661 #: languages.slang_sw 662 662 msgid "Swahili" 663 663 msgstr "" 664 664 665 #: ulanguages.slang_ta665 #: languages.slang_ta 666 666 msgid "Tamil" 667 667 msgstr "" 668 668 669 #: ulanguages.slang_te669 #: languages.slang_te 670 670 msgid "Telugu" 671 671 msgstr "" 672 672 673 #: ulanguages.slang_tg673 #: languages.slang_tg 674 674 msgid "Tajik" 675 675 msgstr "" 676 676 677 #: ulanguages.slang_th677 #: languages.slang_th 678 678 msgid "Thai" 679 679 msgstr "" 680 680 681 #: ulanguages.slang_ti681 #: languages.slang_ti 682 682 msgid "Tigrinya" 683 683 msgstr "" 684 684 685 #: ulanguages.slang_tk685 #: languages.slang_tk 686 686 msgid "Turkmen" 687 687 msgstr "" 688 688 689 #: ulanguages.slang_tl689 #: languages.slang_tl 690 690 msgid "Tagalog" 691 691 msgstr "" 692 692 693 #: ulanguages.slang_tn693 #: languages.slang_tn 694 694 msgid "Tswana" 695 695 msgstr "" 696 696 697 #: ulanguages.slang_to697 #: languages.slang_to 698 698 msgid "Tonga" 699 699 msgstr "" 700 700 701 #: ulanguages.slang_tr701 #: languages.slang_tr 702 702 msgid "Turkish" 703 703 msgstr "" 704 704 705 #: ulanguages.slang_ts705 #: languages.slang_ts 706 706 msgid "Tsonga" 707 707 msgstr "" 708 708 709 #: ulanguages.slang_tt709 #: languages.slang_tt 710 710 msgid "Tatar" 711 711 msgstr "" 712 712 713 #: ulanguages.slang_tw713 #: languages.slang_tw 714 714 msgid "Twi" 715 715 msgstr "" 716 716 717 #: ulanguages.slang_ty717 #: languages.slang_ty 718 718 msgid "Tahitian" 719 719 msgstr "" 720 720 721 #: ulanguages.slang_ug721 #: languages.slang_ug 722 722 msgid "Uighur" 723 723 msgstr "" 724 724 725 #: ulanguages.slang_uk725 #: languages.slang_uk 726 726 msgid "Ukrainian" 727 727 msgstr "" 728 728 729 #: ulanguages.slang_ur729 #: languages.slang_ur 730 730 msgid "Urdu" 731 731 msgstr "" 732 732 733 #: ulanguages.slang_uz733 #: languages.slang_uz 734 734 msgid "Uzbek" 735 735 msgstr "" 736 736 737 #: ulanguages.slang_ve737 #: languages.slang_ve 738 738 msgid "Venda" 739 739 msgstr "" 740 740 741 #: ulanguages.slang_vi741 #: languages.slang_vi 742 742 msgid "Vietnamese" 743 743 msgstr "" 744 744 745 #: ulanguages.slang_vo745 #: languages.slang_vo 746 746 msgid "Volapuk" 747 747 msgstr "" 748 748 749 #: ulanguages.slang_wa750 msgctxt " ulanguages.slang_wa"749 #: languages.slang_wa 750 msgctxt "languages.slang_wa" 751 751 msgid "Walloon" 752 752 msgstr "" 753 753 754 #: ulanguages.slang_wo754 #: languages.slang_wo 755 755 msgid "Wolof" 756 756 msgstr "" 757 757 758 #: ulanguages.slang_xh758 #: languages.slang_xh 759 759 msgid "Xhosa" 760 760 msgstr "" 761 761 762 #: ulanguages.slang_yi762 #: languages.slang_yi 763 763 msgid "Yiddish" 764 764 msgstr "" 765 765 766 #: ulanguages.slang_yo766 #: languages.slang_yo 767 767 msgid "Yoruba" 768 768 msgstr "" 769 769 770 #: ulanguages.slang_za770 #: languages.slang_za 771 771 msgid "Zhuang" 772 772 msgstr "" 773 773 774 #: ulanguages.slang_zh774 #: languages.slang_zh 775 775 msgid "Chinese" 776 776 msgstr "" 777 777 778 #: ulanguages.slang_zu 778 #: languages.slang_zh_hans 779 msgid "Simplified Chinese" 780 msgstr "" 781 782 #: languages.slang_zh_hant 783 msgid "Traditional Chinese" 784 msgstr "" 785 786 #: languages.slang_zu 779 787 msgid "Zulu" 780 788 msgstr "" -
trunk/Packages/Common/Languages/Pool.cs.po
r29 r30 1 1 msgid "" 2 2 msgstr "" 3 "Content-Type: text/plain; charset=UTF-8\n"4 3 "Project-Id-Version: \n" 5 4 "POT-Creation-Date: \n" … … 7 6 "Last-Translator: Chronos <robie@centrum.cz>\n" 8 7 "Language-Team: \n" 8 "Language: cs\n" 9 9 "MIME-Version: 1.0\n" 10 "Content-Type: text/plain; charset=UTF-8\n" 10 11 "Content-Transfer-Encoding: 8bit\n" 12 "X-Generator: Poedit 3.0.1\n" 11 13 12 #: upool.sobjectpoolempty 14 #: pool.sobjectpoolempty 15 msgctxt "pool.sobjectpoolempty" 13 16 msgid "Object pool is empty" 14 17 msgstr "Zásobník objektů je prázdný" 15 18 16 #: upool.sreleaseerror 19 #: pool.sreleaseerror 20 msgctxt "pool.sreleaseerror" 17 21 msgid "Unknown object for release from pool" 18 22 msgstr "Neznýmý objekt pro uvolnění ze zásobníku" -
trunk/Packages/Common/Languages/Pool.pot
r29 r30 2 2 msgstr "Content-Type: text/plain; charset=UTF-8" 3 3 4 #: upool.sobjectpoolempty4 #: pool.sobjectpoolempty 5 5 msgid "Object pool is empty" 6 6 msgstr "" 7 7 8 #: upool.sreleaseerror8 #: pool.sreleaseerror 9 9 msgid "Unknown object for release from pool" 10 10 msgstr "" -
trunk/Packages/Common/Languages/ResetableThread.cs.po
r29 r30 1 1 msgid "" 2 2 msgstr "" 3 "Content-Type: text/plain; charset=UTF-8\n"4 3 "Project-Id-Version: \n" 5 4 "POT-Creation-Date: \n" … … 7 6 "Last-Translator: Chronos <robie@centrum.cz>\n" 8 7 "Language-Team: \n" 8 "Language: cs\n" 9 9 "MIME-Version: 1.0\n" 10 "Content-Type: text/plain; charset=UTF-8\n" 10 11 "Content-Transfer-Encoding: 8bit\n" 12 "X-Generator: Poedit 3.0.1\n" 11 13 12 #: uresetablethread.swaiterror 14 #: resetablethread.swaiterror 15 msgctxt "resetablethread.swaiterror" 13 16 msgid "WaitFor error" 14 17 msgstr "Chyba WaitFor" -
trunk/Packages/Common/Languages/ResetableThread.pot
r29 r30 2 2 msgstr "Content-Type: text/plain; charset=UTF-8" 3 3 4 #: uresetablethread.swaiterror4 #: resetablethread.swaiterror 5 5 msgid "WaitFor error" 6 6 msgstr "" -
trunk/Packages/Common/Languages/ScaleDPI.cs.po
r29 r30 1 1 msgid "" 2 2 msgstr "" 3 "Content-Type: text/plain; charset=UTF-8\n"4 3 "Project-Id-Version: \n" 5 4 "POT-Creation-Date: \n" … … 7 6 "Last-Translator: \n" 8 7 "Language-Team: \n" 8 "Language: cs\n" 9 9 "MIME-Version: 1.0\n" 10 "Content-Type: text/plain; charset=UTF-8\n" 10 11 "Content-Transfer-Encoding: 8bit\n" 11 "Language: cs\n" 12 "X-Generator: Poedit 1.8.9\n" 12 "X-Generator: Poedit 3.0.1\n" 13 13 14 #: uscaledpi.swrongdpi14 #: scaledpi.swrongdpi 15 15 #, object-pascal-format 16 msgctxt "scaledpi.swrongdpi" 16 17 msgid "Wrong DPI [%d,%d]" 17 18 msgstr "Chybné DPI [%d,%d]" -
trunk/Packages/Common/Languages/ScaleDPI.pot
r29 r30 2 2 msgstr "Content-Type: text/plain; charset=UTF-8" 3 3 4 #: uscaledpi.swrongdpi4 #: scaledpi.swrongdpi 5 5 #, object-pascal-format 6 6 msgid "Wrong DPI [%d,%d]" -
trunk/Packages/Common/Languages/TestCase.cs.po
r29 r30 12 12 "X-Generator: Poedit 3.0.1\n" 13 13 14 #: utestcase.sfailed 14 #: testcase.sfailed 15 msgctxt "testcase.sfailed" 15 16 msgid "Failed" 16 17 msgstr "Selhalo" 17 18 18 #: utestcase.snone 19 #: testcase.snone 20 msgctxt "testcase.snone" 19 21 msgid "None" 20 22 msgstr "Žádný" 21 23 22 #: utestcase.spassed 24 #: testcase.spassed 25 msgctxt "testcase.spassed" 23 26 msgid "Passed" 24 27 msgstr "Prošlo" 28 -
trunk/Packages/Common/Languages/TestCase.pot
r29 r30 2 2 msgstr "Content-Type: text/plain; charset=UTF-8" 3 3 4 #: utestcase.sfailed4 #: testcase.sfailed 5 5 msgid "Failed" 6 6 msgstr "" 7 7 8 #: utestcase.snone8 #: testcase.snone 9 9 msgid "None" 10 10 msgstr "" 11 11 12 #: utestcase.spassed12 #: testcase.spassed 13 13 msgid "Passed" 14 14 msgstr "" -
trunk/Packages/Common/Languages/Threading.cs.po
r29 r30 1 1 msgid "" 2 2 msgstr "" 3 "Content-Type: text/plain; charset=UTF-8\n"4 3 "Project-Id-Version: \n" 5 4 "POT-Creation-Date: \n" … … 7 6 "Last-Translator: Chronos <robie@centrum.cz>\n" 8 7 "Language-Team: \n" 8 "Language: cs\n" 9 9 "MIME-Version: 1.0\n" 10 "Content-Type: text/plain; charset=UTF-8\n" 10 11 "Content-Transfer-Encoding: 8bit\n" 12 "X-Generator: Poedit 3.0.1\n" 11 13 12 #: uthreading.scurrentthreadnotfound14 #: threading.scurrentthreadnotfound 13 15 #, object-pascal-format 16 msgctxt "threading.scurrentthreadnotfound" 14 17 msgid "Current thread ID %d not found in virtual thread list." 15 18 msgstr "Aktuální vlákno ID %d nenalezeno v seznamu virtuálních vláken." -
trunk/Packages/Common/Languages/Threading.pot
r29 r30 2 2 msgstr "Content-Type: text/plain; charset=UTF-8" 3 3 4 #: uthreading.scurrentthreadnotfound4 #: threading.scurrentthreadnotfound 5 5 #, object-pascal-format 6 6 msgid "Current thread ID %d not found in virtual thread list." -
trunk/Packages/Common/LastOpenedList.pas
r29 r30 1 unit ULastOpenedList;1 unit LastOpenedList; 2 2 3 3 interface 4 4 5 5 uses 6 Classes, SysUtils, Registry, URegistry, Menus, XMLConf, DOM;6 Classes, SysUtils, Registry, RegistryEx, Menus, XMLConf, DOM; 7 7 8 8 type … … 194 194 195 195 end. 196 -
trunk/Packages/Common/ListViewSort.pas
r29 r30 1 unit UListViewSort;1 unit ListViewSort; 2 2 3 3 // Date: 2019-05-17 … … 136 136 constructor TListViewEx.Create(TheOwner: TComponent); 137 137 begin 138 inherited Create(TheOwner);138 inherited; 139 139 Filter := TListViewFilter.Create(Self); 140 140 Filter.Parent := Self; … … 172 172 constructor TListViewFilter.Create(AOwner: TComponent); 173 173 begin 174 inherited Create(AOwner);174 inherited; 175 175 FStringGrid1 := TStringGrid.Create(Self); 176 176 FStringGrid1.Align := alClient; -
trunk/Packages/Common/Memory.pas
r29 r30 1 unit UMemory;1 unit Memory; 2 2 3 3 interface … … 120 120 121 121 end. 122 -
trunk/Packages/Common/MetaCanvas.pas
r29 r30 1 unit UMetaCanvas;1 unit MetaCanvas; 2 2 3 3 interface … … 63 63 64 64 TCanvasPolygon = class(TCanvasObject) 65 Pen: TPen; 66 Brush: TBrush; 67 Points: array of TPoint; 68 procedure Paint(Canvas: TCanvas); override; 69 procedure Zoom(Factor: Double); override; 70 procedure Move(Delta: TPoint); override; 71 constructor Create; 72 destructor Destroy; override; 73 end; 74 75 { TCanvasPolyline } 76 77 TCanvasPolyline = class(TCanvasObject) 78 Pen: TPen; 79 Brush: TBrush; 80 Points: array of TPoint; 81 procedure Paint(Canvas: TCanvas); override; 82 procedure Zoom(Factor: Double); override; 83 procedure Move(Delta: TPoint); override; 84 constructor Create; 85 destructor Destroy; override; 86 end; 87 88 { TCanvasPolyBezier } 89 90 TCanvasPolyBezier = class(TCanvasObject) 65 91 Pen: TPen; 66 92 Brush: TBrush; … … 133 159 procedure DoMoveTo(X, Y: Integer); override; 134 160 procedure DoLineTo(X, Y: Integer); override; 161 procedure DoPolyline(const Points: array of TPoint); override; 162 procedure DoPolyBezier(Points: PPoint; NumPts: Integer; 163 Filled: Boolean = False; Continuous: Boolean = False); override; 135 164 public 136 165 Objects: TCanvasObjects; … … 141 170 procedure TextOut(X,Y: Integer; const Text: String); override; 142 171 procedure Polygon(Points: PPoint; NumPts: Integer; Winding: Boolean = False); override; 172 procedure Polyline(Points: PPoint; NumPts: Integer); override; 173 procedure PolyBezier(Points: PPoint; NumPts: Integer; 174 Filled: Boolean = False; Continuous: Boolean = True); override; 143 175 procedure Ellipse(x1, y1, x2, y2: Integer); override; 144 176 procedure StretchDraw(const DestRect: TRect; SrcGraphic: TGraphic); override; … … 159 191 160 192 uses 161 UGeometric, LCLIntf; 193 Geometric, LCLIntf; 194 195 { TCanvasPolyBezier } 196 197 procedure TCanvasPolyBezier.Paint(Canvas: TCanvas); 198 begin 199 Canvas.Pen.Assign(Pen); 200 Canvas.Brush.Assign(Brush); 201 Canvas.PolyBezier(Points); 202 end; 203 204 procedure TCanvasPolyBezier.Zoom(Factor: Double); 205 var 206 I: Integer; 207 begin 208 for I := 0 to High(Points) do 209 Points[I] := Point(Trunc(Points[I].X * Factor), 210 Trunc(Points[I].Y * Factor)); 211 Pen.Width := Trunc(Pen.Width * Factor); 212 end; 213 214 procedure TCanvasPolyBezier.Move(Delta: TPoint); 215 var 216 I: Integer; 217 begin 218 for I := 0 to High(Points) do 219 Points[I] := AddPoint(Points[I], Delta); 220 end; 221 222 constructor TCanvasPolyBezier.Create; 223 begin 224 Pen := TPen.Create; 225 Brush := TBrush.Create; 226 end; 227 228 destructor TCanvasPolyBezier.Destroy; 229 begin 230 FreeAndNil(Brush); 231 FreeAndNil(Pen); 232 inherited; 233 end; 234 235 { TCanvasPolyline } 236 237 procedure TCanvasPolyline.Paint(Canvas: TCanvas); 238 begin 239 Canvas.Pen.Assign(Pen); 240 Canvas.Brush.Assign(Brush); 241 Canvas.Polyline(Points); 242 end; 243 244 procedure TCanvasPolyline.Zoom(Factor: Double); 245 var 246 I: Integer; 247 begin 248 for I := 0 to High(Points) do 249 Points[I] := Point(Trunc(Points[I].X * Factor), 250 Trunc(Points[I].Y * Factor)); 251 Pen.Width := Trunc(Pen.Width * Factor); 252 end; 253 254 procedure TCanvasPolyline.Move(Delta: TPoint); 255 var 256 I: Integer; 257 begin 258 for I := 0 to High(Points) do 259 Points[I] := AddPoint(Points[I], Delta); 260 end; 261 262 constructor TCanvasPolyline.Create; 263 begin 264 Pen := TPen.Create; 265 Brush := TBrush.Create; 266 end; 267 268 destructor TCanvasPolyline.Destroy; 269 begin 270 FreeAndNil(Brush); 271 FreeAndNil(Pen); 272 inherited; 273 end; 162 274 163 275 { TCanvasPie } … … 304 416 destructor TCanvasPolygon.Destroy; 305 417 begin 306 Brush.Free;307 Pen.Free;418 FreeAndNil(Brush); 419 FreeAndNil(Pen); 308 420 inherited; 309 421 end; … … 511 623 APoints[I] := Points[I]; 512 624 DoPolygon(APoints); 625 end; 626 627 procedure TMetaCanvas.Polyline(Points: PPoint; NumPts: Integer); 628 var 629 APoints: array of TPoint; 630 I: Integer; 631 begin 632 APoints := nil; 633 SetLength(APoints, NumPts); 634 for I := 0 to High(APoints) do 635 APoints[I] := Points[I]; 636 DoPolyline(APoints); 637 end; 638 639 procedure TMetaCanvas.PolyBezier(Points: PPoint; NumPts: Integer; 640 Filled: Boolean; Continuous: Boolean); 641 begin 642 DoPolyBezier(Points, NumPts, Filled, Continuous); 513 643 end; 514 644 … … 580 710 end; 581 711 712 procedure TMetaCanvas.DoPolyline(const Points: array of TPoint); 713 var 714 NewObj: TCanvasPolyline; 715 I: Integer; 716 begin 717 NewObj := TCanvasPolyline.Create; 718 NewObj.Brush.Assign(Brush); 719 NewObj.Pen.Assign(Pen); 720 SetLength(NewObj.Points, Length(Points)); 721 for I := 0 to High(Points) do 722 NewObj.Points[I] := Points[I]; 723 Objects.Add(NewObj); 724 end; 725 726 procedure TMetaCanvas.DoPolyBezier(Points: PPoint; NumPts: Integer; 727 Filled: Boolean; Continuous: Boolean); 728 var 729 NewObj: TCanvasPolyBezier; 730 I: Integer; 731 begin 732 NewObj := TCanvasPolyBezier.Create; 733 NewObj.Brush.Assign(Brush); 734 NewObj.Pen.Assign(Pen); 735 SetLength(NewObj.Points, NumPts); 736 for I := 0 to High(NewObj.Points) do 737 NewObj.Points[I] := Points[I]; 738 Objects.Add(NewObj); 739 end; 740 582 741 procedure TMetaCanvas.FillRect(const ARect: TRect); 583 742 begin … … 664 823 665 824 end. 666 -
trunk/Packages/Common/PersistentForm.pas
r29 r30 1 unit UPersistentForm; 2 3 // Date: 2020-11-26 1 unit PersistentForm; 4 2 5 3 interface 6 4 7 5 uses 8 Classes, SysUtils, Forms, URegistry, LCLIntf, Registry, Controls, ComCtrls,6 Classes, SysUtils, Forms, RegistryEx, LCLIntf, Registry, Controls, ComCtrls, 9 7 ExtCtrls, LCLType; 10 8 … … 21 19 procedure SaveControl(Control: TControl); 22 20 public 23 FormNormalSize: TRect;24 21 FormRestoredSize: TRect; 25 22 FormWindowState: TWindowState; … … 155 152 RootKey := RegistryContext.RootKey; 156 153 OpenKey(RegistryContext.Key + '\Forms\' + Form.Name, True); 157 // Normal size 158 FormNormalSize.Left := ReadIntegerWithDefault('NormalLeft', FormNormalSize.Left); 159 FormNormalSize.Top := ReadIntegerWithDefault('NormalTop', FormNormalSize.Top); 160 FormNormalSize.Right := ReadIntegerWithDefault('NormalWidth', FormNormalSize.Right - FormNormalSize.Left) 161 + FormNormalSize.Left; 162 FormNormalSize.Bottom := ReadIntegerWithDefault('NormalHeight', FormNormalSize.Bottom - FormNormalSize.Top) 163 + FormNormalSize.Top; 154 164 155 // Restored size 165 156 FormRestoredSize.Left := ReadIntegerWithDefault('RestoredLeft', FormRestoredSize.Left); … … 169 160 FormRestoredSize.Bottom := ReadIntegerWithDefault('RestoredHeight', FormRestoredSize.Bottom - FormRestoredSize.Top) 170 161 + FormRestoredSize.Top; 162 171 163 // Other state 172 164 FormWindowState := TWindowState(ReadIntegerWithDefault('WindowState', Integer(FormWindowState))); … … 183 175 RootKey := RegistryContext.RootKey; 184 176 OpenKey(RegistryContext.Key + '\Forms\' + Form.Name, True); 185 // Normal state 186 WriteInteger('NormalWidth', FormNormalSize.Right - FormNormalSize.Left); 187 WriteInteger('NormalHeight', FormNormalSize.Bottom - FormNormalSize.Top); 188 WriteInteger('NormalTop', FormNormalSize.Top); 189 WriteInteger('NormalLeft', FormNormalSize.Left); 190 // Restored state 177 178 // Restored size 191 179 WriteInteger('RestoredWidth', FormRestoredSize.Right - FormRestoredSize.Left); 192 180 WriteInteger('RestoredHeight', FormRestoredSize.Bottom - FormRestoredSize.Top); 193 181 WriteInteger('RestoredTop', FormRestoredSize.Top); 194 182 WriteInteger('RestoredLeft', FormRestoredSize.Left); 183 195 184 // Other state 196 185 WriteInteger('WindowState', Integer(FormWindowState)); … … 257 246 begin 258 247 Self.Form := Form; 248 259 249 // Set default 260 FormNormalSize := Bounds((Screen.Width - Form.Width) div 2,261 (Screen.Height - Form.Height) div 2, Form.Width, Form.Height);262 250 FormRestoredSize := Bounds((Screen.Width - Form.Width) div 2, 263 251 (Screen.Height - Form.Height) div 2, Form.Width, Form.Height); … … 267 255 LoadFromRegistry(RegistryContext); 268 256 269 if not EqualRect(FormNormalSize, FormRestoredSize) or 270 DefaultMaximized then begin 257 if (FormWindowState = wsMaximized) or DefaultMaximized then begin 271 258 // Restore to maximized state 272 259 Form.WindowState := wsNormal; … … 277 264 // Restore to normal state 278 265 Form.WindowState := wsNormal; 279 if FEntireVisible then Form NormalSize := CheckEntireVisible(FormNormalSize)266 if FEntireVisible then FormRestoredSize := CheckEntireVisible(FormRestoredSize) 280 267 else if FMinVisiblePart > 0 then 281 FormNormalSize := CheckPartVisible(FormNormalSize, FMinVisiblePart);282 if not EqualRect(Form NormalSize, Form.BoundsRect) then283 Form.BoundsRect := Form NormalSize;268 FormRestoredSize := CheckPartVisible(FormRestoredSize, FMinVisiblePart); 269 if not EqualRect(FormRestoredSize, Form.BoundsRect) then 270 Form.BoundsRect := FormRestoredSize; 284 271 end; 285 272 if FormFullScreen then SetFullScreen(True); … … 290 277 begin 291 278 Self.Form := Form; 292 FormNormalSize := Bounds(Form.Left, Form.Top, Form.Width, Form.Height); 293 if not FormFullScreen then 294 FormRestoredSize := Bounds(Form.RestoredLeft, Form.RestoredTop, Form.RestoredWidth, 295 Form.RestoredHeight); 296 FormWindowState := Form.WindowState; 279 if not FormFullScreen then begin 280 FormWindowState := Form.WindowState; 281 if FormWindowState = wsMaximized then begin 282 FormRestoredSize := Bounds(Form.RestoredLeft, Form.RestoredTop, Form.RestoredWidth, 283 Form.RestoredHeight); 284 end else 285 if FormWindowState = wsNormal then begin 286 FormRestoredSize := Bounds(Form.Left, Form.Top, Form.Width, Form.Height); 287 end; 288 end; 297 289 SaveToRegistry(RegistryContext); 298 290 SaveControl(Form); … … 312 304 if State then begin 313 305 FormFullScreen := True; 314 FormNormalSize := Form.BoundsRect; 315 FormRestoredSize := Bounds(Form.RestoredLeft, Form.RestoredTop, Form.RestoredWidth, 316 Form.RestoredHeight); 306 if Form.WindowState = wsMaximized then begin 307 FormRestoredSize := Bounds(Form.RestoredLeft, Form.RestoredTop, Form.RestoredWidth, 308 Form.RestoredHeight); 309 end else 310 if Form.WindowState = wsNormal then begin 311 FormRestoredSize := Bounds(Form.Left, Form.Top, Form.Width, Form.Height); 312 end; 317 313 FormWindowState := Form.WindowState; 314 Form.WindowState := wsMaximized; 315 Form.WindowState := wsNormal; 318 316 ShowWindow(Form.Handle, SW_SHOWFULLSCREEN); 319 317 {$IFDEF WINDOWS} … … 327 325 ShowWindow(Form.Handle, SW_SHOWNORMAL); 328 326 if FormWindowState = wsNormal then begin 329 Form.BoundsRect := FormNormalSize; 327 Form.WindowState := wsNormal; 328 Form.BoundsRect := FormRestoredSize; 330 329 end else 331 330 if FormWindowState = wsMaximized then begin … … 337 336 338 337 end. 339 -
trunk/Packages/Common/PixelPointer.pas
r29 r30 1 unit UPixelPointer;1 unit PixelPointer; 2 2 3 3 interface 4 4 5 5 uses 6 Classes, SysUtils, Graphics;6 Math, Classes, SysUtils, Graphics; 7 7 8 8 type 9 9 TColor32 = type Cardinal; 10 10 TColor32Component = (ccBlue, ccGreen, ccRed, ccAlpha); 11 TColor32Planes = array[0..3] of Byte; 11 12 12 13 { TPixel32 } … … 14 15 TPixel32 = packed record 15 16 private 16 procedure SetRGB(AValue: Cardinal); 17 function GetRGB: Cardinal; 17 procedure SetRGB(AValue: Cardinal); inline; 18 function GetRGB: Cardinal; inline; 18 19 public 20 class function CreateRGB(R, G, B: Byte): TPixel32; static; 21 class function CreateRGBA(R, G, B, A: Byte): TPixel32; static; 19 22 property RGB: Cardinal read GetRGB write SetRGB; 20 23 case Integer of 21 24 0: (B, G, R, A: Byte); 22 25 1: (ARGB: TColor32); 23 2: (Planes: array[0..3] of Byte);26 2: (Planes: TColor32Planes); 24 27 3: (Components: array[TColor32Component] of Byte); 25 28 end; … … 29 32 30 33 TPixelPointer = record 34 private 35 function GetPixelARGB: TColor32; inline; 36 function GetPixelB: Byte; inline; 37 function GetPixelG: Byte; inline; 38 function GetPixelPlane(Index: Byte): Byte; inline; 39 function GetPixelR: Byte; inline; 40 function GetPixelA: Byte; inline; 41 function GetPixelPlanes: TColor32Planes; 42 function GetPixelRGB: Cardinal; inline; 43 procedure SetPixelARGB(Value: TColor32); inline; 44 procedure SetPixelB(Value: Byte); inline; 45 procedure SetPixelG(Value: Byte); inline; 46 procedure SetPixelPlane(Index: Byte; AValue: Byte); inline; 47 procedure SetPixelR(Value: Byte); inline; 48 procedure SetPixelA(Value: Byte); inline; 49 procedure SetPixelRGB(Value: Cardinal); inline; 50 public 31 51 Base: PPixel32; 32 52 Pixel: PPixel32; … … 35 55 BytesPerPixel: Integer; 36 56 BytesPerLine: Integer; 57 Data: PPixel32; 58 Width: Integer; 59 Height: Integer; 37 60 procedure NextLine; inline; // Move pointer to start of next line 38 61 procedure PreviousLine; inline; // Move pointer to start of previous line … … 41 64 procedure SetXY(X, Y: Integer); inline; // Set pixel position relative to base 42 65 procedure SetX(X: Integer); inline; // Set horizontal pixel position relative to base 66 procedure CheckRange; inline; // Check if current pixel position is not out of range 67 function PosValid: Boolean; 68 class function Create(Bitmap: TRasterImage; BaseX: Integer = 0; BaseY: Integer = 0): TPixelPointer; static; 69 property PixelARGB: TColor32 read GetPixelARGB write SetPixelARGB; 70 property PixelRGB: Cardinal read GetPixelRGB write SetPixelRGB; 71 property PixelB: Byte read GetPixelB write SetPixelB; 72 property PixelG: Byte read GetPixelG write SetPixelG; 73 property PixelR: Byte read GetPixelR write SetPixelR; 74 property PixelA: Byte read GetPixelA write SetPixelA; 75 property PixelPlane[Index: Byte]: Byte read GetPixelPlane write SetPixelPlane; 43 76 end; 44 77 PPixelPointer = ^TPixelPointer; 45 78 46 function PixelPointer(Bitmap: TRasterImage; BaseX: Integer = 0; BaseY: Integer = 0): TPixelPointer; inline;47 79 function SwapRedBlue(Color: TColor32): TColor32; 48 80 procedure BitmapCopyRect(DstBitmap: TRasterImage; DstRect: TRect; SrcBitmap: TRasterImage; SrcPos: TPoint); … … 63 95 implementation 64 96 97 resourcestring 98 SOutOfRange = 'Pixel pointer out of range [X: %d, Y: %d, Width: %d, Height: %d]'; 99 SWrongBitmapSize = 'Wrong bitmap size [width: %d, height: %d]'; 100 65 101 { TPixel32 } 66 102 … … 70 106 end; 71 107 108 class function TPixel32.CreateRGB(R, G, B: Byte): TPixel32; 109 begin 110 Result.R := R; 111 Result.G := G; 112 Result.B := B; 113 Result.A := 0; 114 end; 115 116 class function TPixel32.CreateRGBA(R, G, B, A: Byte): TPixel32; 117 begin 118 Result.R := R; 119 Result.G := G; 120 Result.B := B; 121 Result.A := A; 122 end; 123 72 124 procedure TPixel32.SetRGB(AValue: Cardinal); 73 125 begin 74 R := (AValue shr 16) and $ff; 75 G := (AValue shr 8) and $ff; 76 B := (AValue shr 0) and $ff; 126 ARGB := (ARGB and $ff000000) or (AValue and $ffffff); 77 127 end; 78 128 … … 112 162 end; 113 163 164 procedure TPixelPointer.CheckRange; 165 {$IFOPT R+} 166 var 167 X: Integer; 168 Y: Integer; 169 {$ENDIF} 170 begin 171 {$IFOPT R+} 172 if (PByte(Pixel) < PByte(Data)) or 173 (PByte(Pixel) >= PByte(Data) + Height * BytesPerLine) then begin 174 X := PByte(Pixel) - PByte(Data); 175 Y := Floor(X / BytesPerLine); 176 X := X - Y * BytesPerLine; 177 X := Floor(X / BytesPerPixel); 178 raise Exception.Create(Format(SOutOfRange, [X, Y, Width, Height])); 179 end; 180 {$ENDIF} 181 end; 182 183 function TPixelPointer.PosValid: Boolean; 184 begin 185 Result := not ((PByte(Pixel) < PByte(Data)) or 186 (PByte(Pixel) >= PByte(Data) + Height * BytesPerLine)); 187 end; 188 189 function TPixelPointer.GetPixelPlanes: TColor32Planes; 190 begin 191 CheckRange; 192 Result := Pixel^.Planes; 193 end; 194 195 function TPixelPointer.GetPixelRGB: Cardinal; 196 begin 197 CheckRange; 198 Result := Pixel^.RGB; 199 end; 200 201 procedure TPixelPointer.SetPixelARGB(Value: TColor32); 202 begin 203 CheckRange; 204 Pixel^.ARGB := Value; 205 end; 206 207 procedure TPixelPointer.SetPixelB(Value: Byte); 208 begin 209 CheckRange; 210 Pixel^.B := Value; 211 end; 212 213 procedure TPixelPointer.SetPixelG(Value: Byte); 214 begin 215 CheckRange; 216 Pixel^.G := Value; 217 end; 218 219 procedure TPixelPointer.SetPixelPlane(Index: Byte; AValue: Byte); 220 begin 221 CheckRange; 222 Pixel^.Planes[Index] := AValue; 223 end; 224 225 procedure TPixelPointer.SetPixelR(Value: Byte); 226 begin 227 CheckRange; 228 Pixel^.R := Value; 229 end; 230 231 procedure TPixelPointer.SetPixelA(Value: Byte); 232 begin 233 CheckRange; 234 Pixel^.A := Value; 235 end; 236 237 function TPixelPointer.GetPixelARGB: TColor32; 238 begin 239 CheckRange; 240 Result := Pixel^.ARGB; 241 end; 242 243 function TPixelPointer.GetPixelB: Byte; 244 begin 245 CheckRange; 246 Result := Pixel^.B; 247 end; 248 249 function TPixelPointer.GetPixelG: Byte; 250 begin 251 CheckRange; 252 Result := Pixel^.G; 253 end; 254 255 function TPixelPointer.GetPixelPlane(Index: Byte): Byte; 256 begin 257 CheckRange; 258 Result := Pixel^.Planes[Index]; 259 end; 260 261 function TPixelPointer.GetPixelR: Byte; 262 begin 263 CheckRange; 264 Result := Pixel^.R; 265 end; 266 267 function TPixelPointer.GetPixelA: Byte; 268 begin 269 CheckRange; 270 Result := Pixel^.A; 271 end; 272 273 procedure TPixelPointer.SetPixelRGB(Value: Cardinal); 274 begin 275 CheckRange; 276 Pixel^.RGB := Value; 277 end; 278 114 279 procedure BitmapCopyRect(DstBitmap: TRasterImage; DstRect: TRect; 115 280 SrcBitmap: TRasterImage; SrcPos: TPoint); … … 120 285 SrcBitmap.BeginUpdate(True); 121 286 DstBitmap.BeginUpdate(True); 122 SrcPtr := PixelPointer(SrcBitmap, SrcPos.X, SrcPos.Y);123 DstPtr := PixelPointer(DstBitmap, DstRect.Left, DstRect.Top);287 SrcPtr := TPixelPointer.Create(SrcBitmap, SrcPos.X, SrcPos.Y); 288 DstPtr := TPixelPointer.Create(DstBitmap, DstRect.Left, DstRect.Top); 124 289 for Y := 0 to DstRect.Height - 1 do begin 125 290 for X := 0 to DstRect.Width - 1 do begin 126 DstPtr.Pixel ^.ARGB := SrcPtr.Pixel^.ARGB;291 DstPtr.PixelARGB := SrcPtr.PixelARGB; 127 292 SrcPtr.NextPixel; 128 293 DstPtr.NextPixel; … … 150 315 SrcBitmap.BeginUpdate(True); 151 316 DstBitmap.BeginUpdate(True); 152 SrcPtr := PixelPointer(SrcBitmap, SrcRect.Left, SrcRect.Top);153 DstPtr := PixelPointer(DstBitmap, DstRect.Left, DstRect.Top);317 SrcPtr := TPixelPointer.Create(SrcBitmap, SrcRect.Left, SrcRect.Top); 318 DstPtr := TPixelPointer.Create(DstBitmap, DstRect.Left, DstRect.Top); 154 319 for Y := 0 to DstRect.Height - 1 do begin 155 320 for X := 0 to DstRect.Width - 1 do begin … … 160 325 DstPtr.SetXY(X, Y); 161 326 SrcPtr.SetXY(R.Left, R.Top); 162 C := SrcPtr.Pixel ^.ARGB;163 DstPtr.Pixel ^.ARGB := C;327 C := SrcPtr.PixelARGB; 328 DstPtr.PixelARGB := C; 164 329 for YY := 0 to R.Height - 1 do begin 165 330 for XX := 0 to R.Width - 1 do begin 166 DstPtr.Pixel ^.ARGB := C;331 DstPtr.PixelARGB := C; 167 332 DstPtr.NextPixel; 168 333 end; … … 181 346 begin 182 347 Bitmap.BeginUpdate(True); 183 Ptr := PixelPointer(Bitmap);348 Ptr := TPixelPointer.Create(Bitmap); 184 349 for Y := 0 to Bitmap.Height - 1 do begin 185 350 for X := 0 to Bitmap.Width - 1 do begin 186 Ptr.Pixel ^.ARGB := Color;351 Ptr.PixelARGB := Color; 187 352 Ptr.NextPixel; 188 353 end; … … 198 363 begin 199 364 Bitmap.BeginUpdate(True); 200 Ptr := PixelPointer(Bitmap, Rect.Left, Rect.Top);365 Ptr := TPixelPointer.Create(Bitmap, Rect.Left, Rect.Top); 201 366 for Y := 0 to Rect.Height - 1 do begin 202 367 for X := 0 to Rect.Width - 1 do begin 203 Ptr.Pixel ^.ARGB := Color;368 Ptr.PixelARGB := Color; 204 369 Ptr.NextPixel; 205 370 end; … … 215 380 begin 216 381 Bitmap.BeginUpdate(True); 217 Ptr := PixelPointer(Bitmap);382 Ptr := TPixelPointer.Create(Bitmap); 218 383 for Y := 0 to Bitmap.Height - 1 do begin 219 384 for X := 0 to Bitmap.Width - 1 do begin 220 Ptr.Pixel ^.ARGB := SwapRedBlue(Ptr.Pixel^.ARGB);385 Ptr.PixelARGB := SwapRedBlue(Ptr.PixelARGB); 221 386 Ptr.NextPixel; 222 387 end; … … 232 397 begin 233 398 Bitmap.BeginUpdate(True); 234 Ptr := PixelPointer(Bitmap);399 Ptr := TPixelPointer.Create(Bitmap); 235 400 for Y := 0 to Bitmap.Height - 1 do begin 236 401 for X := 0 to Bitmap.Width - 1 do begin 237 Ptr.Pixel ^.ARGB := Ptr.Pixel^.ARGB xor $ffffff;402 Ptr.PixelARGB := Ptr.PixelARGB xor $ffffff; 238 403 Ptr.NextPixel; 239 404 end; … … 252 417 Pixel := Color32ToPixel32(Color); 253 418 Bitmap.BeginUpdate(True); 254 Ptr := PixelPointer(Bitmap);419 Ptr := TPixelPointer.Create(Bitmap); 255 420 for Y := 0 to Bitmap.Height - 1 do begin 256 421 for X := 0 to Bitmap.Width - 1 do begin 257 A := Ptr.Pixel ^.A; //(Ptr.Pixel^.A + Pixel.A) shr 1;258 R := (Ptr.Pixel ^.R + Pixel.R) shr 1;259 G := (Ptr.Pixel ^.G + Pixel.G) shr 1;260 B := (Ptr.Pixel ^.B + Pixel.B) shr 1;261 Ptr.Pixel ^.ARGB := Color32(A, R, G, B);422 A := Ptr.PixelA; //(Ptr.PixelA + Pixel.A) shr 1; 423 R := (Ptr.PixelR + Pixel.R) shr 1; 424 G := (Ptr.PixelG + Pixel.G) shr 1; 425 B := (Ptr.PixelB + Pixel.B) shr 1; 426 Ptr.PixelARGB := Color32(A, R, G, B); 262 427 Ptr.NextPixel; 263 428 end; … … 295 460 end; 296 461 297 function PixelPointer(Bitmap: TRasterImage; BaseX: Integer;462 class function TPixelPointer.Create(Bitmap: TRasterImage; BaseX: Integer; 298 463 BaseY: Integer): TPixelPointer; 299 464 begin 465 Result.Width := Bitmap.Width; 466 Result.Height := Bitmap.Height; 467 if (Result.Width < 0) or (Result.Height < 0) then 468 raise Exception.Create(Format(SWrongBitmapSize, [Result.Width, Result.Height])); 300 469 Result.BytesPerLine := Bitmap.RawImage.Description.BytesPerLine; 301 470 Result.BytesPerPixel := Bitmap.RawImage.Description.BitsPerPixel shr 3; 471 Result.Data := PPixel32(Bitmap.RawImage.Data); 302 472 Result.Base := PPixel32(Bitmap.RawImage.Data + BaseX * Result.BytesPerPixel + 303 473 BaseY * Result.BytesPerLine); … … 310 480 end; 311 481 312 313 482 end. 314 -
trunk/Packages/Common/Pool.pas
r29 r30 1 unit UPool;1 unit Pool; 2 2 3 3 interface 4 4 5 5 uses 6 Classes, SysUtils, syncobjs, Generics.Collections, UThreading;6 Classes, SysUtils, syncobjs, Generics.Collections, Threading; 7 7 8 8 type … … 57 57 try 58 58 Lock.Acquire; 59 inherited SetTotalCount(AValue);59 inherited; 60 60 finally 61 61 Lock.Release; … … 67 67 try 68 68 Lock.Acquire; 69 Result := inherited GetUsedCount;69 Result := inherited; 70 70 finally 71 71 Lock.Release; … … 88 88 end; 89 89 end; 90 Result := inherited Acquire;90 Result := inherited; 91 91 finally 92 92 Lock.Release; … … 98 98 try 99 99 Lock.Acquire; 100 inherited Release(Item);100 inherited; 101 101 finally 102 102 Lock.Release; … … 113 113 begin 114 114 TotalCount := 0; 115 Lock.Free;115 FreeAndNil(Lock); 116 116 inherited; 117 117 end; … … 199 199 200 200 end. 201 -
trunk/Packages/Common/PrefixMultiplier.pas
r29 r30 1 unit UPrefixMultiplier;1 unit PrefixMultiplier; 2 2 3 3 // Date: 2010-06-01 … … 31 31 ( 32 32 (ShortText: 'y'; FullText: 'yocto'; Value: 1e-24), 33 33 (ShortText: 'z'; FullText: 'zepto'; Value: 1e-21), 34 34 (ShortText: 'a'; FullText: 'atto'; Value: 1e-18), 35 35 (ShortText: 'f'; FullText: 'femto'; Value: 1e-15), … … 52 52 ( 53 53 (ShortText: 'ys'; FullText: 'yocto'; Value: 1e-24), 54 54 (ShortText: 'zs'; FullText: 'zepto'; Value: 1e-21), 55 55 (ShortText: 'as'; FullText: 'atto'; Value: 1e-18), 56 56 (ShortText: 'fs'; FullText: 'femto'; Value: 1e-15), … … 124 124 125 125 end. 126 -
trunk/Packages/Common/RegistryEx.pas
r29 r30 1 unit URegistry;1 unit RegistryEx; 2 2 3 3 interface … … 38 38 function DeleteKeyRecursive(const Key: string): Boolean; 39 39 function OpenKey(const Key: string; CanCreate: Boolean): Boolean; 40 function GetValue(const Name: string; const DefaultValue: Integer): Integer; overload;41 function GetValue(const Name: string; const DefaultValue: string): string; overload;42 function GetValue(const Name: string; const DefaultValue: Boolean): Boolean; overload;43 function GetValue(const Name: string; const DefaultValue: Double): Double; overload;44 function GetValue(const Name: string; const DefaultValue: Char): Char; overload;45 procedure SetValue(const Name: string; const Value: Integer); overload;46 procedure SetValue(const Name: string; const Value: string); overload;47 procedure SetValue(const Name: string; const Value: Boolean); overload;48 procedure SetValue(const Name: string; const Value: Double); overload;49 procedure SetValue(const Name: string; const Value: Char); overload;50 40 property CurrentContext: TRegistryContext read GetCurrentContext write SetCurrentContext; 51 41 end; … … 120 110 end; 121 111 122 function TRegistryEx.GetValue(const Name: string; const DefaultValue: Integer123 ): Integer;124 begin125 Result := ReadIntegerWithDefault(Name, DefaultValue);126 end;127 128 function TRegistryEx.GetValue(const Name: string; const DefaultValue: string129 ): string;130 begin131 Result := ReadStringWithDefault(Name, DefaultValue);132 end;133 134 function TRegistryEx.GetValue(const Name: string; const DefaultValue: Boolean135 ): Boolean;136 begin137 Result := ReadBoolWithDefault(Name, DefaultValue);138 end;139 140 function TRegistryEx.GetValue(const Name: string; const DefaultValue: Double141 ): Double;142 begin143 Result := ReadFloatWithDefault(Name, DefaultValue);144 end;145 146 function TRegistryEx.GetValue(const Name: string; const DefaultValue: Char147 ): Char;148 begin149 Result := ReadCharWithDefault(Name, DefaultValue);150 end;151 152 procedure TRegistryEx.SetValue(const Name: string; const Value: Integer);153 begin154 WriteInteger(Name, Value);155 end;156 157 procedure TRegistryEx.SetValue(const Name: string; const Value: string);158 begin159 WriteString(Name, Value);160 end;161 162 procedure TRegistryEx.SetValue(const Name: string; const Value: Boolean);163 begin164 WriteBool(Name, Value);165 end;166 167 procedure TRegistryEx.SetValue(const Name: string; const Value: Double);168 begin169 WriteFloat(Name, Value);170 end;171 172 procedure TRegistryEx.SetValue(const Name: string; const Value: Char);173 begin174 WriteChar(Name, Value);175 end;176 177 112 function TRegistryEx.DeleteKeyRecursive(const Key: string): Boolean; 178 113 var … … 198 133 //CloseKey; 199 134 {$ENDIF} 200 Result := inherited OpenKey(Key, CanCreate);135 Result := inherited; 201 136 end; 202 137 -
trunk/Packages/Common/ResetableThread.pas
r29 r30 1 unit UResetableThread;1 unit ResetableThread; 2 2 3 3 interface 4 4 5 5 uses 6 Classes, SysUtils, syncobjs, UThreading, UPool;6 Classes, SysUtils, syncobjs, Threading, Pool; 7 7 8 8 type … … 295 295 296 296 end. 297 -
trunk/Packages/Common/ScaleDPI.pas
r29 r30 1 unit UScaleDPI;1 unit ScaleDPI; 2 2 3 3 { See: http://wiki.lazarus.freepascal.org/High_DPI } -
trunk/Packages/Common/StopWatch.pas
r25 r30 13 13 TStopWatch = class 14 14 private 15 fFrequency: TLargeInteger;16 fIsRunning: Boolean;17 fIsHighResolution: Boolean;18 fStartCount, fStopCount: TLargeInteger;19 procedure SetTickStamp(var lInt : TLargeInteger);15 FFrequency: TLargeInteger; 16 FIsRunning: Boolean; 17 FIsHighResolution: Boolean; 18 FStartCount, fStopCount: TLargeInteger; 19 procedure SetTickStamp(var Value: TLargeInteger); 20 20 function GetElapsedTicks: TLargeInteger; 21 21 function GetElapsedMiliseconds: TLargeInteger; 22 22 function GetElapsed: string; 23 23 public 24 constructor Create(const startOnCreate: Boolean = False) ;24 constructor Create(const StartOnCreate: Boolean = False) ; 25 25 procedure Start; 26 26 procedure Stop; 27 property IsHighResolution : Boolean read fIsHighResolution;28 property ElapsedTicks 29 property ElapsedMiliseconds 30 property Elapsed 31 property IsRunning : Boolean read fIsRunning;27 property IsHighResolution: Boolean read FIsHighResolution; 28 property ElapsedTicks: TLargeInteger read GetElapsedTicks; 29 property ElapsedMiliseconds: TLargeInteger read GetElapsedMiliseconds; 30 property Elapsed: string read GetElapsed; 31 property IsRunning: Boolean read FIsRunning; 32 32 end; 33 33 … … 35 35 implementation 36 36 37 constructor TStopWatch.Create(const startOnCreate : boolean = false);37 constructor TStopWatch.Create(const StartOnCreate: Boolean = False); 38 38 begin 39 inherited Create; 40 41 fIsRunning := False; 39 FIsRunning := False; 42 40 43 41 {$IFDEF WINDOWS} 44 42 fIsHighResolution := QueryPerformanceFrequency(fFrequency) ; 45 43 {$ELSE} 46 fIsHighResolution := False;44 FIsHighResolution := False; 47 45 {$ENDIF} 48 if NOT fIsHighResolution then fFrequency := MSecsPerSec;46 if NOT FIsHighResolution then FFrequency := MSecsPerSec; 49 47 50 48 if StartOnCreate then Start; … … 53 51 function TStopWatch.GetElapsedTicks: TLargeInteger; 54 52 begin 55 Result := fStopCount - fStartCount;53 Result := FStopCount - FStartCount; 56 54 end; 57 55 58 procedure TStopWatch.SetTickStamp(var lInt : TLargeInteger);56 procedure TStopWatch.SetTickStamp(var Value: TLargeInteger); 59 57 begin 60 if fIsHighResolution then58 if FIsHighResolution then 61 59 {$IFDEF Windows} 62 QueryPerformanceCounter( lInt)60 QueryPerformanceCounter(Value) 63 61 {$ELSE} 64 62 {$ENDIF} 65 63 else 66 lInt := MilliSecondOf(Now);64 Value := MilliSecondOf(Now); 67 65 end; 68 66 69 67 function TStopWatch.GetElapsed: string; 70 68 var 71 dt: TDateTime;69 Elapsed: TDateTime; 72 70 begin 73 dt:= ElapsedMiliseconds / MSecsPerSec / SecsPerDay;74 result := Format('%d days, %s', [Trunc(dt), FormatDateTime('hh:nn:ss.z', Frac(dt))]) ;71 Elapsed := ElapsedMiliseconds / MSecsPerSec / SecsPerDay; 72 Result := Format('%d days, %s', [Trunc(Elapsed), FormatDateTime('hh:nn:ss.z', Frac(Elapsed))]) ; 75 73 end; 76 74 77 75 function TStopWatch.GetElapsedMiliseconds: TLargeInteger; 78 76 begin 79 Result := (MSecsPerSec * (fStopCount - fStartCount)) div fFrequency;77 Result := (MSecsPerSec * (fStopCount - FStartCount)) div FFrequency; 80 78 end; 81 79 82 80 procedure TStopWatch.Start; 83 81 begin 84 SetTickStamp( fStartCount);85 fIsRunning := True;82 SetTickStamp(FStartCount); 83 FIsRunning := True; 86 84 end; 87 85 88 86 procedure TStopWatch.Stop; 89 87 begin 90 SetTickStamp( fStopCount);91 fIsRunning := False;88 SetTickStamp(FStopCount); 89 FIsRunning := False; 92 90 end; 93 91 -
trunk/Packages/Common/StringTable.pas
r29 r30 1 unit UStringTable;1 unit StringTable; 2 2 3 3 interface … … 69 69 end; 70 70 71 72 71 end. 73 -
trunk/Packages/Common/SyncCounter.pas
r29 r30 1 unit USyncCounter;1 unit SyncCounter; 2 2 3 3 interface … … 78 78 79 79 end. 80 -
trunk/Packages/Common/TestCase.pas
r29 r30 1 unit UTestCase;1 unit TestCase; 2 2 3 3 interface … … 127 127 128 128 end. 129 -
trunk/Packages/Common/Theme.pas
r29 r30 1 unit UTheme;1 unit Theme; 2 2 3 3 interface … … 186 186 end; 187 187 188 189 188 end. -
trunk/Packages/Common/Threading.pas
r29 r30 1 unit UThreading;1 unit Threading; 2 2 3 3 interface … … 188 188 constructor TThreadList.Create; 189 189 begin 190 inherited Create;190 inherited; 191 191 end; 192 192 … … 366 366 367 367 end. 368 -
trunk/Packages/Common/Translator.pas
r29 r30 1 unit UTranslator;1 unit Translator; 2 2 3 3 interface … … 5 5 uses 6 6 Classes, SysUtils, Forms, ExtCtrls, Controls, LazFileUtils, LazUTF8, 7 Translations, TypInfo, Dialogs, FileUtil, LCLProc, ULanguages, LCLType,7 Translations, TypInfo, Dialogs, FileUtil, LCLProc, Languages, LCLType, 8 8 LCLVersion, Generics.Collections; 9 9 … … 48 48 procedure TranslateProperty(Component: TPersistent; PropInfo: PPropInfo); 49 49 function IsExcluded(Component: TPersistent; PropertyName: string): Boolean; 50 function GetLangFileDir : string;50 function GetLangFileDirs: TStrings; 51 51 public 52 52 ComponentExcludes: TComponentExcludesList; … … 71 71 end; 72 72 73 const 74 PoExt = '.po'; 75 73 76 procedure Register; 74 77 75 78 76 79 implementation 80 81 uses 82 Common; 77 83 78 84 procedure Register; … … 161 167 FileList: TStringList; 162 168 I: Integer; 169 J: Integer; 163 170 LocaleShort: string; 164 171 SearchMask: string; 172 LangDirs: TStrings; 165 173 begin 166 174 FPoFiles.Clear; 167 if Assigned(FLanguage) then 168 try 175 if Assigned(FLanguage) then begin 169 176 LocaleShort := GetLocaleShort; 170 //ShowMessage(ExtractFileDir(Application.ExeName) +171 // DirectorySeparator + 'Languages' + ' ' + '*.' + LocaleShort + '.po');172 177 SearchMask := '*'; 173 178 if LocaleShort <> '' then SearchMask := SearchMask + '.' + LocaleShort; 174 SearchMask := SearchMask + '.po'; 175 FileList := FindAllFiles(GetLangFileDir, SearchMask); 176 for I := 0 to FileList.Count - 1 do begin 177 FileName := FileList[I]; 178 //FileName := FindLocaleFileName('.po'); 179 if FileExists(FileName) and ( 180 ((LocaleShort = '') and (Pos('.', FileName) = Pos('.po', FileName))) or 181 (LocaleShort <> '')) then FPoFiles.Add(TPOFile.Create(FileName)); 182 end; 183 finally 184 FileList.Free; 179 SearchMask := SearchMask + PoExt; 180 LangDirs := GetLangFileDirs; 181 for J := 0 to LangDirs.Count - 1 do begin 182 FileList := FindAllFiles(LangDirs[J], SearchMask); 183 try 184 for I := 0 to FileList.Count - 1 do begin 185 FileName := FileList[I]; 186 //FileName := FindLocaleFileName('.po'); 187 if FileExists(FileName) and ( 188 ((LocaleShort = '') and (Pos('.', FileName) = Pos(PoExt, FileName))) or 189 (LocaleShort <> '')) then FPoFiles.Add(TPOFile.Create(FileName)); 190 end; 191 finally 192 FileList.Free; 193 end; 194 end; 195 LangDirs.Free; 185 196 end; 186 197 end; … … 299 310 end; 300 311 301 function TTranslator.GetLangFileDir: string; 302 begin 303 Result := FPoFilesFolder; 304 if Copy(Result, 1, 1) <> DirectorySeparator then 305 Result := ExtractFileDir(Application.ExeName) + 306 DirectorySeparator + Result; 312 function TTranslator.GetLangFileDirs: TStrings; 313 var 314 I: Integer; 315 begin 316 Result := TStringList.Create; 317 Result.Delimiter := ';'; 318 Result.StrictDelimiter := True; 319 Result.DelimitedText := FPoFilesFolder; 320 321 for I := 0 to Result.Count - 1 do begin 322 Result[I] := StringReplace(Result[I], '/', DirectorySeparator, [rfReplaceAll]); 323 Result[I] := StringReplace(Result[I], '\', DirectorySeparator, [rfReplaceAll]); 324 if Copy(Result[I], 1, 1) <> DirectorySeparator then 325 Result[I] := ExtractFileDir(Application.ExeName) + 326 DirectorySeparator + Result[I]; 327 end; 307 328 end; 308 329 … … 371 392 var 372 393 I: Integer; 373 LangDir: string; 374 begin 375 LangDir := GetLangFileDir; 394 J: Integer; 395 LangDirs: TStrings; 396 begin 397 LangDirs := GetLangFileDirs; 376 398 Languages.SearchByCode('').Available := True; // Automatic 377 399 378 400 for I := 1 to Languages.Count - 1 do 379 401 with Languages[I] do begin 380 Available := FileExists(LangDir + DirectorySeparator + ExtractFileNameOnly(Application.ExeName) + 381 '.' + Code + ExtensionSeparator + 'po') or (Code = 'en'); 382 end; 402 for J := 0 to LangDirs.Count - 1 do begin 403 if FileExists(LangDirs[J] + DirectorySeparator + ExtractFileNameOnly(Application.ExeName) + 404 '.' + Code + PoExt) or (Code = 'en') then begin 405 Available := True; 406 Continue; 407 end; 408 end; 409 end; 410 LangDirs.Free; 383 411 end; 384 412 … … 569 597 end; 570 598 571 572 599 end. 573 -
trunk/Packages/Common/URI.pas
r29 r30 1 unit U URI;1 unit URI; 2 2 3 3 // Date: 2011-04-04 … … 347 347 348 348 end. 349 -
trunk/Packages/Common/XML.pas
r29 r30 1 unit UXMLUtils;1 unit XML; 2 2 3 3 interface … … 14 14 procedure WriteString(Node: TDOMNode; Name: string; Value: string); 15 15 procedure WriteDateTime(Node: TDOMNode; Name: string; Value: TDateTime); 16 procedure WriteDouble(Node: TDOMNode; Name: string; Value: Double); 16 17 function ReadInteger(Node: TDOMNode; Name: string; DefaultValue: Integer): Integer; 17 18 function ReadInt64(Node: TDOMNode; Name: string; DefaultValue: Int64): Int64; … … 19 20 function ReadString(Node: TDOMNode; Name: string; DefaultValue: string): string; 20 21 function ReadDateTime(Node: TDOMNode; Name: string; DefaultValue: TDateTime): TDateTime; 22 function ReadDouble(Node: TDOMNode; Name: string; DefaultValue: Double): Double; 21 23 procedure ReadXMLFileParser(out Doc: TXMLDocument; FileName: string); 22 24 23 25 24 26 implementation 27 28 function ReadDouble(Node: TDOMNode; Name: string; DefaultValue: Double): Double; 29 var 30 NewNode: TDOMNode; 31 begin 32 Result := DefaultValue; 33 NewNode := Node.FindNode(DOMString(Name)); 34 if Assigned(NewNode) then 35 Result := StrToFloat(string(NewNode.TextContent)); 36 end; 25 37 26 38 procedure ReadXMLFileParser(out Doc: TXMLDocument; FileName: string); … … 200 212 end; 201 213 214 procedure WriteDouble(Node: TDOMNode; Name: string; Value: Double); 215 var 216 NewNode: TDOMNode; 217 begin 218 NewNode := Node.OwnerDocument.CreateElement(DOMString(Name)); 219 NewNode.TextContent := DOMString(FloatToStr(Value)); 220 Node.AppendChild(NewNode); 221 end; 222 202 223 function ReadInteger(Node: TDOMNode; Name: string; DefaultValue: Integer): Integer; 203 224 var … … 252 273 253 274 end. 254 -
trunk/Packages/Database/USqlDatabase.pas
r26 r30 6 6 7 7 uses 8 SysUtils, Classes, Dialogs, mysql50, TypInfo, UGenerics, Generics.Collections;8 SysUtils, Classes, Dialogs, mysql50, TypInfo, Generics, Generics.Collections; 9 9 10 10 type -
trunk/UCore.pas
r28 r30 4 4 5 5 uses 6 Classes, SysUtils, FileUtil, Controls, ActnList, UDatabase, UTranslator,7 UApplicationInfo, UPersistentForm, Forms, URegistry, UScaleDPI;6 Classes, SysUtils, FileUtil, Controls, ActnList, UDatabase, Translator, 7 ApplicationInfo, PersistentForm, Forms, RegistryEx, ScaleDPI; 8 8 9 9 type … … 55 55 56 56 uses 57 UFormTables, UFormConnect, UAboutDialog, UFormDatabases, UFormPreferences,57 UFormTables, UFormConnect, FormAbout, UFormDatabases, UFormPreferences, 58 58 UFormMain; 59 59 … … 100 100 procedure TCore.AAboutExecute(Sender: TObject); 101 101 begin 102 with T AboutDialog.Create(nil) do102 with TFormAbout.Create(nil) do 103 103 try 104 104 ApplicationInfo := ApplicationInfo1; 105 Show ;105 ShowModal; 106 106 finally 107 107 Free; … … 151 151 try 152 152 CurrentContext := TRegistryContext.Create(rrKeyCurrentUser, DefaultRegKey); 153 Preferences.RememberDatabase := GetValue('RememberDatabase', True);154 Preferences.LastDatabaseName := GetValue('LastDatabaseName', '');153 Preferences.RememberDatabase := ReadBoolWithDefault('RememberDatabase', True); 154 Preferences.LastDatabaseName := ReadStringWithDefault('LastDatabaseName', ''); 155 155 Translator1.Language := Translator1.Languages.SearchByCode( 156 GetValue('Language', ''));156 ReadStringWithDefault('Language', '')); 157 157 finally 158 158 Free; … … 166 166 try 167 167 CurrentContext := TRegistryContext.Create(rrKeyCurrentUser, DefaultRegKey); 168 SetValue('RememberDatabase', Preferences.RememberDatabase);169 SetValue('LastDatabaseName', Preferences.LastDatabaseName);170 SetValue('Language', Translator1.Language.Code);168 WriteBool('RememberDatabase', Preferences.RememberDatabase); 169 WriteString('LastDatabaseName', Preferences.LastDatabaseName); 170 WriteString('Language', Translator1.Language.Code); 171 171 finally 172 172 Free; -
trunk/UDatabase.pas
r29 r30 4 4 5 5 uses 6 Classes, SysUtils, ExtCtrls, Dialogs, USqlDatabase, URegistry, UGenerics,6 Classes, SysUtils, ExtCtrls, Dialogs, USqlDatabase, RegistryEx, Generics, 7 7 Generics.Collections; 8 8 … … 347 347 try 348 348 CurrentContext := Context; 349 Count := GetValue('Count', 0);349 Count := ReadIntegerWithDefault('Count', 0); 350 350 for I := 0 to Count - 1 do begin 351 351 OpenKey(Context.Key + '\Item' + IntToStr(I), True); 352 ClientType := DbManager.ClientTypes.FindByName( GetValue('ClientType', ''));352 ClientType := DbManager.ClientTypes.FindByName(ReadStringWithDefault('ClientType', '')); 353 353 if not Assigned(ClientType) and (DbManager.ClientTypes.Count > 0) then 354 354 ClientType := TDbClientType(DbManager.ClientTypes[0]); … … 357 357 ConnectProfile.DbManager := DbManager; 358 358 ConnectProfile.ClientType := ClientType; 359 ConnectProfile.Name := GetValue('Name', '');360 ConnectProfile.Params.ConnectionString := GetValue('ConnectionString', '');359 ConnectProfile.Name := ReadStringWithDefault('Name', ''); 360 ConnectProfile.Params.ConnectionString := ReadStringWithDefault('ConnectionString', ''); 361 361 Items[I] := ConnectProfile; 362 362 end; … … 373 373 try 374 374 CurrentContext := Context; 375 SetValue('Count', Count);375 ReadIntegerWithDefault('Count', Count); 376 376 for I := 0 to Count - 1 do begin 377 377 OpenKey(Context.Key + '\Item' + IntToStr(I), True); 378 SetValue('Name', Items[I].Name);379 SetValue('ConnectionString', Items[I].Params.ConnectionString);380 SetValue('ClientType', Items[I].ClientType.Name);378 WriteString('Name', Items[I].Name); 379 WriteString('ConnectionString', Items[I].Params.ConnectionString); 380 WriteString('ClientType', Items[I].ClientType.Name); 381 381 end; 382 382 finally -
trunk/UHtmlClasses.pas
r28 r30 4 4 5 5 uses 6 UXmlClasses, Classes, SysUtils, Generics.Collections, UGenerics, UIpAddress;6 UXmlClasses, Classes, SysUtils, Generics.Collections, Generics, UIpAddress; 7 7 8 8 type -
trunk/UIpAddress.pas
r26 r30 4 4 5 5 uses 6 Classes, SysUtils, UGenerics;6 Classes, SysUtils, Generics; 7 7 8 8 type -
trunk/UXmlClasses.pas
r26 r30 4 4 5 5 uses 6 Classes, SysUtils, StrUtils, Generics.Collections, UGenerics;6 Classes, SysUtils, StrUtils, Generics.Collections, Generics; 7 7 8 8 type
Note:
See TracChangeset
for help on using the changeset viewer.