- Timestamp:
- Apr 9, 2022, 11:52:13 AM (3 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 20 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/Forms/UFormCompare.pas
r127 r129 5 5 uses 6 6 Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls, 7 U Contact, Diff, LCLType, LCLIntf, ComCtrls, Buttons, Menus, ActnList, SynEdit,7 UVCard, Diff, LCLType, LCLIntf, ComCtrls, Buttons, Menus, ActnList, SynEdit, 8 8 SynEditMiscClasses, SynHighlighterPosition, SynEditHighlighter, UCommon, 9 9 USynEditEx; … … 83 83 84 84 uses 85 UCore ;85 UCore, UVCardFile; 86 86 87 87 { TFormCompare } … … 334 334 Ext := ExtractFileExt(AFileName); 335 335 if Ext = VCardFileExt then begin 336 with T ContactsFile.Create do336 with TVCardFile.Create do 337 337 try 338 338 LoadFromFile(AFileName); 339 Result := AsString;339 Result := VCard.AsString; 340 340 finally 341 341 Free; -
trunk/Forms/UFormContact.pas
r127 r129 5 5 uses 6 6 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, 7 ComCtrls, ActnList, Menus, ExtCtrls, ExtDlgs, Buttons, U Contact, LCLIntf,7 ComCtrls, ActnList, Menus, ExtCtrls, ExtDlgs, Buttons, UVCard, LCLIntf, 8 8 UFormProperties, DateUtils, {$IFDEF LCLGTK2}Gtk2Globals, {$ENDIF}UContactImage, 9 9 ubarcodes; -
trunk/Forms/UFormContacts.pas
r128 r129 5 5 uses 6 6 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls, 7 Menus, ActnList, U Contact, UListViewSort, LazUTF8, Clipbrd,7 Menus, ActnList, UVCard, UListViewSort, LazUTF8, Clipbrd, 8 8 Generics.Collections; 9 9 … … 102 102 103 103 uses 104 UFormContact, UCore ;104 UFormContact, UCore, UVCardFile; 105 105 106 106 resourcestring … … 304 304 ListView1.Columns.Delete(ListView1.Columns.Count - 1); 305 305 for I := 0 to ListView1.Columns.Count - 1 do begin 306 if Assigned(Contacts) and Assigned(Contacts. ContactsFile) then begin306 if Assigned(Contacts) and Assigned(Contacts.ParentVCard) then begin 307 307 Field := TContact.GetFields.GetByIndex(ListViewColumns[I]); 308 308 if Assigned(Field) then … … 334 334 Contact := TContact.Create; 335 335 try 336 Contact. ContactsFile := Contacts.ContactsFile;336 Contact.ParentVCard := Contacts.ParentVCard; 337 337 FormContact.Contact := Contact; 338 338 FormContact.OnGetPrevious := GetPreviousContact; … … 364 364 Contact := TContact.Create; 365 365 try 366 Contact. ContactsFile := Contacts.ContactsFile;366 Contact.ParentVCard := Contacts.ParentVCard; 367 367 Contact.Assign(TContact(ListView1.Selected.Data)); 368 368 FormContact.Contact := Contact; … … 436 436 procedure TFormContacts.ALoadFromFileExecute(Sender: TObject); 437 437 var 438 TempFile: T ContactsFile;438 TempFile: TVCardFile; 439 439 begin 440 440 if Assigned(ListView1.Selected) then begin 441 TempFile := T ContactsFile.Create;441 TempFile := TVCardFile.Create; 442 442 try 443 443 OpenDialog1.Filter := TempFile.GetFileFilter; … … 465 465 Contact := TContact.Create; 466 466 try 467 Contact. ContactsFile := Contacts.ContactsFile;467 Contact.ParentVCard := Contacts.ParentVCard; 468 468 Contact.Assign(TContact(ListView1.Selected.Data)); 469 469 FormContact.Contact := Contact; … … 486 486 procedure TFormContacts.APasteExecute(Sender: TObject); 487 487 var 488 PasteContacts: T ContactsFile;488 PasteContacts: TVCardFile; 489 489 Lines: TStringList; 490 490 begin 491 PasteContacts := T ContactsFile.Create;491 PasteContacts := TVCardFile.Create; 492 492 Lines := TStringList.Create; 493 493 try 494 494 Lines.Text := Clipboard.AsText; 495 PasteContacts. LoadFromStrings(Lines);496 if PasteContacts. Contacts.Count > 0 then begin495 PasteContacts.VCard.LoadFromStrings(Lines); 496 if PasteContacts.VCard.Contacts.Count > 0 then begin 497 497 if Assigned(ListView1.Selected) then begin 498 498 Contacts.InsertContacts(Contacts.IndexOf(ListView1.Selected.Data), 499 PasteContacts. Contacts);500 end else Contacts.AddContacts(PasteContacts. Contacts);499 PasteContacts.VCard.Contacts); 500 end else Contacts.AddContacts(PasteContacts.VCard.Contacts); 501 501 Core.DataFile.Modified := True; 502 502 ReloadList; … … 528 528 procedure TFormContacts.ASaveToFileExecute(Sender: TObject); 529 529 var 530 TempFile: T ContactsFile;530 TempFile: TVCardFile; 531 531 begin 532 532 if Assigned(ListView1.Selected) then begin 533 TempFile := T ContactsFile.Create;533 TempFile := TVCardFile.Create; 534 534 try 535 535 SaveDialog1.Filter := TempFile.GetFileFilter; -
trunk/Forms/UFormFind.pas
r128 r129 5 5 uses 6 6 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls, 7 ExtCtrls, StdCtrls, ActnList, Menus, U Contact, UFormContacts;7 ExtCtrls, StdCtrls, ActnList, Menus, UVCard, UFormContacts; 8 8 9 9 type -
trunk/Forms/UFormFindDuplicity.pas
r128 r129 5 5 uses 6 6 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls, 7 ExtCtrls, StdCtrls, ActnList, Menus, U Contact, Generics.Collections,7 ExtCtrls, StdCtrls, ActnList, Menus, UVCard, Generics.Collections, 8 8 Generics.Defaults; 9 9 … … 65 65 66 66 uses 67 UCore, UFormContacts ;67 UCore, UFormContacts, UVCardFile; 68 68 69 69 { TFoundItems } … … 191 191 Form := TFormContacts.Create(nil); 192 192 Form.Contacts := TContacts.Create(False); 193 Form.Contacts. ContactsFile := Contacts.ContactsFile;193 Form.Contacts.ParentVCard := Contacts.ParentVCard; 194 194 with TFoundItem(ListView1.Selected.Data) do 195 195 for I := 0 to Contacts.Count - 1 do … … 202 202 Form.Contacts.Remove(Contacts[I]); 203 203 Self.Contacts.Remove(Contacts[I]); 204 Self.Contacts. ContactsFile.Modified := True;204 Self.Contacts.ParentVCard.Modified := True; 205 205 end; 206 206 … … 210 210 Form.Contacts.Add(Form.Contacts[I]); 211 211 Self.Contacts.Add(Form.Contacts[I]); 212 Self.Contacts. ContactsFile.Modified := True;212 Self.Contacts.ParentVCard.Modified := True; 213 213 end; 214 214 end; … … 221 221 procedure TFormFindDuplicity.ButtonMergeClick(Sender: TObject); 222 222 var 223 TempContacts: T ContactsFile;224 I: Integer; 225 begin 226 TempContacts := T ContactsFile.Create;223 TempContacts: TVCardFile; 224 I: Integer; 225 begin 226 TempContacts := TVCardFile.Create; 227 227 try 228 228 for I := 0 to Contacts.Count - 1 do 229 TempContacts. Contacts.Merge(Contacts[I], TContactField(ComboBoxField.Items.Objects[ComboBoxField.ItemIndex]).Index);230 Contacts.Assign(TempContacts. Contacts);229 TempContacts.VCard.Contacts.Merge(Contacts[I], TContactField(ComboBoxField.Items.Objects[ComboBoxField.ItemIndex]).Index); 230 Contacts.Assign(TempContacts.VCard.Contacts); 231 231 Find; 232 232 finally -
trunk/Forms/UFormGenerate.pas
r127 r129 5 5 uses 6 6 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, 7 Spin, U Contact;7 Spin, UVCard; 8 8 9 9 type -
trunk/Forms/UFormMain.pas
r127 r129 76 76 77 77 uses 78 UCore, UFormContacts, U Contact;78 UCore, UFormContacts, UVCard, UVCardFile; 79 79 80 80 resourcestring … … 121 121 CoolBar1.AutosizeBands; 122 122 123 FormContacts.Contacts := T ContactsFile(Core.DataFile).Contacts;123 FormContacts.Contacts := TVCardFile(Core.DataFile).VCard.Contacts; 124 124 FormContacts.ManualDock(Self, nil, alClient); 125 125 FormContacts.Align := alClient; -
trunk/Forms/UFormProperties.pas
r128 r129 5 5 uses 6 6 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls, 7 Menus, ActnList, U Contact, UDataFile, UListViewSort, LazUTF8,7 Menus, ActnList, UVCard, UDataFile, UListViewSort, LazUTF8, 8 8 Generics.Collections; 9 9 -
trunk/Forms/UFormProperty.pas
r127 r129 4 4 5 5 uses 6 Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, U Contact;6 Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, UVCard; 7 7 8 8 type -
trunk/Forms/UFormSource.pas
r127 r129 51 51 52 52 uses 53 UCore, UTheme, U Contact;53 UCore, UTheme, UVCard; 54 54 55 55 { TFormSource } -
trunk/Forms/UFormTest.pas
r128 r129 49 49 50 50 uses 51 UCore, UFormTestCase, U Contact;51 UCore, UFormTestCase, UVCard; 52 52 53 53 { TFormTest } -
trunk/Languages/vCardStudio.cs.po
r127 r129 1081 1081 msgstr "Testový případ" 1082 1082 1083 #: ucontact.saim1084 msgid "AIM"1085 msgstr "AIM"1086 1087 #: ucontact.sanniversary1088 msgid "Anniversary"1089 msgstr "Výročí"1090 1091 #: ucontact.scategories1092 msgid "Categories"1093 msgstr "Kategorie"1094 1095 #: ucontact.scontacthasnoparent1096 msgid "Contact has no parent"1097 msgstr "Kontakt nemá rodiče"1098 1099 #: ucontact.sdayofbirth1100 msgid "Day of birth"1101 msgstr "Datum narození"1102 1103 #: ucontact.sdepartement1104 msgid "Departement"1105 msgstr "Oddělení"1106 1107 #: ucontact.semail1108 msgid "E-mail"1109 msgstr "E-mail"1110 1111 #: ucontact.sexpectedproperty1112 msgid "Expected contact property"1113 msgstr "Očekávána vlastnost kontaktu"1114 1115 #: ucontact.sexpectedvcardbegin1116 msgid "Expected vCard begin"1117 msgstr "Očekáván začátek vCard"1118 1119 #: ucontact.sfacebook1120 msgid "Facebook"1121 msgstr "Facebook"1122 1123 #: ucontact.sfax1124 msgid "Fax"1125 msgstr "Fax"1126 1127 #: ucontact.sfieldindexnotdefined1128 msgid "Field index not defined"1129 msgstr "Index pole nenalezen"1130 1131 #: ucontact.sfieldindexredefined1132 #, object-pascal-format1133 msgid "Field index %d redefined"1134 msgstr "Index pole %d předefinován"1135 1136 #: ucontact.sfirstname1137 msgid "First Name"1138 msgstr "První Jméno"1139 1140 #: ucontact.sfullname1141 msgctxt "ucontact.sfullname"1142 msgid "Full Name"1143 msgstr "Celé jméno"1144 1145 #: ucontact.sgadugadu1146 msgid "GaduGadu"1147 msgstr "GaduGadu"1148 1149 #: ucontact.sgender1150 msgid "Gender"1151 msgstr "Pohlaví"1152 1153 #: ucontact.sgoogletalk1154 msgid "Google Talk"1155 msgstr "Google Talk"1156 1157 #: ucontact.sgroupwise1158 msgid "GroupWise"1159 msgstr "GroupWise"1160 1161 #: ucontact.shomeaddresscity1162 msgid "Home address city"1163 msgstr "Domácí adresa město"1164 1165 #: ucontact.shomeaddresscountry1166 msgid "Home address country"1167 msgstr "Domácí adresa země"1168 1169 #: ucontact.shomeaddresspostalcode1170 msgid "Home address postal code"1171 msgstr "Domácí adresa PSČ"1172 1173 #: ucontact.shomeaddresspostofficebox1174 msgid "Home address post office box"1175 msgstr "Domácí adresa číslo schránky"1176 1177 #: ucontact.shomeaddressregion1178 msgid "Home address region"1179 msgstr "Domácí adresa kraj"1180 1181 #: ucontact.shomeaddressstreet1182 msgid "Home address street"1183 msgstr "Domácí adresa ulice"1184 1185 #: ucontact.shomeaddressstreetextended1186 msgid "Home address extended street"1187 msgstr "Domácí adresa rozšířená ulice"1188 1189 #: ucontact.shomeemail1190 msgid "Home E-mail"1191 msgstr "Domov E-mail"1192 1193 #: ucontact.shomefax1194 msgid "Home fax"1195 msgstr "Domov fax"1196 1197 #: ucontact.shomemobile1198 msgid "Home mobile"1199 msgstr "Domov mobil"1200 1201 #: ucontact.shomepager1202 msgid "Home pager"1203 msgstr "Domov pager"1204 1205 #: ucontact.shomephone1206 msgctxt "ucontact.shomephone"1207 msgid "Home phone"1208 msgstr "Domov telefon"1209 1210 #: ucontact.shomephone21211 msgid "Home phone 2"1212 msgstr "Domov telefon 2"1213 1214 #: ucontact.sicq1215 msgid "ICQ"1216 msgstr "ICQ"1217 1218 #: ucontact.sinstagram1219 msgid "Instagram"1220 msgstr "Instagram"1221 1222 #: ucontact.sinternetemail1223 msgid "Internet E-mail"1224 msgstr "Internetový E-mail"1225 1226 #: ucontact.sirc1227 msgid "IRC"1228 msgstr "IRC"1229 1230 #: ucontact.sjabber1231 msgid "Jabber"1232 msgstr "Jabber"1233 1234 #: ucontact.slastname1235 msgctxt "ucontact.slastname"1236 msgid "Last Name"1237 msgstr "Poslední Jméno"1238 1239 #: ucontact.slasttimecontacted1240 msgid "Last Time Contacted"1241 msgstr "Naposledy kontaktováno"1242 1243 #: ucontact.slinkedin1244 msgid "LinkedIn"1245 msgstr "LinkedIn"1246 1247 #: ucontact.slogo1248 msgid "Logo"1249 msgstr "Logo"1250 1251 #: ucontact.smainphone1252 msgid "Main phone"1253 msgstr "Hlavní telefon"1254 1255 #: ucontact.smastodon1256 msgid "Mastodon"1257 msgstr "Mastodon"1258 1259 #: ucontact.smatrix1260 msgid "Matrix"1261 msgstr "Matrix"1262 1263 #: ucontact.smiddlename1264 msgid "Middle Name"1265 msgstr "Prostřední jméno"1266 1267 #: ucontact.smobilephone1268 msgid "Mobile phone"1269 msgstr "Mobil"1270 1271 #: ucontact.smsn1272 msgid "MSN"1273 msgstr "MSN"1274 1275 #: ucontact.smyspace1276 msgid "MySpace"1277 msgstr "MySpace"1278 1279 #: ucontact.snickname1280 msgid "Nick name"1281 msgstr "Přezdívka"1282 1283 #: ucontact.snote1284 msgid "Note"1285 msgstr "Poznámky"1286 1287 #: ucontact.sorganization1288 msgid "Organization"1289 msgstr "Organizace"1290 1291 #: ucontact.spager1292 msgid "Pager"1293 msgstr "Pager"1294 1295 #: ucontact.speertube1296 msgid "PeerTube"1297 msgstr "PeerTube"1298 1299 #: ucontact.sphoto1300 msgctxt "ucontact.sphoto"1301 msgid "Photo"1302 msgstr "Fotka"1303 1304 #: ucontact.sqq1305 msgid "QQ"1306 msgstr "QQ"1307 1308 #: ucontact.sreddit1309 msgid "Reddit"1310 msgstr "Reddit"1311 1312 #: ucontact.srevision1313 msgid "Revision"1314 msgstr "Revize"1315 1316 #: ucontact.srole1317 msgid "Role"1318 msgstr "Role"1319 1320 #: ucontact.sskype1321 msgid "Skype"1322 msgstr "Skype"1323 1324 #: ucontact.ssnapchat1325 msgid "Snapchat"1326 msgstr "Snapchat"1327 1328 #: ucontact.stelephone1329 msgid "Telephone"1330 msgstr "Telefon"1331 1332 #: ucontact.stimescontacted1333 msgid "Times Contacted"1334 msgstr "Počet kontaktování"1335 1336 #: ucontact.stitle1337 msgid "Title"1338 msgstr "Titul"1339 1340 #: ucontact.stitleafter1341 msgid "Title After"1342 msgstr "Titul za"1343 1344 #: ucontact.stitlebefore1345 msgid "Title Before"1346 msgstr "Titul před"1347 1348 #: ucontact.stwitter1349 msgid "Twitter"1350 msgstr "Twitter"1351 1352 #: ucontact.suniqueidentifier1353 msgid "Unique identifier"1354 msgstr "Unikátní identifikátor"1355 1356 #: ucontact.svcardfile1357 msgctxt "ucontact.svcardfile"1358 msgid "vCard file"1359 msgstr "Soubor vCard"1360 1361 #: ucontact.sversion1362 msgid "Version"1363 msgstr "Verze"1364 1365 #: ucontact.svoipphone1366 msgid "VoIP phone"1367 msgstr "VoIP telefon"1368 1369 #: ucontact.swebaddress1370 msgid "Web address"1371 msgstr "Webová adresa"1372 1373 #: ucontact.swebaddresshome1374 msgid "Web address home"1375 msgstr "Webová adresa domácí"1376 1377 #: ucontact.swebaddresswork1378 msgid "Web address work"1379 msgstr "Webová adresa pracovní"1380 1381 #: ucontact.swindowslive1382 msgid "Windows Live"1383 msgstr "Windows Live"1384 1385 #: ucontact.sworkaddresscity1386 msgid "Work address city"1387 msgstr "Pracovní adresa město"1388 1389 #: ucontact.sworkaddresscountry1390 msgid "Work address country"1391 msgstr "Pracovní adresa země"1392 1393 #: ucontact.sworkaddresspostalcode1394 msgid "Work address postal code"1395 msgstr "Pracovní adresa PSČ"1396 1397 #: ucontact.sworkaddresspostofficebox1398 msgid "Work address post office box"1399 msgstr "Pracovní adresa číslo schránky"1400 1401 #: ucontact.sworkaddressregion1402 msgid "Work address region"1403 msgstr "Pracovní adresa kraj"1404 1405 #: ucontact.sworkaddressstreet1406 msgid "Work address street"1407 msgstr "Pracovní adresa ulice"1408 1409 #: ucontact.sworkaddressstreetextended1410 msgid "Work address extended street"1411 msgstr "Pracovní adresa rozšířená ulice"1412 1413 #: ucontact.sworkemail1414 msgid "Work E-mail"1415 msgstr "Práce E-mail"1416 1417 #: ucontact.sworkfax1418 msgid "Work fax"1419 msgstr "Práce fax"1420 1421 #: ucontact.sworkmobile1422 msgid "Work mobile"1423 msgstr "Práce mobil"1424 1425 #: ucontact.sworkpager1426 msgid "Work pager"1427 msgstr "Práce pager"1428 1429 #: ucontact.sworkphone1430 msgctxt "ucontact.sworkphone"1431 msgid "Work phone"1432 msgstr "Pracovní telefon"1433 1434 #: ucontact.syahoo1435 msgid "Yahoo!"1436 msgstr "Yahoo!"1437 1438 #: ucontact.syoutube1439 msgid "YouTube"1440 msgstr "YouTube"1441 1442 1083 #: ucore.sappexit 1443 1084 msgid "Application exit" … … 1598 1239 msgstr "Prošlo" 1599 1240 1241 #: uvcard.saim 1242 msgctxt "uvcard.saim" 1243 msgid "AIM" 1244 msgstr "AIM" 1245 1246 #: uvcard.sanniversary 1247 msgctxt "uvcard.sanniversary" 1248 msgid "Anniversary" 1249 msgstr "Výročí" 1250 1251 #: uvcard.scategories 1252 msgctxt "uvcard.scategories" 1253 msgid "Categories" 1254 msgstr "Kategorie" 1255 1256 #: uvcard.scontacthasnoparent 1257 msgctxt "uvcard.scontacthasnoparent" 1258 msgid "Contact has no parent" 1259 msgstr "Kontakt nemá rodiče" 1260 1261 #: uvcard.sdayofbirth 1262 msgctxt "uvcard.sdayofbirth" 1263 msgid "Day of birth" 1264 msgstr "Datum narození" 1265 1266 #: uvcard.sdepartement 1267 msgctxt "uvcard.sdepartement" 1268 msgid "Departement" 1269 msgstr "Oddělení" 1270 1271 #: uvcard.semail 1272 msgctxt "uvcard.semail" 1273 msgid "E-mail" 1274 msgstr "E-mail" 1275 1276 #: uvcard.sexpectedproperty 1277 msgctxt "uvcard.sexpectedproperty" 1278 msgid "Expected contact property" 1279 msgstr "Očekávána vlastnost kontaktu" 1280 1281 #: uvcard.sexpectedvcardbegin 1282 msgctxt "uvcard.sexpectedvcardbegin" 1283 msgid "Expected vCard begin" 1284 msgstr "Očekáván začátek vCard" 1285 1286 #: uvcard.sfacebook 1287 msgctxt "uvcard.sfacebook" 1288 msgid "Facebook" 1289 msgstr "Facebook" 1290 1291 #: uvcard.sfax 1292 msgctxt "uvcard.sfax" 1293 msgid "Fax" 1294 msgstr "Fax" 1295 1296 #: uvcard.sfieldindexnotdefined 1297 msgctxt "uvcard.sfieldindexnotdefined" 1298 msgid "Field index not defined" 1299 msgstr "Index pole nenalezen" 1300 1301 #: uvcard.sfieldindexredefined 1302 #, object-pascal-format 1303 msgctxt "uvcard.sfieldindexredefined" 1304 msgid "Field index %d redefined" 1305 msgstr "Index pole %d předefinován" 1306 1307 #: uvcard.sfirstname 1308 msgctxt "uvcard.sfirstname" 1309 msgid "First Name" 1310 msgstr "První Jméno" 1311 1312 #: uvcard.sfullname 1313 msgctxt "uvcard.sfullname" 1314 msgid "Full Name" 1315 msgstr "Celé jméno" 1316 1317 #: uvcard.sgadugadu 1318 msgctxt "uvcard.sgadugadu" 1319 msgid "GaduGadu" 1320 msgstr "GaduGadu" 1321 1322 #: uvcard.sgender 1323 msgctxt "uvcard.sgender" 1324 msgid "Gender" 1325 msgstr "Pohlaví" 1326 1327 #: uvcard.sgoogletalk 1328 msgctxt "uvcard.sgoogletalk" 1329 msgid "Google Talk" 1330 msgstr "Google Talk" 1331 1332 #: uvcard.sgroupwise 1333 msgctxt "uvcard.sgroupwise" 1334 msgid "GroupWise" 1335 msgstr "GroupWise" 1336 1337 #: uvcard.shomeaddresscity 1338 msgctxt "uvcard.shomeaddresscity" 1339 msgid "Home address city" 1340 msgstr "Domácí adresa město" 1341 1342 #: uvcard.shomeaddresscountry 1343 msgctxt "uvcard.shomeaddresscountry" 1344 msgid "Home address country" 1345 msgstr "Domácí adresa země" 1346 1347 #: uvcard.shomeaddresspostalcode 1348 msgctxt "uvcard.shomeaddresspostalcode" 1349 msgid "Home address postal code" 1350 msgstr "Domácí adresa PSČ" 1351 1352 #: uvcard.shomeaddresspostofficebox 1353 msgctxt "uvcard.shomeaddresspostofficebox" 1354 msgid "Home address post office box" 1355 msgstr "Domácí adresa číslo schránky" 1356 1357 #: uvcard.shomeaddressregion 1358 msgctxt "uvcard.shomeaddressregion" 1359 msgid "Home address region" 1360 msgstr "Domácí adresa kraj" 1361 1362 #: uvcard.shomeaddressstreet 1363 msgctxt "uvcard.shomeaddressstreet" 1364 msgid "Home address street" 1365 msgstr "Domácí adresa ulice" 1366 1367 #: uvcard.shomeaddressstreetextended 1368 msgctxt "uvcard.shomeaddressstreetextended" 1369 msgid "Home address extended street" 1370 msgstr "Domácí adresa rozšířená ulice" 1371 1372 #: uvcard.shomeemail 1373 msgctxt "uvcard.shomeemail" 1374 msgid "Home E-mail" 1375 msgstr "Domov E-mail" 1376 1377 #: uvcard.shomefax 1378 msgctxt "uvcard.shomefax" 1379 msgid "Home fax" 1380 msgstr "Domov fax" 1381 1382 #: uvcard.shomemobile 1383 msgctxt "uvcard.shomemobile" 1384 msgid "Home mobile" 1385 msgstr "Domov mobil" 1386 1387 #: uvcard.shomepager 1388 msgctxt "uvcard.shomepager" 1389 msgid "Home pager" 1390 msgstr "Domov pager" 1391 1392 #: uvcard.shomephone 1393 msgctxt "uvcard.shomephone" 1394 msgid "Home phone" 1395 msgstr "Domácí telefon" 1396 1397 #: uvcard.shomephone2 1398 msgctxt "uvcard.shomephone2" 1399 msgid "Home phone 2" 1400 msgstr "Domov telefon 2" 1401 1402 #: uvcard.sicq 1403 msgctxt "uvcard.sicq" 1404 msgid "ICQ" 1405 msgstr "ICQ" 1406 1407 #: uvcard.sinstagram 1408 msgctxt "uvcard.sinstagram" 1409 msgid "Instagram" 1410 msgstr "Instagram" 1411 1412 #: uvcard.sinternetemail 1413 msgctxt "uvcard.sinternetemail" 1414 msgid "Internet E-mail" 1415 msgstr "Internetový E-mail" 1416 1417 #: uvcard.sirc 1418 msgctxt "uvcard.sirc" 1419 msgid "IRC" 1420 msgstr "IRC" 1421 1422 #: uvcard.sjabber 1423 msgctxt "uvcard.sjabber" 1424 msgid "Jabber" 1425 msgstr "Jabber" 1426 1427 #: uvcard.slastname 1428 msgctxt "uvcard.slastname" 1429 msgid "Last Name" 1430 msgstr "Poslední jméno" 1431 1432 #: uvcard.slasttimecontacted 1433 msgctxt "uvcard.slasttimecontacted" 1434 msgid "Last Time Contacted" 1435 msgstr "Naposledy kontaktováno" 1436 1437 #: uvcard.slinkedin 1438 msgctxt "uvcard.slinkedin" 1439 msgid "LinkedIn" 1440 msgstr "LinkedIn" 1441 1442 #: uvcard.slogo 1443 msgctxt "uvcard.slogo" 1444 msgid "Logo" 1445 msgstr "Logo" 1446 1447 #: uvcard.smainphone 1448 msgctxt "uvcard.smainphone" 1449 msgid "Main phone" 1450 msgstr "Hlavní telefon" 1451 1452 #: uvcard.smastodon 1453 msgctxt "uvcard.smastodon" 1454 msgid "Mastodon" 1455 msgstr "Mastodon" 1456 1457 #: uvcard.smatrix 1458 msgctxt "uvcard.smatrix" 1459 msgid "Matrix" 1460 msgstr "Matrix" 1461 1462 #: uvcard.smiddlename 1463 msgctxt "uvcard.smiddlename" 1464 msgid "Middle Name" 1465 msgstr "Prostřední jméno" 1466 1467 #: uvcard.smobilephone 1468 msgctxt "uvcard.smobilephone" 1469 msgid "Mobile phone" 1470 msgstr "Mobil" 1471 1472 #: uvcard.smsn 1473 msgctxt "uvcard.smsn" 1474 msgid "MSN" 1475 msgstr "MSN" 1476 1477 #: uvcard.smyspace 1478 msgctxt "uvcard.smyspace" 1479 msgid "MySpace" 1480 msgstr "MySpace" 1481 1482 #: uvcard.snickname 1483 msgctxt "uvcard.snickname" 1484 msgid "Nick name" 1485 msgstr "Přezdívka" 1486 1487 #: uvcard.snote 1488 msgctxt "uvcard.snote" 1489 msgid "Note" 1490 msgstr "Poznámky" 1491 1492 #: uvcard.sorganization 1493 msgctxt "uvcard.sorganization" 1494 msgid "Organization" 1495 msgstr "Organizace" 1496 1497 #: uvcard.spager 1498 msgctxt "uvcard.spager" 1499 msgid "Pager" 1500 msgstr "Pager" 1501 1502 #: uvcard.speertube 1503 msgctxt "uvcard.speertube" 1504 msgid "PeerTube" 1505 msgstr "PeerTube" 1506 1507 #: uvcard.sphoto 1508 msgctxt "uvcard.sphoto" 1509 msgid "Photo" 1510 msgstr "Fotka" 1511 1512 #: uvcard.sqq 1513 msgctxt "uvcard.sqq" 1514 msgid "QQ" 1515 msgstr "QQ" 1516 1517 #: uvcard.sreddit 1518 msgctxt "uvcard.sreddit" 1519 msgid "Reddit" 1520 msgstr "Reddit" 1521 1522 #: uvcard.srevision 1523 msgctxt "uvcard.srevision" 1524 msgid "Revision" 1525 msgstr "Revize" 1526 1527 #: uvcard.srole 1528 msgctxt "uvcard.srole" 1529 msgid "Role" 1530 msgstr "Role" 1531 1532 #: uvcard.sskype 1533 msgctxt "uvcard.sskype" 1534 msgid "Skype" 1535 msgstr "Skype" 1536 1537 #: uvcard.ssnapchat 1538 msgctxt "uvcard.ssnapchat" 1539 msgid "Snapchat" 1540 msgstr "Snapchat" 1541 1542 #: uvcard.stelephone 1543 msgctxt "uvcard.stelephone" 1544 msgid "Telephone" 1545 msgstr "Telefon" 1546 1547 #: uvcard.stimescontacted 1548 msgctxt "uvcard.stimescontacted" 1549 msgid "Times Contacted" 1550 msgstr "Počet kontaktování" 1551 1552 #: uvcard.stitle 1553 msgctxt "uvcard.stitle" 1554 msgid "Title" 1555 msgstr "Titul" 1556 1557 #: uvcard.stitleafter 1558 msgctxt "uvcard.stitleafter" 1559 msgid "Title After" 1560 msgstr "Titul za" 1561 1562 #: uvcard.stitlebefore 1563 msgctxt "uvcard.stitlebefore" 1564 msgid "Title Before" 1565 msgstr "Titul před" 1566 1567 #: uvcard.stwitter 1568 msgctxt "uvcard.stwitter" 1569 msgid "Twitter" 1570 msgstr "Twitter" 1571 1572 #: uvcard.suniqueidentifier 1573 msgctxt "uvcard.suniqueidentifier" 1574 msgid "Unique identifier" 1575 msgstr "Unikátní identifikátor" 1576 1577 #: uvcard.sversion 1578 msgctxt "uvcard.sversion" 1579 msgid "Version" 1580 msgstr "Verze" 1581 1582 #: uvcard.svoipphone 1583 msgctxt "uvcard.svoipphone" 1584 msgid "VoIP phone" 1585 msgstr "VoIP telefon" 1586 1587 #: uvcard.swebaddress 1588 msgctxt "uvcard.swebaddress" 1589 msgid "Web address" 1590 msgstr "Webová adresa" 1591 1592 #: uvcard.swebaddresshome 1593 msgctxt "uvcard.swebaddresshome" 1594 msgid "Web address home" 1595 msgstr "Webová adresa domácí" 1596 1597 #: uvcard.swebaddresswork 1598 msgctxt "uvcard.swebaddresswork" 1599 msgid "Web address work" 1600 msgstr "Webová adresa pracovní" 1601 1602 #: uvcard.swindowslive 1603 msgctxt "uvcard.swindowslive" 1604 msgid "Windows Live" 1605 msgstr "Windows Live" 1606 1607 #: uvcard.sworkaddresscity 1608 msgctxt "uvcard.sworkaddresscity" 1609 msgid "Work address city" 1610 msgstr "Pracovní adresa město" 1611 1612 #: uvcard.sworkaddresscountry 1613 msgctxt "uvcard.sworkaddresscountry" 1614 msgid "Work address country" 1615 msgstr "Pracovní adresa země" 1616 1617 #: uvcard.sworkaddresspostalcode 1618 msgctxt "uvcard.sworkaddresspostalcode" 1619 msgid "Work address postal code" 1620 msgstr "Pracovní adresa PSČ" 1621 1622 #: uvcard.sworkaddresspostofficebox 1623 msgctxt "uvcard.sworkaddresspostofficebox" 1624 msgid "Work address post office box" 1625 msgstr "Pracovní adresa číslo schránky" 1626 1627 #: uvcard.sworkaddressregion 1628 msgctxt "uvcard.sworkaddressregion" 1629 msgid "Work address region" 1630 msgstr "Pracovní adresa kraj" 1631 1632 #: uvcard.sworkaddressstreet 1633 msgctxt "uvcard.sworkaddressstreet" 1634 msgid "Work address street" 1635 msgstr "Pracovní adresa ulice" 1636 1637 #: uvcard.sworkaddressstreetextended 1638 msgctxt "uvcard.sworkaddressstreetextended" 1639 msgid "Work address extended street" 1640 msgstr "Pracovní adresa rozšířená ulice" 1641 1642 #: uvcard.sworkemail 1643 msgctxt "uvcard.sworkemail" 1644 msgid "Work E-mail" 1645 msgstr "Práce E-mail" 1646 1647 #: uvcard.sworkfax 1648 msgctxt "uvcard.sworkfax" 1649 msgid "Work fax" 1650 msgstr "Práce fax" 1651 1652 #: uvcard.sworkmobile 1653 msgctxt "uvcard.sworkmobile" 1654 msgid "Work mobile" 1655 msgstr "Práce mobil" 1656 1657 #: uvcard.sworkpager 1658 msgctxt "uvcard.sworkpager" 1659 msgid "Work pager" 1660 msgstr "Práce pager" 1661 1662 #: uvcard.sworkphone 1663 msgctxt "uvcard.sworkphone" 1664 msgid "Work phone" 1665 msgstr "Pracovní telefon" 1666 1667 #: uvcard.syahoo 1668 msgctxt "uvcard.syahoo" 1669 msgid "Yahoo!" 1670 msgstr "Yahoo!" 1671 1672 #: uvcard.syoutube 1673 msgctxt "uvcard.syoutube" 1674 msgid "YouTube" 1675 msgstr "YouTube" 1676 1677 #: uvcardfile.svcardfile 1678 msgctxt "uvcardfile.svcardfile" 1679 msgid "vCard file" 1680 msgstr "Soubor vCard" -
trunk/Languages/vCardStudio.pot
r127 r129 1055 1055 msgstr "" 1056 1056 1057 #: ucontact.saim1058 msgid "AIM"1059 msgstr ""1060 1061 #: ucontact.sanniversary1062 msgid "Anniversary"1063 msgstr ""1064 1065 #: ucontact.scategories1066 msgid "Categories"1067 msgstr ""1068 1069 #: ucontact.scontacthasnoparent1070 msgid "Contact has no parent"1071 msgstr ""1072 1073 #: ucontact.sdayofbirth1074 msgid "Day of birth"1075 msgstr ""1076 1077 #: ucontact.sdepartement1078 msgid "Departement"1079 msgstr ""1080 1081 #: ucontact.semail1082 msgid "E-mail"1083 msgstr ""1084 1085 #: ucontact.sexpectedproperty1086 msgid "Expected contact property"1087 msgstr ""1088 1089 #: ucontact.sexpectedvcardbegin1090 msgid "Expected vCard begin"1091 msgstr ""1092 1093 #: ucontact.sfacebook1094 msgid "Facebook"1095 msgstr ""1096 1097 #: ucontact.sfax1098 msgid "Fax"1099 msgstr ""1100 1101 #: ucontact.sfieldindexnotdefined1102 msgid "Field index not defined"1103 msgstr ""1104 1105 #: ucontact.sfieldindexredefined1106 #, object-pascal-format1107 msgid "Field index %d redefined"1108 msgstr ""1109 1110 #: ucontact.sfirstname1111 msgid "First Name"1112 msgstr ""1113 1114 #: ucontact.sfullname1115 msgctxt "ucontact.sfullname"1116 msgid "Full Name"1117 msgstr ""1118 1119 #: ucontact.sgadugadu1120 msgid "GaduGadu"1121 msgstr ""1122 1123 #: ucontact.sgender1124 msgid "Gender"1125 msgstr ""1126 1127 #: ucontact.sgoogletalk1128 msgid "Google Talk"1129 msgstr ""1130 1131 #: ucontact.sgroupwise1132 msgid "GroupWise"1133 msgstr ""1134 1135 #: ucontact.shomeaddresscity1136 msgid "Home address city"1137 msgstr ""1138 1139 #: ucontact.shomeaddresscountry1140 msgid "Home address country"1141 msgstr ""1142 1143 #: ucontact.shomeaddresspostalcode1144 msgid "Home address postal code"1145 msgstr ""1146 1147 #: ucontact.shomeaddresspostofficebox1148 msgid "Home address post office box"1149 msgstr ""1150 1151 #: ucontact.shomeaddressregion1152 msgid "Home address region"1153 msgstr ""1154 1155 #: ucontact.shomeaddressstreet1156 msgid "Home address street"1157 msgstr ""1158 1159 #: ucontact.shomeaddressstreetextended1160 msgid "Home address extended street"1161 msgstr ""1162 1163 #: ucontact.shomeemail1164 msgid "Home E-mail"1165 msgstr ""1166 1167 #: ucontact.shomefax1168 msgid "Home fax"1169 msgstr ""1170 1171 #: ucontact.shomemobile1172 msgid "Home mobile"1173 msgstr ""1174 1175 #: ucontact.shomepager1176 msgid "Home pager"1177 msgstr ""1178 1179 #: ucontact.shomephone1180 msgctxt "ucontact.shomephone"1181 msgid "Home phone"1182 msgstr ""1183 1184 #: ucontact.shomephone21185 msgid "Home phone 2"1186 msgstr ""1187 1188 #: ucontact.sicq1189 msgid "ICQ"1190 msgstr ""1191 1192 #: ucontact.sinstagram1193 msgid "Instagram"1194 msgstr ""1195 1196 #: ucontact.sinternetemail1197 msgid "Internet E-mail"1198 msgstr ""1199 1200 #: ucontact.sirc1201 msgid "IRC"1202 msgstr ""1203 1204 #: ucontact.sjabber1205 msgid "Jabber"1206 msgstr ""1207 1208 #: ucontact.slastname1209 msgctxt "ucontact.slastname"1210 msgid "Last Name"1211 msgstr ""1212 1213 #: ucontact.slasttimecontacted1214 msgid "Last Time Contacted"1215 msgstr ""1216 1217 #: ucontact.slinkedin1218 msgid "LinkedIn"1219 msgstr ""1220 1221 #: ucontact.slogo1222 msgid "Logo"1223 msgstr ""1224 1225 #: ucontact.smainphone1226 msgid "Main phone"1227 msgstr ""1228 1229 #: ucontact.smastodon1230 msgid "Mastodon"1231 msgstr ""1232 1233 #: ucontact.smatrix1234 msgid "Matrix"1235 msgstr ""1236 1237 #: ucontact.smiddlename1238 msgid "Middle Name"1239 msgstr ""1240 1241 #: ucontact.smobilephone1242 msgid "Mobile phone"1243 msgstr ""1244 1245 #: ucontact.smsn1246 msgid "MSN"1247 msgstr ""1248 1249 #: ucontact.smyspace1250 msgid "MySpace"1251 msgstr ""1252 1253 #: ucontact.snickname1254 msgid "Nick name"1255 msgstr ""1256 1257 #: ucontact.snote1258 msgid "Note"1259 msgstr ""1260 1261 #: ucontact.sorganization1262 msgid "Organization"1263 msgstr ""1264 1265 #: ucontact.spager1266 msgid "Pager"1267 msgstr ""1268 1269 #: ucontact.speertube1270 msgid "PeerTube"1271 msgstr ""1272 1273 #: ucontact.sphoto1274 msgctxt "ucontact.sphoto"1275 msgid "Photo"1276 msgstr ""1277 1278 #: ucontact.sqq1279 msgid "QQ"1280 msgstr ""1281 1282 #: ucontact.sreddit1283 msgid "Reddit"1284 msgstr ""1285 1286 #: ucontact.srevision1287 msgid "Revision"1288 msgstr ""1289 1290 #: ucontact.srole1291 msgid "Role"1292 msgstr ""1293 1294 #: ucontact.sskype1295 msgid "Skype"1296 msgstr ""1297 1298 #: ucontact.ssnapchat1299 msgid "Snapchat"1300 msgstr ""1301 1302 #: ucontact.stelephone1303 msgid "Telephone"1304 msgstr ""1305 1306 #: ucontact.stimescontacted1307 msgid "Times Contacted"1308 msgstr ""1309 1310 #: ucontact.stitle1311 msgid "Title"1312 msgstr ""1313 1314 #: ucontact.stitleafter1315 msgid "Title After"1316 msgstr ""1317 1318 #: ucontact.stitlebefore1319 msgid "Title Before"1320 msgstr ""1321 1322 #: ucontact.stwitter1323 msgid "Twitter"1324 msgstr ""1325 1326 #: ucontact.suniqueidentifier1327 msgid "Unique identifier"1328 msgstr ""1329 1330 #: ucontact.svcardfile1331 msgid "vCard file"1332 msgstr ""1333 1334 #: ucontact.sversion1335 msgid "Version"1336 msgstr ""1337 1338 #: ucontact.svoipphone1339 msgid "VoIP phone"1340 msgstr ""1341 1342 #: ucontact.swebaddress1343 msgid "Web address"1344 msgstr ""1345 1346 #: ucontact.swebaddresshome1347 msgid "Web address home"1348 msgstr ""1349 1350 #: ucontact.swebaddresswork1351 msgid "Web address work"1352 msgstr ""1353 1354 #: ucontact.swindowslive1355 msgid "Windows Live"1356 msgstr ""1357 1358 #: ucontact.sworkaddresscity1359 msgid "Work address city"1360 msgstr ""1361 1362 #: ucontact.sworkaddresscountry1363 msgid "Work address country"1364 msgstr ""1365 1366 #: ucontact.sworkaddresspostalcode1367 msgid "Work address postal code"1368 msgstr ""1369 1370 #: ucontact.sworkaddresspostofficebox1371 msgid "Work address post office box"1372 msgstr ""1373 1374 #: ucontact.sworkaddressregion1375 msgid "Work address region"1376 msgstr ""1377 1378 #: ucontact.sworkaddressstreet1379 msgid "Work address street"1380 msgstr ""1381 1382 #: ucontact.sworkaddressstreetextended1383 msgid "Work address extended street"1384 msgstr ""1385 1386 #: ucontact.sworkemail1387 msgid "Work E-mail"1388 msgstr ""1389 1390 #: ucontact.sworkfax1391 msgid "Work fax"1392 msgstr ""1393 1394 #: ucontact.sworkmobile1395 msgid "Work mobile"1396 msgstr ""1397 1398 #: ucontact.sworkpager1399 msgid "Work pager"1400 msgstr ""1401 1402 #: ucontact.sworkphone1403 msgctxt "ucontact.sworkphone"1404 msgid "Work phone"1405 msgstr ""1406 1407 #: ucontact.syahoo1408 msgid "Yahoo!"1409 msgstr ""1410 1411 #: ucontact.syoutube1412 msgid "YouTube"1413 msgstr ""1414 1415 1057 #: ucore.sappexit 1416 1058 msgid "Application exit" … … 1570 1212 msgstr "" 1571 1213 1214 #: uvcard.saim 1215 msgctxt "uvcard.saim" 1216 msgid "AIM" 1217 msgstr "" 1218 1219 #: uvcard.sanniversary 1220 msgctxt "uvcard.sanniversary" 1221 msgid "Anniversary" 1222 msgstr "" 1223 1224 #: uvcard.scategories 1225 msgctxt "uvcard.scategories" 1226 msgid "Categories" 1227 msgstr "" 1228 1229 #: uvcard.scontacthasnoparent 1230 msgctxt "uvcard.scontacthasnoparent" 1231 msgid "Contact has no parent" 1232 msgstr "" 1233 1234 #: uvcard.sdayofbirth 1235 msgctxt "uvcard.sdayofbirth" 1236 msgid "Day of birth" 1237 msgstr "" 1238 1239 #: uvcard.sdepartement 1240 msgctxt "uvcard.sdepartement" 1241 msgid "Departement" 1242 msgstr "" 1243 1244 #: uvcard.semail 1245 msgctxt "uvcard.semail" 1246 msgid "E-mail" 1247 msgstr "" 1248 1249 #: uvcard.sexpectedproperty 1250 msgctxt "uvcard.sexpectedproperty" 1251 msgid "Expected contact property" 1252 msgstr "" 1253 1254 #: uvcard.sexpectedvcardbegin 1255 msgctxt "uvcard.sexpectedvcardbegin" 1256 msgid "Expected vCard begin" 1257 msgstr "" 1258 1259 #: uvcard.sfacebook 1260 msgctxt "uvcard.sfacebook" 1261 msgid "Facebook" 1262 msgstr "" 1263 1264 #: uvcard.sfax 1265 msgctxt "uvcard.sfax" 1266 msgid "Fax" 1267 msgstr "" 1268 1269 #: uvcard.sfieldindexnotdefined 1270 msgctxt "uvcard.sfieldindexnotdefined" 1271 msgid "Field index not defined" 1272 msgstr "" 1273 1274 #: uvcard.sfieldindexredefined 1275 #, object-pascal-format 1276 msgctxt "uvcard.sfieldindexredefined" 1277 msgid "Field index %d redefined" 1278 msgstr "" 1279 1280 #: uvcard.sfirstname 1281 msgctxt "uvcard.sfirstname" 1282 msgid "First Name" 1283 msgstr "" 1284 1285 #: uvcard.sfullname 1286 msgctxt "uvcard.sfullname" 1287 msgid "Full Name" 1288 msgstr "" 1289 1290 #: uvcard.sgadugadu 1291 msgctxt "uvcard.sgadugadu" 1292 msgid "GaduGadu" 1293 msgstr "" 1294 1295 #: uvcard.sgender 1296 msgctxt "uvcard.sgender" 1297 msgid "Gender" 1298 msgstr "" 1299 1300 #: uvcard.sgoogletalk 1301 msgctxt "uvcard.sgoogletalk" 1302 msgid "Google Talk" 1303 msgstr "" 1304 1305 #: uvcard.sgroupwise 1306 msgctxt "uvcard.sgroupwise" 1307 msgid "GroupWise" 1308 msgstr "" 1309 1310 #: uvcard.shomeaddresscity 1311 msgctxt "uvcard.shomeaddresscity" 1312 msgid "Home address city" 1313 msgstr "" 1314 1315 #: uvcard.shomeaddresscountry 1316 msgctxt "uvcard.shomeaddresscountry" 1317 msgid "Home address country" 1318 msgstr "" 1319 1320 #: uvcard.shomeaddresspostalcode 1321 msgctxt "uvcard.shomeaddresspostalcode" 1322 msgid "Home address postal code" 1323 msgstr "" 1324 1325 #: uvcard.shomeaddresspostofficebox 1326 msgctxt "uvcard.shomeaddresspostofficebox" 1327 msgid "Home address post office box" 1328 msgstr "" 1329 1330 #: uvcard.shomeaddressregion 1331 msgctxt "uvcard.shomeaddressregion" 1332 msgid "Home address region" 1333 msgstr "" 1334 1335 #: uvcard.shomeaddressstreet 1336 msgctxt "uvcard.shomeaddressstreet" 1337 msgid "Home address street" 1338 msgstr "" 1339 1340 #: uvcard.shomeaddressstreetextended 1341 msgctxt "uvcard.shomeaddressstreetextended" 1342 msgid "Home address extended street" 1343 msgstr "" 1344 1345 #: uvcard.shomeemail 1346 msgctxt "uvcard.shomeemail" 1347 msgid "Home E-mail" 1348 msgstr "" 1349 1350 #: uvcard.shomefax 1351 msgctxt "uvcard.shomefax" 1352 msgid "Home fax" 1353 msgstr "" 1354 1355 #: uvcard.shomemobile 1356 msgctxt "uvcard.shomemobile" 1357 msgid "Home mobile" 1358 msgstr "" 1359 1360 #: uvcard.shomepager 1361 msgctxt "uvcard.shomepager" 1362 msgid "Home pager" 1363 msgstr "" 1364 1365 #: uvcard.shomephone 1366 msgctxt "uvcard.shomephone" 1367 msgid "Home phone" 1368 msgstr "" 1369 1370 #: uvcard.shomephone2 1371 msgctxt "uvcard.shomephone2" 1372 msgid "Home phone 2" 1373 msgstr "" 1374 1375 #: uvcard.sicq 1376 msgctxt "uvcard.sicq" 1377 msgid "ICQ" 1378 msgstr "" 1379 1380 #: uvcard.sinstagram 1381 msgctxt "uvcard.sinstagram" 1382 msgid "Instagram" 1383 msgstr "" 1384 1385 #: uvcard.sinternetemail 1386 msgctxt "uvcard.sinternetemail" 1387 msgid "Internet E-mail" 1388 msgstr "" 1389 1390 #: uvcard.sirc 1391 msgctxt "uvcard.sirc" 1392 msgid "IRC" 1393 msgstr "" 1394 1395 #: uvcard.sjabber 1396 msgctxt "uvcard.sjabber" 1397 msgid "Jabber" 1398 msgstr "" 1399 1400 #: uvcard.slastname 1401 msgctxt "uvcard.slastname" 1402 msgid "Last Name" 1403 msgstr "" 1404 1405 #: uvcard.slasttimecontacted 1406 msgctxt "uvcard.slasttimecontacted" 1407 msgid "Last Time Contacted" 1408 msgstr "" 1409 1410 #: uvcard.slinkedin 1411 msgctxt "uvcard.slinkedin" 1412 msgid "LinkedIn" 1413 msgstr "" 1414 1415 #: uvcard.slogo 1416 msgctxt "uvcard.slogo" 1417 msgid "Logo" 1418 msgstr "" 1419 1420 #: uvcard.smainphone 1421 msgctxt "uvcard.smainphone" 1422 msgid "Main phone" 1423 msgstr "" 1424 1425 #: uvcard.smastodon 1426 msgctxt "uvcard.smastodon" 1427 msgid "Mastodon" 1428 msgstr "" 1429 1430 #: uvcard.smatrix 1431 msgctxt "uvcard.smatrix" 1432 msgid "Matrix" 1433 msgstr "" 1434 1435 #: uvcard.smiddlename 1436 msgctxt "uvcard.smiddlename" 1437 msgid "Middle Name" 1438 msgstr "" 1439 1440 #: uvcard.smobilephone 1441 msgctxt "uvcard.smobilephone" 1442 msgid "Mobile phone" 1443 msgstr "" 1444 1445 #: uvcard.smsn 1446 msgctxt "uvcard.smsn" 1447 msgid "MSN" 1448 msgstr "" 1449 1450 #: uvcard.smyspace 1451 msgctxt "uvcard.smyspace" 1452 msgid "MySpace" 1453 msgstr "" 1454 1455 #: uvcard.snickname 1456 msgctxt "uvcard.snickname" 1457 msgid "Nick name" 1458 msgstr "" 1459 1460 #: uvcard.snote 1461 msgctxt "uvcard.snote" 1462 msgid "Note" 1463 msgstr "" 1464 1465 #: uvcard.sorganization 1466 msgctxt "uvcard.sorganization" 1467 msgid "Organization" 1468 msgstr "" 1469 1470 #: uvcard.spager 1471 msgctxt "uvcard.spager" 1472 msgid "Pager" 1473 msgstr "" 1474 1475 #: uvcard.speertube 1476 msgctxt "uvcard.speertube" 1477 msgid "PeerTube" 1478 msgstr "" 1479 1480 #: uvcard.sphoto 1481 msgctxt "uvcard.sphoto" 1482 msgid "Photo" 1483 msgstr "" 1484 1485 #: uvcard.sqq 1486 msgctxt "uvcard.sqq" 1487 msgid "QQ" 1488 msgstr "" 1489 1490 #: uvcard.sreddit 1491 msgctxt "uvcard.sreddit" 1492 msgid "Reddit" 1493 msgstr "" 1494 1495 #: uvcard.srevision 1496 msgctxt "uvcard.srevision" 1497 msgid "Revision" 1498 msgstr "" 1499 1500 #: uvcard.srole 1501 msgctxt "uvcard.srole" 1502 msgid "Role" 1503 msgstr "" 1504 1505 #: uvcard.sskype 1506 msgctxt "uvcard.sskype" 1507 msgid "Skype" 1508 msgstr "" 1509 1510 #: uvcard.ssnapchat 1511 msgctxt "uvcard.ssnapchat" 1512 msgid "Snapchat" 1513 msgstr "" 1514 1515 #: uvcard.stelephone 1516 msgctxt "uvcard.stelephone" 1517 msgid "Telephone" 1518 msgstr "" 1519 1520 #: uvcard.stimescontacted 1521 msgctxt "uvcard.stimescontacted" 1522 msgid "Times Contacted" 1523 msgstr "" 1524 1525 #: uvcard.stitle 1526 msgctxt "uvcard.stitle" 1527 msgid "Title" 1528 msgstr "" 1529 1530 #: uvcard.stitleafter 1531 msgctxt "uvcard.stitleafter" 1532 msgid "Title After" 1533 msgstr "" 1534 1535 #: uvcard.stitlebefore 1536 msgctxt "uvcard.stitlebefore" 1537 msgid "Title Before" 1538 msgstr "" 1539 1540 #: uvcard.stwitter 1541 msgctxt "uvcard.stwitter" 1542 msgid "Twitter" 1543 msgstr "" 1544 1545 #: uvcard.suniqueidentifier 1546 msgctxt "uvcard.suniqueidentifier" 1547 msgid "Unique identifier" 1548 msgstr "" 1549 1550 #: uvcard.sversion 1551 msgctxt "uvcard.sversion" 1552 msgid "Version" 1553 msgstr "" 1554 1555 #: uvcard.svoipphone 1556 msgctxt "uvcard.svoipphone" 1557 msgid "VoIP phone" 1558 msgstr "" 1559 1560 #: uvcard.swebaddress 1561 msgctxt "uvcard.swebaddress" 1562 msgid "Web address" 1563 msgstr "" 1564 1565 #: uvcard.swebaddresshome 1566 msgctxt "uvcard.swebaddresshome" 1567 msgid "Web address home" 1568 msgstr "" 1569 1570 #: uvcard.swebaddresswork 1571 msgctxt "uvcard.swebaddresswork" 1572 msgid "Web address work" 1573 msgstr "" 1574 1575 #: uvcard.swindowslive 1576 msgctxt "uvcard.swindowslive" 1577 msgid "Windows Live" 1578 msgstr "" 1579 1580 #: uvcard.sworkaddresscity 1581 msgctxt "uvcard.sworkaddresscity" 1582 msgid "Work address city" 1583 msgstr "" 1584 1585 #: uvcard.sworkaddresscountry 1586 msgctxt "uvcard.sworkaddresscountry" 1587 msgid "Work address country" 1588 msgstr "" 1589 1590 #: uvcard.sworkaddresspostalcode 1591 msgctxt "uvcard.sworkaddresspostalcode" 1592 msgid "Work address postal code" 1593 msgstr "" 1594 1595 #: uvcard.sworkaddresspostofficebox 1596 msgctxt "uvcard.sworkaddresspostofficebox" 1597 msgid "Work address post office box" 1598 msgstr "" 1599 1600 #: uvcard.sworkaddressregion 1601 msgctxt "uvcard.sworkaddressregion" 1602 msgid "Work address region" 1603 msgstr "" 1604 1605 #: uvcard.sworkaddressstreet 1606 msgctxt "uvcard.sworkaddressstreet" 1607 msgid "Work address street" 1608 msgstr "" 1609 1610 #: uvcard.sworkaddressstreetextended 1611 msgctxt "uvcard.sworkaddressstreetextended" 1612 msgid "Work address extended street" 1613 msgstr "" 1614 1615 #: uvcard.sworkemail 1616 msgctxt "uvcard.sworkemail" 1617 msgid "Work E-mail" 1618 msgstr "" 1619 1620 #: uvcard.sworkfax 1621 msgctxt "uvcard.sworkfax" 1622 msgid "Work fax" 1623 msgstr "" 1624 1625 #: uvcard.sworkmobile 1626 msgctxt "uvcard.sworkmobile" 1627 msgid "Work mobile" 1628 msgstr "" 1629 1630 #: uvcard.sworkpager 1631 msgctxt "uvcard.sworkpager" 1632 msgid "Work pager" 1633 msgstr "" 1634 1635 #: uvcard.sworkphone 1636 msgctxt "uvcard.sworkphone" 1637 msgid "Work phone" 1638 msgstr "" 1639 1640 #: uvcard.syahoo 1641 msgctxt "uvcard.syahoo" 1642 msgid "Yahoo!" 1643 msgstr "" 1644 1645 #: uvcard.syoutube 1646 msgctxt "uvcard.syoutube" 1647 msgid "YouTube" 1648 msgstr "" 1649 1650 #: uvcardfile.svcardfile 1651 msgctxt "uvcardfile.svcardfile" 1652 msgid "vCard file" 1653 msgstr "" 1654 -
trunk/Languages/vCardStudio.sv.po
r127 r129 1091 1091 msgstr "Testfall" 1092 1092 1093 #: ucontact.saim1094 msgid "AIM"1095 msgstr "AIM"1096 1097 #: ucontact.sanniversary1098 msgid "Anniversary"1099 msgstr "Årsdag"1100 1101 #: ucontact.scategories1102 msgid "Categories"1103 msgstr "Kategori"1104 1105 #: ucontact.scontacthasnoparent1106 msgid "Contact has no parent"1107 msgstr "Kontakten har ingen förälder"1108 1109 #: ucontact.sdayofbirth1110 msgid "Day of birth"1111 msgstr "Födelsedag"1112 1113 #: ucontact.sdepartement1114 msgid "Departement"1115 msgstr "Avdelning"1116 1117 #: ucontact.semail1118 msgid "E-mail"1119 msgstr "E-mail"1120 1121 #: ucontact.sexpectedproperty1122 msgid "Expected contact property"1123 msgstr "Förväntade kontakters egenskaper"1124 1125 #: ucontact.sexpectedvcardbegin1126 msgid "Expected vCard begin"1127 msgstr "Förväntat början vCard"1128 1129 #: ucontact.sfacebook1130 msgid "Facebook"1131 msgstr "Facebook"1132 1133 #: ucontact.sfax1134 msgid "Fax"1135 msgstr "Fax"1136 1137 #: ucontact.sfieldindexnotdefined1138 msgid "Field index not defined"1139 msgstr "Fältindex hittades inte"1140 1141 #: ucontact.sfieldindexredefined1142 #, object-pascal-format1143 msgid "Field index %d redefined"1144 msgstr "Fältindex %d omdefinieras"1145 1146 #: ucontact.sfirstname1147 msgid "First Name"1148 msgstr "Förnamn"1149 1150 #: ucontact.sfullname1151 msgctxt "ucontact.sfullname"1152 msgid "Full Name"1153 msgstr "Fullständigt namn"1154 1155 #: ucontact.sgadugadu1156 msgid "GaduGadu"1157 msgstr "GaduGadu"1158 1159 #: ucontact.sgender1160 msgid "Gender"1161 msgstr "Kön"1162 1163 #: ucontact.sgoogletalk1164 msgid "Google Talk"1165 msgstr "Google Talk"1166 1167 #: ucontact.sgroupwise1168 msgid "GroupWise"1169 msgstr "GroupWise"1170 1171 #: ucontact.shomeaddresscity1172 msgid "Home address city"1173 msgstr "Hemadress ort/stad"1174 1175 #: ucontact.shomeaddresscountry1176 msgid "Home address country"1177 msgstr "Hemadress land"1178 1179 #: ucontact.shomeaddresspostalcode1180 msgid "Home address postal code"1181 msgstr "Hemadress postkod"1182 1183 #: ucontact.shomeaddresspostofficebox1184 msgid "Home address post office box"1185 msgstr "Hemadress postbox"1186 1187 #: ucontact.shomeaddressregion1188 msgid "Home address region"1189 msgstr "Hemadress region"1190 1191 #: ucontact.shomeaddressstreet1192 msgid "Home address street"1193 msgstr "Hemadress gata"1194 1195 #: ucontact.shomeaddressstreetextended1196 msgid "Home address extended street"1197 msgstr "Hemadress utökad gata"1198 1199 #: ucontact.shomeemail1200 msgid "Home E-mail"1201 msgstr "Hem E-mail"1202 1203 #: ucontact.shomefax1204 msgid "Home fax"1205 msgstr "Hem fax"1206 1207 #: ucontact.shomemobile1208 msgid "Home mobile"1209 msgstr "Hem mobil"1210 1211 #: ucontact.shomepager1212 msgid "Home pager"1213 msgstr "Hem pager"1214 1215 #: ucontact.shomephone1216 msgctxt "ucontact.shomephone"1217 msgid "Home phone"1218 msgstr "Hem telefon"1219 1220 #: ucontact.shomephone21221 msgid "Home phone 2"1222 msgstr "Hem telefon 2"1223 1224 #: ucontact.sicq1225 msgid "ICQ"1226 msgstr "ICQ"1227 1228 #: ucontact.sinstagram1229 msgid "Instagram"1230 msgstr "Instagram"1231 1232 #: ucontact.sinternetemail1233 msgid "Internet E-mail"1234 msgstr "Internet E-mail"1235 1236 #: ucontact.sirc1237 msgid "IRC"1238 msgstr "IRC"1239 1240 #: ucontact.sjabber1241 msgid "Jabber"1242 msgstr "Jabber"1243 1244 #: ucontact.slastname1245 msgctxt "ucontact.slastname"1246 msgid "Last Name"1247 msgstr "Efternamn"1248 1249 #: ucontact.slasttimecontacted1250 msgid "Last Time Contacted"1251 msgstr "Senaste kontaktad"1252 1253 #: ucontact.slinkedin1254 msgid "LinkedIn"1255 msgstr "LinkedIn"1256 1257 #: ucontact.slogo1258 msgid "Logo"1259 msgstr "Logo"1260 1261 #: ucontact.smainphone1262 msgid "Main phone"1263 msgstr "Huvud telefon"1264 1265 #: ucontact.smastodon1266 msgid "Mastodon"1267 msgstr "Mastodon"1268 1269 #: ucontact.smatrix1270 msgid "Matrix"1271 msgstr "Matrix"1272 1273 #: ucontact.smiddlename1274 msgid "Middle Name"1275 msgstr "Mellannamn"1276 1277 #: ucontact.smobilephone1278 msgid "Mobile phone"1279 msgstr "Mobil"1280 1281 #: ucontact.smsn1282 msgid "MSN"1283 msgstr "MSN"1284 1285 #: ucontact.smyspace1286 msgid "MySpace"1287 msgstr "MySpace"1288 1289 #: ucontact.snickname1290 msgid "Nick name"1291 msgstr "Smeknamn"1292 1293 #: ucontact.snote1294 msgid "Note"1295 msgstr "Noter"1296 1297 #: ucontact.sorganization1298 msgid "Organization"1299 msgstr "Organisation"1300 1301 #: ucontact.spager1302 msgid "Pager"1303 msgstr "Pager"1304 1305 #: ucontact.speertube1306 msgid "PeerTube"1307 msgstr "PeerTube"1308 1309 #: ucontact.sphoto1310 msgctxt "ucontact.sphoto"1311 msgid "Photo"1312 msgstr "Foto"1313 1314 #: ucontact.sqq1315 msgid "QQ"1316 msgstr "QQ"1317 1318 #: ucontact.sreddit1319 msgid "Reddit"1320 msgstr "Reddit"1321 1322 #: ucontact.srevision1323 msgid "Revision"1324 msgstr "Revision"1325 1326 #: ucontact.srole1327 msgid "Role"1328 msgstr "Roll"1329 1330 #: ucontact.sskype1331 msgid "Skype"1332 msgstr "Skype"1333 1334 #: ucontact.ssnapchat1335 msgid "Snapchat"1336 msgstr "Snapchat"1337 1338 #: ucontact.stelephone1339 msgid "Telephone"1340 msgstr "Telefon"1341 1342 #: ucontact.stimescontacted1343 msgid "Times Contacted"1344 msgstr "Antal kontaktad"1345 1346 #: ucontact.stitle1347 msgid "Title"1348 msgstr "Titel"1349 1350 #: ucontact.stitleafter1351 msgid "Title After"1352 msgstr "Titel efter"1353 1354 #: ucontact.stitlebefore1355 msgid "Title Before"1356 msgstr "Titel före"1357 1358 #: ucontact.stwitter1359 msgid "Twitter"1360 msgstr "Twitter"1361 1362 #: ucontact.suniqueidentifier1363 msgid "Unique identifier"1364 msgstr "Unik Identifierare"1365 1366 #: ucontact.svcardfile1367 msgctxt "ucontact.svcardfile"1368 msgid "vCard file"1369 msgstr "vCard fil"1370 1371 #: ucontact.sversion1372 msgid "Version"1373 msgstr "Version"1374 1375 #: ucontact.svoipphone1376 msgid "VoIP phone"1377 msgstr "VoIP telefon"1378 1379 #: ucontact.swebaddress1380 msgid "Web address"1381 msgstr "Webbadress"1382 1383 #: ucontact.swebaddresshome1384 msgid "Web address home"1385 msgstr "Webbadress hem"1386 1387 #: ucontact.swebaddresswork1388 msgid "Web address work"1389 msgstr "Webbadress jobb"1390 1391 #: ucontact.swindowslive1392 msgid "Windows Live"1393 msgstr "Windows Live"1394 1395 #: ucontact.sworkaddresscity1396 msgid "Work address city"1397 msgstr "Jobbadress ort/stad"1398 1399 #: ucontact.sworkaddresscountry1400 msgid "Work address country"1401 msgstr "Jobbadress land"1402 1403 #: ucontact.sworkaddresspostalcode1404 msgid "Work address postal code"1405 msgstr "Jobbadress postkod"1406 1407 #: ucontact.sworkaddresspostofficebox1408 msgid "Work address post office box"1409 msgstr "Jobbadress postbox"1410 1411 #: ucontact.sworkaddressregion1412 msgid "Work address region"1413 msgstr "Jobbadress region"1414 1415 #: ucontact.sworkaddressstreet1416 msgid "Work address street"1417 msgstr "Jobbadress gata"1418 1419 #: ucontact.sworkaddressstreetextended1420 msgid "Work address extended street"1421 msgstr "Jobbadress utökad gata"1422 1423 #: ucontact.sworkemail1424 msgid "Work E-mail"1425 msgstr "Jobb E-mail"1426 1427 #: ucontact.sworkfax1428 msgid "Work fax"1429 msgstr "Jobb fax"1430 1431 #: ucontact.sworkmobile1432 msgid "Work mobile"1433 msgstr "Jobb mobil"1434 1435 #: ucontact.sworkpager1436 msgid "Work pager"1437 msgstr "Jobb pager"1438 1439 #: ucontact.sworkphone1440 msgctxt "ucontact.sworkphone"1441 msgid "Work phone"1442 msgstr "Jobb telefon"1443 1444 #: ucontact.syahoo1445 msgid "Yahoo!"1446 msgstr "Yahoo!"1447 1448 #: ucontact.syoutube1449 msgid "YouTube"1450 msgstr "YouTube"1451 1452 1093 #: ucore.sappexit 1453 1094 msgid "Application exit" … … 1608 1249 msgstr "" 1609 1250 1251 #: uvcard.saim 1252 #, fuzzy 1253 msgctxt "uvcard.saim" 1254 msgid "AIM" 1255 msgstr "AIM" 1256 1257 #: uvcard.sanniversary 1258 #, fuzzy 1259 msgctxt "uvcard.sanniversary" 1260 msgid "Anniversary" 1261 msgstr "Årsdag" 1262 1263 #: uvcard.scategories 1264 #, fuzzy 1265 msgctxt "uvcard.scategories" 1266 msgid "Categories" 1267 msgstr "Kategori" 1268 1269 #: uvcard.scontacthasnoparent 1270 #, fuzzy 1271 msgctxt "uvcard.scontacthasnoparent" 1272 msgid "Contact has no parent" 1273 msgstr "Kontakten har ingen förälder" 1274 1275 #: uvcard.sdayofbirth 1276 #, fuzzy 1277 msgctxt "uvcard.sdayofbirth" 1278 msgid "Day of birth" 1279 msgstr "Födelsedag" 1280 1281 #: uvcard.sdepartement 1282 #, fuzzy 1283 msgctxt "uvcard.sdepartement" 1284 msgid "Departement" 1285 msgstr "Avdelning" 1286 1287 #: uvcard.semail 1288 #, fuzzy 1289 msgctxt "uvcard.semail" 1290 msgid "E-mail" 1291 msgstr "E-mail" 1292 1293 #: uvcard.sexpectedproperty 1294 #, fuzzy 1295 msgctxt "uvcard.sexpectedproperty" 1296 msgid "Expected contact property" 1297 msgstr "Förväntade kontakters egenskaper" 1298 1299 #: uvcard.sexpectedvcardbegin 1300 #, fuzzy 1301 msgctxt "uvcard.sexpectedvcardbegin" 1302 msgid "Expected vCard begin" 1303 msgstr "Förväntat början vCard" 1304 1305 #: uvcard.sfacebook 1306 #, fuzzy 1307 msgctxt "uvcard.sfacebook" 1308 msgid "Facebook" 1309 msgstr "Facebook" 1310 1311 #: uvcard.sfax 1312 #, fuzzy 1313 msgctxt "uvcard.sfax" 1314 msgid "Fax" 1315 msgstr "Fax" 1316 1317 #: uvcard.sfieldindexnotdefined 1318 #, fuzzy 1319 msgctxt "uvcard.sfieldindexnotdefined" 1320 msgid "Field index not defined" 1321 msgstr "Fältindex hittades inte" 1322 1323 #: uvcard.sfieldindexredefined 1324 #, object-pascal-format, fuzzy 1325 msgctxt "uvcard.sfieldindexredefined" 1326 msgid "Field index %d redefined" 1327 msgstr "Fältindex %d omdefinieras" 1328 1329 #: uvcard.sfirstname 1330 #, fuzzy 1331 msgctxt "uvcard.sfirstname" 1332 msgid "First Name" 1333 msgstr "Förnamn" 1334 1335 #: uvcard.sfullname 1336 #, fuzzy 1337 msgctxt "uvcard.sfullname" 1338 msgid "Full Name" 1339 msgstr "Hela namnet" 1340 1341 #: uvcard.sgadugadu 1342 #, fuzzy 1343 msgctxt "uvcard.sgadugadu" 1344 msgid "GaduGadu" 1345 msgstr "GaduGadu" 1346 1347 #: uvcard.sgender 1348 #, fuzzy 1349 msgctxt "uvcard.sgender" 1350 msgid "Gender" 1351 msgstr "Kön" 1352 1353 #: uvcard.sgoogletalk 1354 #, fuzzy 1355 msgctxt "uvcard.sgoogletalk" 1356 msgid "Google Talk" 1357 msgstr "Google Talk" 1358 1359 #: uvcard.sgroupwise 1360 #, fuzzy 1361 msgctxt "uvcard.sgroupwise" 1362 msgid "GroupWise" 1363 msgstr "GroupWise" 1364 1365 #: uvcard.shomeaddresscity 1366 #, fuzzy 1367 msgctxt "uvcard.shomeaddresscity" 1368 msgid "Home address city" 1369 msgstr "Hemadress ort/stad" 1370 1371 #: uvcard.shomeaddresscountry 1372 #, fuzzy 1373 msgctxt "uvcard.shomeaddresscountry" 1374 msgid "Home address country" 1375 msgstr "Hemadress land" 1376 1377 #: uvcard.shomeaddresspostalcode 1378 #, fuzzy 1379 msgctxt "uvcard.shomeaddresspostalcode" 1380 msgid "Home address postal code" 1381 msgstr "Hemadress postkod" 1382 1383 #: uvcard.shomeaddresspostofficebox 1384 #, fuzzy 1385 msgctxt "uvcard.shomeaddresspostofficebox" 1386 msgid "Home address post office box" 1387 msgstr "Hemadress postbox" 1388 1389 #: uvcard.shomeaddressregion 1390 #, fuzzy 1391 msgctxt "uvcard.shomeaddressregion" 1392 msgid "Home address region" 1393 msgstr "Hemadress region" 1394 1395 #: uvcard.shomeaddressstreet 1396 #, fuzzy 1397 msgctxt "uvcard.shomeaddressstreet" 1398 msgid "Home address street" 1399 msgstr "Hemadress gata" 1400 1401 #: uvcard.shomeaddressstreetextended 1402 #, fuzzy 1403 msgctxt "uvcard.shomeaddressstreetextended" 1404 msgid "Home address extended street" 1405 msgstr "Hemadress utökad gata" 1406 1407 #: uvcard.shomeemail 1408 #, fuzzy 1409 msgctxt "uvcard.shomeemail" 1410 msgid "Home E-mail" 1411 msgstr "Hem E-mail" 1412 1413 #: uvcard.shomefax 1414 #, fuzzy 1415 msgctxt "uvcard.shomefax" 1416 msgid "Home fax" 1417 msgstr "Hem fax" 1418 1419 #: uvcard.shomemobile 1420 #, fuzzy 1421 msgctxt "uvcard.shomemobile" 1422 msgid "Home mobile" 1423 msgstr "Hem mobil" 1424 1425 #: uvcard.shomepager 1426 #, fuzzy 1427 msgctxt "uvcard.shomepager" 1428 msgid "Home pager" 1429 msgstr "Hem pager" 1430 1431 #: uvcard.shomephone 1432 #, fuzzy 1433 msgctxt "uvcard.shomephone" 1434 msgid "Home phone" 1435 msgstr "Hem telefon" 1436 1437 #: uvcard.shomephone2 1438 #, fuzzy 1439 msgctxt "uvcard.shomephone2" 1440 msgid "Home phone 2" 1441 msgstr "Hem telefon 2" 1442 1443 #: uvcard.sicq 1444 #, fuzzy 1445 msgctxt "uvcard.sicq" 1446 msgid "ICQ" 1447 msgstr "ICQ" 1448 1449 #: uvcard.sinstagram 1450 #, fuzzy 1451 msgctxt "uvcard.sinstagram" 1452 msgid "Instagram" 1453 msgstr "Instagram" 1454 1455 #: uvcard.sinternetemail 1456 #, fuzzy 1457 msgctxt "uvcard.sinternetemail" 1458 msgid "Internet E-mail" 1459 msgstr "Internet E-mail" 1460 1461 #: uvcard.sirc 1462 #, fuzzy 1463 msgctxt "uvcard.sirc" 1464 msgid "IRC" 1465 msgstr "IRC" 1466 1467 #: uvcard.sjabber 1468 #, fuzzy 1469 msgctxt "uvcard.sjabber" 1470 msgid "Jabber" 1471 msgstr "Jabber" 1472 1473 #: uvcard.slastname 1474 #, fuzzy 1475 msgctxt "uvcard.slastname" 1476 msgid "Last Name" 1477 msgstr "Efternamn" 1478 1479 #: uvcard.slasttimecontacted 1480 #, fuzzy 1481 msgctxt "uvcard.slasttimecontacted" 1482 msgid "Last Time Contacted" 1483 msgstr "Senaste kontaktad" 1484 1485 #: uvcard.slinkedin 1486 #, fuzzy 1487 msgctxt "uvcard.slinkedin" 1488 msgid "LinkedIn" 1489 msgstr "LinkedIn" 1490 1491 #: uvcard.slogo 1492 #, fuzzy 1493 msgctxt "uvcard.slogo" 1494 msgid "Logo" 1495 msgstr "Logo" 1496 1497 #: uvcard.smainphone 1498 #, fuzzy 1499 msgctxt "uvcard.smainphone" 1500 msgid "Main phone" 1501 msgstr "Huvud telefon" 1502 1503 #: uvcard.smastodon 1504 #, fuzzy 1505 msgctxt "uvcard.smastodon" 1506 msgid "Mastodon" 1507 msgstr "Mastodon" 1508 1509 #: uvcard.smatrix 1510 #, fuzzy 1511 msgctxt "uvcard.smatrix" 1512 msgid "Matrix" 1513 msgstr "Matrix" 1514 1515 #: uvcard.smiddlename 1516 #, fuzzy 1517 msgctxt "uvcard.smiddlename" 1518 msgid "Middle Name" 1519 msgstr "Mellannamn" 1520 1521 #: uvcard.smobilephone 1522 #, fuzzy 1523 msgctxt "uvcard.smobilephone" 1524 msgid "Mobile phone" 1525 msgstr "Mobil" 1526 1527 #: uvcard.smsn 1528 #, fuzzy 1529 msgctxt "uvcard.smsn" 1530 msgid "MSN" 1531 msgstr "MSN" 1532 1533 #: uvcard.smyspace 1534 #, fuzzy 1535 msgctxt "uvcard.smyspace" 1536 msgid "MySpace" 1537 msgstr "MySpace" 1538 1539 #: uvcard.snickname 1540 #, fuzzy 1541 msgctxt "uvcard.snickname" 1542 msgid "Nick name" 1543 msgstr "Smeknamn" 1544 1545 #: uvcard.snote 1546 #, fuzzy 1547 msgctxt "uvcard.snote" 1548 msgid "Note" 1549 msgstr "Noter" 1550 1551 #: uvcard.sorganization 1552 #, fuzzy 1553 msgctxt "uvcard.sorganization" 1554 msgid "Organization" 1555 msgstr "Organisation" 1556 1557 #: uvcard.spager 1558 #, fuzzy 1559 msgctxt "uvcard.spager" 1560 msgid "Pager" 1561 msgstr "Pager" 1562 1563 #: uvcard.speertube 1564 #, fuzzy 1565 msgctxt "uvcard.speertube" 1566 msgid "PeerTube" 1567 msgstr "PeerTube" 1568 1569 #: uvcard.sphoto 1570 #, fuzzy 1571 msgctxt "uvcard.sphoto" 1572 msgid "Photo" 1573 msgstr "Foto" 1574 1575 #: uvcard.sqq 1576 #, fuzzy 1577 msgctxt "uvcard.sqq" 1578 msgid "QQ" 1579 msgstr "QQ" 1580 1581 #: uvcard.sreddit 1582 #, fuzzy 1583 msgctxt "uvcard.sreddit" 1584 msgid "Reddit" 1585 msgstr "Reddit" 1586 1587 #: uvcard.srevision 1588 #, fuzzy 1589 msgctxt "uvcard.srevision" 1590 msgid "Revision" 1591 msgstr "Revision" 1592 1593 #: uvcard.srole 1594 #, fuzzy 1595 msgctxt "uvcard.srole" 1596 msgid "Role" 1597 msgstr "Roll" 1598 1599 #: uvcard.sskype 1600 #, fuzzy 1601 msgctxt "uvcard.sskype" 1602 msgid "Skype" 1603 msgstr "Skype" 1604 1605 #: uvcard.ssnapchat 1606 #, fuzzy 1607 msgctxt "uvcard.ssnapchat" 1608 msgid "Snapchat" 1609 msgstr "Snapchat" 1610 1611 #: uvcard.stelephone 1612 #, fuzzy 1613 msgctxt "uvcard.stelephone" 1614 msgid "Telephone" 1615 msgstr "Telefon" 1616 1617 #: uvcard.stimescontacted 1618 #, fuzzy 1619 msgctxt "uvcard.stimescontacted" 1620 msgid "Times Contacted" 1621 msgstr "Antal kontaktad" 1622 1623 #: uvcard.stitle 1624 #, fuzzy 1625 msgctxt "uvcard.stitle" 1626 msgid "Title" 1627 msgstr "Titel" 1628 1629 #: uvcard.stitleafter 1630 #, fuzzy 1631 msgctxt "uvcard.stitleafter" 1632 msgid "Title After" 1633 msgstr "Titel efter" 1634 1635 #: uvcard.stitlebefore 1636 #, fuzzy 1637 msgctxt "uvcard.stitlebefore" 1638 msgid "Title Before" 1639 msgstr "Titel före" 1640 1641 #: uvcard.stwitter 1642 #, fuzzy 1643 msgctxt "uvcard.stwitter" 1644 msgid "Twitter" 1645 msgstr "Twitter" 1646 1647 #: uvcard.suniqueidentifier 1648 #, fuzzy 1649 msgctxt "uvcard.suniqueidentifier" 1650 msgid "Unique identifier" 1651 msgstr "Unik Identifierare" 1652 1653 #: uvcard.sversion 1654 #, fuzzy 1655 msgctxt "uvcard.sversion" 1656 msgid "Version" 1657 msgstr "Version" 1658 1659 #: uvcard.svoipphone 1660 #, fuzzy 1661 msgctxt "uvcard.svoipphone" 1662 msgid "VoIP phone" 1663 msgstr "VoIP telefon" 1664 1665 #: uvcard.swebaddress 1666 #, fuzzy 1667 msgctxt "uvcard.swebaddress" 1668 msgid "Web address" 1669 msgstr "Webbadress" 1670 1671 #: uvcard.swebaddresshome 1672 #, fuzzy 1673 msgctxt "uvcard.swebaddresshome" 1674 msgid "Web address home" 1675 msgstr "Webbadress hem" 1676 1677 #: uvcard.swebaddresswork 1678 #, fuzzy 1679 msgctxt "uvcard.swebaddresswork" 1680 msgid "Web address work" 1681 msgstr "Webbadress jobb" 1682 1683 #: uvcard.swindowslive 1684 #, fuzzy 1685 msgctxt "uvcard.swindowslive" 1686 msgid "Windows Live" 1687 msgstr "Windows Live" 1688 1689 #: uvcard.sworkaddresscity 1690 #, fuzzy 1691 msgctxt "uvcard.sworkaddresscity" 1692 msgid "Work address city" 1693 msgstr "Jobbadress ort/stad" 1694 1695 #: uvcard.sworkaddresscountry 1696 #, fuzzy 1697 msgctxt "uvcard.sworkaddresscountry" 1698 msgid "Work address country" 1699 msgstr "Jobbadress land" 1700 1701 #: uvcard.sworkaddresspostalcode 1702 #, fuzzy 1703 msgctxt "uvcard.sworkaddresspostalcode" 1704 msgid "Work address postal code" 1705 msgstr "Jobbadress postkod" 1706 1707 #: uvcard.sworkaddresspostofficebox 1708 #, fuzzy 1709 msgctxt "uvcard.sworkaddresspostofficebox" 1710 msgid "Work address post office box" 1711 msgstr "Jobbadress postbox" 1712 1713 #: uvcard.sworkaddressregion 1714 #, fuzzy 1715 msgctxt "uvcard.sworkaddressregion" 1716 msgid "Work address region" 1717 msgstr "Jobbadress region" 1718 1719 #: uvcard.sworkaddressstreet 1720 #, fuzzy 1721 msgctxt "uvcard.sworkaddressstreet" 1722 msgid "Work address street" 1723 msgstr "Jobbadress gata" 1724 1725 #: uvcard.sworkaddressstreetextended 1726 #, fuzzy 1727 msgctxt "uvcard.sworkaddressstreetextended" 1728 msgid "Work address extended street" 1729 msgstr "Jobbadress utökad gata" 1730 1731 #: uvcard.sworkemail 1732 #, fuzzy 1733 msgctxt "uvcard.sworkemail" 1734 msgid "Work E-mail" 1735 msgstr "Jobb E-mail" 1736 1737 #: uvcard.sworkfax 1738 #, fuzzy 1739 msgctxt "uvcard.sworkfax" 1740 msgid "Work fax" 1741 msgstr "Jobb fax" 1742 1743 #: uvcard.sworkmobile 1744 #, fuzzy 1745 msgctxt "uvcard.sworkmobile" 1746 msgid "Work mobile" 1747 msgstr "Jobb mobil" 1748 1749 #: uvcard.sworkpager 1750 #, fuzzy 1751 msgctxt "uvcard.sworkpager" 1752 msgid "Work pager" 1753 msgstr "Jobb pager" 1754 1755 #: uvcard.sworkphone 1756 #, fuzzy 1757 msgctxt "uvcard.sworkphone" 1758 msgid "Work phone" 1759 msgstr "Jobb telefon" 1760 1761 #: uvcard.syahoo 1762 #, fuzzy 1763 msgctxt "uvcard.syahoo" 1764 msgid "Yahoo!" 1765 msgstr "Yahoo!" 1766 1767 #: uvcard.syoutube 1768 #, fuzzy 1769 msgctxt "uvcard.syoutube" 1770 msgid "YouTube" 1771 msgstr "YouTube" 1772 1773 #: uvcardfile.svcardfile 1774 #, fuzzy 1775 msgctxt "uvcardfile.svcardfile" 1776 msgid "vCard file" 1777 msgstr "vCard fil" 1778 -
trunk/UContactImage.pas
r127 r129 4 4 5 5 uses 6 Classes, SysUtils, Graphics, U Contact, ExtCtrls;6 Classes, SysUtils, Graphics, UVCard, ExtCtrls; 7 7 8 8 type -
trunk/UCore.pas
r127 r129 114 114 115 115 uses 116 UFormMain, UFormSettings, U Contact, UFormContacts, UFormFindDuplicity, UTest,116 UFormMain, UFormSettings, UVCard, UFormContacts, UFormFindDuplicity, UTest, 117 117 UFormGenerate, UFormError, UFormFind, UFormTest, UFormSource, UFormCompare, 118 UTestCases ;118 UTestCases, UVCardFile; 119 119 120 120 resourcestring … … 156 156 for I := 0 to OpenDialog1.Files.Count - 1 do begin 157 157 if FileExists(OpenDialog1.Files[I]) then begin 158 TempFile := T ContactsFile.Create;158 TempFile := TVCardFile.Create; 159 159 try 160 160 TempFile.LoadFromFile(OpenDialog1.Files[I]); 161 T ContactsFile(DataFile).Contacts.AddContacts(TContactsFile(TempFile).Contacts);161 TVCardFile(DataFile).VCard.Contacts.AddContacts(TVCardFile(TempFile).VCard.Contacts); 162 162 Inc(LoadedFiles); 163 163 finally … … 166 166 end; 167 167 end; 168 if LoadedFiles > 0 then T ContactsFile(DataFile).Modified := True;168 if LoadedFiles > 0 then TVCardFile(DataFile).Modified := True; 169 169 ShowMessage(Format(SCombinedContacts, [LoadedFiles])); 170 170 UpdateFile; … … 193 193 DirectorySeparator + 'Compare' + VCardFileExt; 194 194 ForceDirectories(ExtractFileDir(TempFileName)); 195 T ContactsFile(DataFile).SaveToFile(TempFileName);195 TVCardFile(DataFile).SaveToFile(TempFileName); 196 196 LoadFileLeft(TempFileName); 197 197 LoadFileRight(OpenDialog1.FileName); … … 226 226 if SelectDirectoryDialog1.Execute then begin 227 227 LastSplitDir := SelectDirectoryDialog1.FileName; 228 with T ContactsFile(DataFile).Contacts do228 with TVCardFile(DataFile).VCard.Contacts do 229 229 for I := 0 to Count - 1 do begin 230 230 if Items[I].Fields[cfFullName] <> '' then begin … … 253 253 with TFormFindDuplicity.Create(nil) do 254 254 try 255 Contacts := T ContactsFile(DataFile).Contacts;255 Contacts := TVCardFile(DataFile).VCard.Contacts; 256 256 ShowModal; 257 257 FormContacts.ReloadList; … … 266 266 with TFormFind.Create(nil) do 267 267 try 268 Contacts := T ContactsFile(DataFile).Contacts;268 Contacts := TVCardFile(DataFile).VCard.Contacts; 269 269 ShowModal; 270 270 FormContacts.ReloadList; … … 279 279 with TFormGenerate.Create(nil) do 280 280 try 281 Contacts := T ContactsFile(DataFile).Contacts;281 Contacts := TVCardFile(DataFile).VCard.Contacts; 282 282 if ShowModal = mrOk then begin 283 283 FormContacts.ReloadList; … … 298 298 procedure TCore.ARemoveExactDuplicatesExecute(Sender: TObject); 299 299 begin 300 T ContactsFile(DataFile).Contacts.RemoveExactDuplicates;300 TVCardFile(DataFile).VCard.Contacts.RemoveExactDuplicates; 301 301 UpdateFile; 302 302 end; … … 336 336 with TFormSource.Create(nil) do 337 337 try 338 Source := T ContactsFile(DataFile).AsString;338 Source := TVCardFile(DataFile).VCard.AsString; 339 339 if ShowModal = mrOk then begin 340 T ContactsFile(DataFile).AsString := Source;340 TVCardFile(DataFile).VCard.AsString := Source; 341 341 UpdateFile; 342 342 end; … … 423 423 424 424 DataFile := nil; 425 DefaultDataFileClass := T ContactsFile;425 DefaultDataFileClass := TVCardFile; 426 426 FileClosed := True; 427 427 RecentFileRegistryContext := TRegistryContext.Create(ApplicationInfo1.RegistryRoot, … … 504 504 DataFile := DefaultDataFileClass.Create; 505 505 DataFile.OnModify := FileModified; 506 T ContactsFile(DataFile).OnError := DoError;506 TVCardFile(DataFile).VCard.OnError := DoError; 507 507 end; 508 508 end; … … 514 514 if Assigned(FormContacts) then begin 515 515 if Assigned(DataFile) then 516 FormContacts.Contacts := T ContactsFile(DataFile).Contacts516 FormContacts.Contacts := TVCardFile(DataFile).VCard.Contacts 517 517 else FormContacts.Contacts := nil; 518 518 FormContacts.ReloadList; -
trunk/UTest.pas
r128 r129 4 4 5 5 uses 6 Classes, SysUtils, Generics.Collections, U Contact;6 Classes, SysUtils, Generics.Collections, UVCard; 7 7 8 8 type … … 64 64 implementation 65 65 66 uses 67 UVCardFile; 68 66 69 resourcestring 67 70 SExpected = 'Expected:'; … … 84 87 Lines := TStringList.Create; 85 88 try 86 with T ContactsFile.Create do89 with TVCardFile.Create do 87 90 try 88 91 Lines.Text := Input; 89 LoadFromStrings(Lines);90 if ContactIndex < Contacts.Count then begin91 PropertyValue := Contacts[ContactIndex].Fields[Index];92 VCard.LoadFromStrings(Lines); 93 if ContactIndex < VCard.Contacts.Count then begin 94 PropertyValue := VCard.Contacts[ContactIndex].Fields[Index]; 92 95 Evaluate(PropertyValue = Value); 93 96 end else Fail; … … 112 115 Lines := TStringList.Create; 113 116 try 114 with T ContactsFile.Create do117 with TVCardFile.Create do 115 118 try 116 119 Lines.Text := Input; 117 LoadFromStrings(Lines);120 VCard.LoadFromStrings(Lines); 118 121 119 122 if Action = akRemoveExactDuplicates then 120 Contacts.RemoveExactDuplicates;123 VCard.Contacts.RemoveExactDuplicates; 121 124 122 125 Lines.Text := ''; 123 SaveToStrings(Lines);126 VCard.SaveToStrings(Lines); 124 127 Evaluate(Lines.Text = Output); 125 128 Log := SExpected + LineEnding + -
trunk/UTestCases.pas
r127 r129 12 12 13 13 uses 14 U Contact;14 UVCard; 15 15 16 16 const -
trunk/UVCard.pas
r127 r129 1 unit U Contact;1 unit UVCard; 2 2 3 3 interface 4 4 5 5 uses 6 Classes, SysUtils, fgl, Dialogs, UDataFile, LazUTF8, Base64, Graphics; 6 Classes, SysUtils, Dialogs, LazUTF8, Base64, Graphics, UListViewSort, 7 Generics.Collections, Generics.Defaults; 7 8 8 9 type … … 36 37 function GetCombined: string; 37 38 end; 38 39 TContactsFile = class;40 39 41 40 TErrorEvent = procedure (Text: string; Line: Integer) of object; … … 62 61 cfPeerTube, cfLinkedIn, cfMastodon, cfMySpace, cfReddit); 63 62 64 TContactFieldIndexes = T FPGList<TContactFieldIndex>;63 TContactFieldIndexes = TList<TContactFieldIndex>; 65 64 66 65 TContactFilterItem = class … … 71 70 { TContactFilterItems } 72 71 73 TContactFilterItems = class(T FPGObjectList<TContactFilterItem>)72 TContactFilterItems = class(TObjectList<TContactFilterItem>) 74 73 function AddNew(FieldIndex: TContactFieldIndex; Value: string): TContactFilterItem; 75 74 end; … … 98 97 { TContactFields } 99 98 100 TContactFields = class(T FPGObjectList<TContactField>)99 TContactFields = class(TObjectList<TContactField>) 101 100 private 102 101 Indexes: array[TContactFieldIndex] of TContactField; … … 143 142 { TContactProperties } 144 143 145 TContactProperties = class(T FPGObjectList<TContactProperty>)144 TContactProperties = class(TObjectList<TContactProperty>) 146 145 function AddNew(Name, Value: string): TContactProperty; 147 146 procedure Assign(Source: TContactProperties); 148 procedure AssignToList(List: T FPGObjectList<TObject>);147 procedure AssignToList(List: TObjects); 149 148 function GetByName(Name: string): TContactProperty; 150 149 function GetByNameGroups(Name: string; Groups: TStringArray; … … 153 152 NoGroups: TStringArray): TContactProperties; 154 153 end; 154 155 TVCard = class; 155 156 156 157 { TContact } … … 170 171 public 171 172 Properties: TContactProperties; 172 ContactsFile: TContactsFile;173 ParentVCard: TVCard; 173 174 class function GetFields: TContactFields; static; 174 175 function HasField(FieldIndex: TContactFieldIndex): Boolean; … … 197 198 { TContacts } 198 199 199 TContacts = class(T FPGObjectList<TContact>)200 ContactsFile: TContactsFile;200 TContacts = class(TObjectList<TContact>) 201 ParentVCard: TVCard; 201 202 procedure Assign(Source: TContacts); 203 procedure AssignToList(List: TObjects); 202 204 procedure AddContacts(Contacts: TContacts); 203 205 procedure InsertContacts(Index: Integer; Contacts: TContacts); 204 procedure AssignToList(List: TFPGObjectList<TObject>);205 206 function AddNew: TContact; 206 207 function Search(Text: string; FieldIndex: TContactFieldIndex): TContact; … … 209 210 function ToString: ansistring; override; 210 211 procedure RemoveExactDuplicates; 211 end; 212 213 { TContactsFile } 214 215 TContactsFile = class(TDataFile) 212 procedure Sort; 213 end; 214 215 { TVCard } 216 217 TVCard = class(TComponent) 216 218 private 217 219 FMaxLineLength: Integer; 220 FModified: Boolean; 221 FOnModify: TNotifyEvent; 218 222 FOnError: TErrorEvent; 223 function GetString: string; 224 procedure SetModified(AValue: Boolean); 225 procedure SetString(AValue: string); 219 226 procedure Error(Text: string; Line: Integer); 220 function GetString: string; 221 function NewItem(Key, Value: string): string; 222 procedure SetString(AValue: string); 227 procedure DoOnModify; 223 228 public 224 229 Contacts: TContacts; 225 function GetFileName: string; override; 226 function GetFileExt: string; override; 227 function GetFileFilter: string; override; 230 procedure Assign(Source: TPersistent); override; 228 231 procedure SaveToStrings(Output: TStrings); 229 232 procedure LoadFromStrings(Lines: TStrings); 230 procedure SaveToFile(FileName: string); override; 231 procedure LoadFromFile(FileName: string); override; 232 procedure Sort; 233 procedure Assign(Source: TContactsFile); 234 constructor Create; override; 233 procedure SaveToFile(FileName: string); 234 procedure LoadFromFile(FileName: string); 235 constructor Create(AOwner: TComponent); override; 235 236 destructor Destroy; override; 236 237 property AsString: string read GetString write SetString; 238 property Modified: Boolean read FModified write SetModified; 237 239 published 240 property MaxLineLength: Integer read FMaxLineLength write FMaxLineLength; 241 property OnModify: TNotifyEvent read FOnModify write FOnModify; 238 242 property OnError: TErrorEvent read FOnError write FOnError; 239 property MaxLineLength: Integer read FMaxLineLength write FMaxLineLength;240 243 end; 241 244 … … 261 264 262 265 resourcestring 263 SVCardFile = 'vCard file';264 266 SFieldIndexRedefined = 'Field index %d redefined'; 265 267 SExpectedVCardBegin = 'Expected vCard begin'; … … 518 520 end; 519 521 522 { TVCard } 523 524 function TVCard.GetString: string; 525 var 526 I: Integer; 527 begin 528 Result := ''; 529 for I := 0 to Contacts.Count - 1 do 530 Result := Result + Contacts[I].AsString; 531 end; 532 533 procedure TVCard.SetModified(AValue: Boolean); 534 begin 535 if FModified = AValue then Exit; 536 FModified := AValue; 537 DoOnModify; 538 end; 539 540 procedure TVCard.SetString(AValue: string); 541 var 542 Lines: TStringList; 543 begin 544 Lines := TStringList.Create; 545 try 546 Lines.Text := AValue; 547 LoadFromStrings(Lines); 548 Modified := True; 549 finally 550 Lines.Free; 551 end; 552 end; 553 554 procedure TVCard.DoOnModify; 555 begin 556 if Assigned(FOnModify) then FOnModify(Self); 557 end; 558 559 procedure TVCard.Error(Text: string; Line: Integer); 560 begin 561 if Assigned(FOnError) then FOnError(Text, Line); 562 end; 563 564 procedure TVCard.Assign(Source: TPersistent); 565 begin 566 inherited; 567 if Source is TVCard then Contacts.Assign((Source as TVCard).Contacts); 568 end; 569 570 procedure TVCard.SaveToStrings(Output: TStrings); 571 var 572 I: Integer; 573 begin 574 for I := 0 to Contacts.Count - 1 do 575 Contacts[I].SaveToStrings(Output); 576 end; 577 578 procedure TVCard.LoadFromStrings(Lines: TStrings); 579 var 580 Contact: TContact; 581 I: Integer; 582 begin 583 Contacts.Clear; 584 //MaxLineLength := 10; 585 586 I := 0; 587 while I < Lines.Count do begin 588 Contact := TContact.Create; 589 Contact.ParentVCard := Self; 590 if Contact.LoadFromStrings(Lines, I) then begin 591 Contacts.Add(Contact); 592 end else begin 593 FreeAndNil(Contact); 594 Inc(I); 595 end; 596 end; 597 end; 598 599 procedure TVCard.SaveToFile(FileName: string); 600 var 601 Lines: TStringList; 602 begin 603 Lines := TStringList.Create; 604 try 605 SaveToStrings(Lines); 606 Lines.SaveToFile(FileName); 607 finally 608 Lines.Free; 609 end 610 end; 611 612 procedure TVCard.LoadFromFile(FileName: string); 613 var 614 Lines: TStringList; 615 begin 616 Lines := TStringList.Create; 617 Lines.LoadFromFile(FileName); 618 {$IF FPC_FULLVERSION>=30200} 619 if (Length(Lines.Text) > 0) and (Pos(VCardBegin, Lines.Text) = 0) then begin 620 Lines.LoadFromFile(FileName, TEncoding.Unicode); 621 if (Length(Lines.Text) > 0) and (Pos(VCardBegin, Lines.Text) = 0) then begin 622 Lines.LoadFromFile(FileName, TEncoding.BigEndianUnicode); 623 end; 624 end; 625 {$ENDIF} 626 try 627 LoadFromStrings(Lines); 628 finally 629 Lines.Free; 630 end; 631 end; 632 633 constructor TVCard.Create(AOwner: TComponent); 634 begin 635 inherited; 636 FMaxLineLength := DefaultMaxLineLength; 637 Contacts := TContacts.Create; 638 Contacts.ParentVCard := Self; 639 end; 640 641 destructor TVCard.Destroy; 642 begin 643 FreeAndNil(Contacts); 644 inherited; 645 end; 646 520 647 function TNameDetails.GetAsNameParts: TNameParts; 521 648 var … … 846 973 I: Integer; 847 974 begin 848 while Count < Source.Count do 849 Add(TContactProperty.Create); 850 while Count > Source.Count do 851 Delete(Count - 1); 852 for I := 0 to Count - 1 do 853 Items[I].Assign(Source.Items[I]); 854 end; 855 856 procedure TContactProperties.AssignToList(List: TFPGObjectList<TObject>); 975 while Count > Source.Count do Delete(Count - 1); 976 while Count < Source.Count do Add(TContactProperty.Create); 977 for I := 0 to Count - 1 do Items[I].Assign(Source.Items[I]); 978 end; 979 980 procedure TContactProperties.AssignToList(List: TObjects); 857 981 var 858 982 I: Integer; 859 983 begin 860 984 while List.Count > Count do List.Delete(List.Count - 1); 861 while List.Count < Count do List.Add(nil); 862 for I := 0 to Count - 1 do 863 List[I] := Items[I]; 985 for I := 0 to List.Count - 1 do List[I] := Items[I]; 986 while List.Count < Count do List.Add(Items[List.Count]); 864 987 end; 865 988 … … 1085 1208 I: Integer; 1086 1209 begin 1087 while Count < Source.Count do 1088 Add(TContact.Create); 1089 while Count > Source.Count do 1090 Delete(Count - 1); 1210 while Count > Source.Count do Delete(Count - 1); 1211 while Count < Source.Count do Add(TContact.Create); 1091 1212 for I := 0 to Count - 1 do begin 1092 1213 Items[I].Assign(Source.Items[I]); 1093 Items[I]. ContactsFile := ContactsFile;1214 Items[I].ParentVCard := ParentVCard; 1094 1215 end; 1095 1216 end; … … 1108 1229 NewContact := TContact.Create; 1109 1230 NewContact.Assign(Contacts[I]); 1110 NewContact. ContactsFile := ContactsFile;1231 NewContact.ParentVCard := ParentVCard; 1111 1232 Insert(Index, NewContact); 1112 1233 Inc(Index); … … 1126 1247 end; 1127 1248 1128 procedure TContacts.AssignToList(List: TFPGObjectList<TObject>); 1249 function ComparePropertyName(constref Item1, Item2: TContactProperty): Integer; 1250 begin 1251 Result := CompareStr(Item1.Name + ';' + Item1.Attributes.Text, 1252 Item2.Name + ';' + Item2.Attributes.Text); 1253 end; 1254 1255 function CompareContactFullName(constref Item1, Item2: TContact): Integer; 1256 begin 1257 Result := CompareStr(Item1.Fields[cfFullName], Item2.Fields[cfFullName]); 1258 end; 1259 1260 procedure TContacts.Sort; 1261 var 1262 I: Integer; 1263 begin 1264 inherited Sort(TComparer<TContact>.Construct(CompareContactFullName)); 1265 for I := 0 to Count - 1 do 1266 Items[I].Properties.Sort(TComparer<TContactProperty>.Construct(ComparePropertyName)); 1267 end; 1268 1269 procedure TContacts.AssignToList(List: TObjects); 1129 1270 var 1130 1271 I: Integer; 1131 1272 begin 1132 1273 while List.Count > Count do List.Delete(List.Count - 1); 1133 while List.Count < Count do List.Add(nil); 1134 for I := 0 to Count - 1 do 1135 List[I] := Items[I]; 1274 for I := 0 to List.Count - 1 do List[I] := Items[I]; 1275 while List.Count < Count do List.Add(Items[List.Count]); 1136 1276 end; 1137 1277 … … 1139 1279 begin 1140 1280 Result := TContact.Create; 1141 Result. ContactsFile := ContactsFile;1281 Result.ParentVCard := ParentVCard; 1142 1282 Add(Result); 1143 1283 end; … … 1175 1315 NewContact := TContact.Create; 1176 1316 NewContact.Assign(Contact); 1177 NewContact. ContactsFile := ContactsFile;1317 NewContact.ParentVCard := ParentVCard; 1178 1318 Add(NewContact); 1179 1319 end; … … 1400 1540 Field: TContactField; 1401 1541 begin 1402 if not Assigned( ContactsFile) then1542 if not Assigned(ParentVCard) then 1403 1543 raise Exception.Create(SContactHasNoParent); 1404 1544 Field := GetFields.GetByIndex(Index); … … 1435 1575 I: Integer; 1436 1576 begin 1437 if not Assigned( ContactsFile) then1577 if not Assigned(ParentVCard) then 1438 1578 raise Exception.Create(SContactHasNoParent); 1439 1579 Field := GetFields.GetByIndex(Index); … … 1486 1626 Dec(LineLength); 1487 1627 end; 1488 if LineLength > ContactsFile.MaxLineLength then1489 ContactsFile.MaxLineLength := LineLength;1628 if LineLength > ParentVCard.MaxLineLength then 1629 ParentVCard.MaxLineLength := LineLength; 1490 1630 end; 1491 1631 … … 1509 1649 Field: TContactField; 1510 1650 begin 1511 if not Assigned( ContactsFile) then raise Exception.Create(SContactHasNoParent);1651 if not Assigned(ParentVCard) then raise Exception.Create(SContactHasNoParent); 1512 1652 Field := GetFields.GetByIndex(FieldIndex); 1513 1653 if Assigned(Field) then begin … … 1545 1685 Field: TContactField; 1546 1686 begin 1547 if not Assigned( ContactsFile) then raise Exception.Create(SContactHasNoParent);1687 if not Assigned(ParentVCard) then raise Exception.Create(SContactHasNoParent); 1548 1688 Field := GetFields.GetByIndex(FieldIndex); 1549 1689 if Assigned(Field) then begin … … 1562 1702 I: Integer; 1563 1703 begin 1564 if not Assigned( ContactsFile) then raise Exception.Create(SContactHasNoParent);1704 if not Assigned(ParentVCard) then raise Exception.Create(SContactHasNoParent); 1565 1705 Result := False; 1566 1706 for I := 0 to GetFields.Count - 1 do begin … … 1637 1777 LinePrefix := ''; 1638 1778 while True do begin 1639 if UTF8Length(OutText) > ContactsFile.MaxLineLength then begin1640 CutLength := ContactsFile.MaxLineLength;1779 if UTF8Length(OutText) > ParentVCard.MaxLineLength then begin 1780 CutLength := ParentVCard.MaxLineLength; 1641 1781 if Encoding = veQuotedPrintable then begin 1642 1782 Dec(CutLength); // There will be softline break at the end … … 1696 1836 ParseState := psInside; 1697 1837 end else begin 1698 ContactsFile.Error(SExpectedVCardBegin, I + 1);1838 ParentVCard.Error(SExpectedVCardBegin, I + 1); 1699 1839 Break; 1700 1840 end; … … 1742 1882 NewProperty.EvaluateAttributes; 1743 1883 end else begin 1744 ContactsFile.Error(SExpectedProperty, I + 1);1884 ParentVCard.Error(SExpectedProperty, I + 1); 1745 1885 Break; 1746 1886 end; … … 1787 1927 end; 1788 1928 1789 { TContactsFile }1790 1791 procedure TContactsFile.Error(Text: string; Line: Integer);1792 begin1793 if Assigned(FOnError) then FOnError(Text, Line);1794 end;1795 1796 function TContactsFile.GetString: string;1797 var1798 I: Integer;1799 begin1800 Result := '';1801 for I := 0 to Contacts.Count - 1 do1802 Result := Result + Contacts[I].AsString;1803 end;1804 1805 function TContactsFile.GetFileName: string;1806 begin1807 Result := SVCardFile;1808 end;1809 1810 function TContactsFile.GetFileExt: string;1811 begin1812 Result := VCardFileExt;1813 end;1814 1815 function TContactsFile.GetFileFilter: string;1816 begin1817 Result := GetFileName + ' (' + GetFileExt + ')|*' + GetFileExt + '|' + inherited;1818 end;1819 1820 procedure TContactsFile.SaveToStrings(Output: TStrings);1821 var1822 I: Integer;1823 begin1824 for I := 0 to Contacts.Count - 1 do1825 Contacts[I].SaveToStrings(Output);1826 end;1827 1828 procedure TContactsFile.LoadFromStrings(Lines: TStrings);1829 var1830 Contact: TContact;1831 I: Integer;1832 begin1833 Contacts.Clear;1834 //MaxLineLength := 10;1835 1836 I := 0;1837 while I < Lines.Count do begin1838 Contact := TContact.Create;1839 Contact.ContactsFile := Self;1840 if Contact.LoadFromStrings(Lines, I) then begin1841 Contacts.Add(Contact);1842 end else begin1843 FreeAndNil(Contact);1844 Inc(I);1845 end;1846 end;1847 end;1848 1849 function TContactsFile.NewItem(Key, Value: string): string;1850 var1851 Charset: string;1852 begin1853 if not IsAsciiString(Value) then Charset := ';CHARSET=UTF-8'1854 else Charset := '';1855 Result := Key + Charset + ':' + Value;1856 end;1857 1858 procedure TContactsFile.SetString(AValue: string);1859 var1860 Lines: TStringList;1861 begin1862 Lines := TStringList.Create;1863 try1864 Lines.Text := AValue;1865 LoadFromStrings(Lines);1866 Modified := True;1867 finally1868 Lines.Free;1869 end;1870 end;1871 1872 procedure TContactsFile.SaveToFile(FileName: string);1873 var1874 Lines: TStringList;1875 begin1876 inherited;1877 Lines := TStringList.Create;1878 try1879 SaveToStrings(Lines);1880 Lines.SaveToFile(FileName);1881 finally1882 Lines.Free;1883 end1884 end;1885 1886 procedure TContactsFile.LoadFromFile(FileName: string);1887 var1888 Lines: TStringList;1889 begin1890 inherited;1891 Lines := TStringList.Create;1892 Lines.LoadFromFile(FileName);1893 {$IF FPC_FULLVERSION>=30200}1894 if (Length(Lines.Text) > 0) and (Pos(VCardBegin, Lines.Text) = 0) then begin1895 Lines.LoadFromFile(FileName, TEncoding.Unicode);1896 if (Length(Lines.Text) > 0) and (Pos(VCardBegin, Lines.Text) = 0) then begin1897 Lines.LoadFromFile(FileName, TEncoding.BigEndianUnicode);1898 end;1899 end;1900 {$ENDIF}1901 try1902 LoadFromStrings(Lines);1903 finally1904 Lines.Free;1905 end;1906 end;1907 1908 function CompareContactFullName(const Item1, Item2: TContact): Integer;1909 begin1910 Result := CompareStr(Item1.Fields[cfFullName], Item2.Fields[cfFullName]);1911 end;1912 1913 function ComparePropertyName(const Item1, Item2: TContactProperty): Integer;1914 begin1915 Result := CompareStr(Item1.Name + ';' + Item1.Attributes.Text,1916 Item2.Name + ';' + Item2.Attributes.Text);1917 end;1918 1919 procedure TContactsFile.Sort;1920 var1921 I: Integer;1922 begin1923 Contacts.Sort(CompareContactFullName);1924 for I := 0 to Contacts.Count - 1 do1925 Contacts[I].Properties.Sort(ComparePropertyName);1926 end;1927 1928 procedure TContactsFile.Assign(Source: TContactsFile);1929 begin1930 inherited Assign(Source);1931 Contacts.Assign(Source.Contacts);1932 end;1933 1934 constructor TContactsFile.Create;1935 begin1936 inherited;1937 Contacts := TContacts.Create;1938 Contacts.ContactsFile := Self;1939 MaxLineLength := DefaultMaxLineLength;1940 end;1941 1942 destructor TContactsFile.Destroy;1943 begin1944 FreeAndNil(Contacts);1945 inherited;1946 end;1947 1948 1929 end. 1949 1930 -
trunk/vCardStudio.lpi
r128 r129 119 119 </Item6> 120 120 </RequiredPackages> 121 <Units Count="2 6">121 <Units Count="27"> 122 122 <Unit0> 123 123 <Filename Value="vCardStudio.lpr"/> … … 150 150 </Unit4> 151 151 <Unit5> 152 <Filename Value="U Contact.pas"/>152 <Filename Value="UVCard.pas"/> 153 153 <IsPartOfProject Value="True"/> 154 154 </Unit5> … … 275 275 <IsPartOfProject Value="True"/> 276 276 </Unit25> 277 <Unit26> 278 <Filename Value="UVCardFile.pas"/> 279 <IsPartOfProject Value="True"/> 280 </Unit26> 277 281 </Units> 278 282 </ProjectOptions> -
trunk/vCardStudio.lpr
r127 r129 6 6 {$ENDIF} 7 7 Interfaces, // this includes the LCL widgetset 8 Forms, UFormMain, UCore, Diff, Common, SysUtils, UFormCompare, UTestCases; 8 Forms, UFormMain, UCore, Diff, Common, SysUtils, UFormCompare, UTestCases, 9 UVCardFile; 9 10 10 11 {$R *.res}
Note:
See TracChangeset
for help on using the changeset viewer.