Changeset 129 for trunk


Ignore:
Timestamp:
Apr 9, 2022, 11:52:13 AM (3 years ago)
Author:
chronos
Message:
  • Added: TVCard as TComponent descendant.
  • Modified: TContactsFile renamed to TVCardFile and moved into separate file.
Location:
trunk
Files:
1 added
20 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/Forms/UFormCompare.pas

    r127 r129  
    55uses
    66  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, ExtCtrls, StdCtrls,
    7   UContact, Diff, LCLType, LCLIntf, ComCtrls, Buttons, Menus, ActnList, SynEdit,
     7  UVCard, Diff, LCLType, LCLIntf, ComCtrls, Buttons, Menus, ActnList, SynEdit,
    88  SynEditMiscClasses, SynHighlighterPosition, SynEditHighlighter, UCommon,
    99  USynEditEx;
     
    8383
    8484uses
    85   UCore;
     85  UCore, UVCardFile;
    8686
    8787{ TFormCompare }
     
    334334  Ext := ExtractFileExt(AFileName);
    335335  if Ext = VCardFileExt then begin
    336     with TContactsFile.Create do
     336    with TVCardFile.Create do
    337337    try
    338338      LoadFromFile(AFileName);
    339       Result := AsString;
     339      Result := VCard.AsString;
    340340    finally
    341341      Free;
  • trunk/Forms/UFormContact.pas

    r127 r129  
    55uses
    66  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
    7   ComCtrls, ActnList, Menus, ExtCtrls, ExtDlgs, Buttons, UContact, LCLIntf,
     7  ComCtrls, ActnList, Menus, ExtCtrls, ExtDlgs, Buttons, UVCard, LCLIntf,
    88  UFormProperties, DateUtils, {$IFDEF LCLGTK2}Gtk2Globals, {$ENDIF}UContactImage,
    99  ubarcodes;
  • trunk/Forms/UFormContacts.pas

    r128 r129  
    55uses
    66  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls,
    7   Menus, ActnList, UContact, UListViewSort, LazUTF8, Clipbrd,
     7  Menus, ActnList, UVCard, UListViewSort, LazUTF8, Clipbrd,
    88  Generics.Collections;
    99
     
    102102
    103103uses
    104   UFormContact, UCore;
     104  UFormContact, UCore, UVCardFile;
    105105
    106106resourcestring
     
    304304      ListView1.Columns.Delete(ListView1.Columns.Count - 1);
    305305    for I := 0 to ListView1.Columns.Count - 1 do begin
    306       if Assigned(Contacts) and Assigned(Contacts.ContactsFile) then begin
     306      if Assigned(Contacts) and Assigned(Contacts.ParentVCard) then begin
    307307        Field := TContact.GetFields.GetByIndex(ListViewColumns[I]);
    308308        if Assigned(Field) then
     
    334334    Contact := TContact.Create;
    335335    try
    336       Contact.ContactsFile := Contacts.ContactsFile;
     336      Contact.ParentVCard := Contacts.ParentVCard;
    337337      FormContact.Contact := Contact;
    338338      FormContact.OnGetPrevious := GetPreviousContact;
     
    364364    Contact := TContact.Create;
    365365    try
    366       Contact.ContactsFile := Contacts.ContactsFile;
     366      Contact.ParentVCard := Contacts.ParentVCard;
    367367      Contact.Assign(TContact(ListView1.Selected.Data));
    368368      FormContact.Contact := Contact;
     
    436436procedure TFormContacts.ALoadFromFileExecute(Sender: TObject);
    437437var
    438   TempFile: TContactsFile;
     438  TempFile: TVCardFile;
    439439begin
    440440  if Assigned(ListView1.Selected) then begin
    441     TempFile := TContactsFile.Create;
     441    TempFile := TVCardFile.Create;
    442442    try
    443443      OpenDialog1.Filter := TempFile.GetFileFilter;
     
    465465    Contact := TContact.Create;
    466466    try
    467       Contact.ContactsFile := Contacts.ContactsFile;
     467      Contact.ParentVCard := Contacts.ParentVCard;
    468468      Contact.Assign(TContact(ListView1.Selected.Data));
    469469      FormContact.Contact := Contact;
     
    486486procedure TFormContacts.APasteExecute(Sender: TObject);
    487487var
    488   PasteContacts: TContactsFile;
     488  PasteContacts: TVCardFile;
    489489  Lines: TStringList;
    490490begin
    491   PasteContacts := TContactsFile.Create;
     491  PasteContacts := TVCardFile.Create;
    492492  Lines := TStringList.Create;
    493493  try
    494494    Lines.Text := Clipboard.AsText;
    495     PasteContacts.LoadFromStrings(Lines);
    496     if PasteContacts.Contacts.Count > 0 then begin
     495    PasteContacts.VCard.LoadFromStrings(Lines);
     496    if PasteContacts.VCard.Contacts.Count > 0 then begin
    497497      if Assigned(ListView1.Selected) then begin
    498498        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);
    501501      Core.DataFile.Modified := True;
    502502      ReloadList;
     
    528528procedure TFormContacts.ASaveToFileExecute(Sender: TObject);
    529529var
    530   TempFile: TContactsFile;
     530  TempFile: TVCardFile;
    531531begin
    532532  if Assigned(ListView1.Selected) then begin
    533     TempFile := TContactsFile.Create;
     533    TempFile := TVCardFile.Create;
    534534    try
    535535      SaveDialog1.Filter := TempFile.GetFileFilter;
  • trunk/Forms/UFormFind.pas

    r128 r129  
    55uses
    66  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls,
    7   ExtCtrls, StdCtrls, ActnList, Menus, UContact, UFormContacts;
     7  ExtCtrls, StdCtrls, ActnList, Menus, UVCard, UFormContacts;
    88
    99type
  • trunk/Forms/UFormFindDuplicity.pas

    r128 r129  
    55uses
    66  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls,
    7   ExtCtrls, StdCtrls, ActnList, Menus, UContact, Generics.Collections,
     7  ExtCtrls, StdCtrls, ActnList, Menus, UVCard, Generics.Collections,
    88  Generics.Defaults;
    99
     
    6565
    6666uses
    67   UCore, UFormContacts;
     67  UCore, UFormContacts, UVCardFile;
    6868
    6969{ TFoundItems }
     
    191191    Form := TFormContacts.Create(nil);
    192192    Form.Contacts := TContacts.Create(False);
    193     Form.Contacts.ContactsFile := Contacts.ContactsFile;
     193    Form.Contacts.ParentVCard := Contacts.ParentVCard;
    194194    with TFoundItem(ListView1.Selected.Data) do
    195195      for I := 0 to Contacts.Count - 1 do
     
    202202          Form.Contacts.Remove(Contacts[I]);
    203203          Self.Contacts.Remove(Contacts[I]);
    204           Self.Contacts.ContactsFile.Modified := True;
     204          Self.Contacts.ParentVCard.Modified := True;
    205205        end;
    206206
     
    210210          Form.Contacts.Add(Form.Contacts[I]);
    211211          Self.Contacts.Add(Form.Contacts[I]);
    212           Self.Contacts.ContactsFile.Modified := True;
     212          Self.Contacts.ParentVCard.Modified := True;
    213213        end;
    214214    end;
     
    221221procedure TFormFindDuplicity.ButtonMergeClick(Sender: TObject);
    222222var
    223   TempContacts: TContactsFile;
    224   I: Integer;
    225 begin
    226   TempContacts := TContactsFile.Create;
     223  TempContacts: TVCardFile;
     224  I: Integer;
     225begin
     226  TempContacts := TVCardFile.Create;
    227227  try
    228228    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);
    231231    Find;
    232232  finally
  • trunk/Forms/UFormGenerate.pas

    r127 r129  
    55uses
    66  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
    7   Spin, UContact;
     7  Spin, UVCard;
    88
    99type
  • trunk/Forms/UFormMain.pas

    r127 r129  
    7676
    7777uses
    78   UCore, UFormContacts, UContact;
     78  UCore, UFormContacts, UVCard, UVCardFile;
    7979
    8080resourcestring
     
    121121    CoolBar1.AutosizeBands;
    122122
    123     FormContacts.Contacts := TContactsFile(Core.DataFile).Contacts;
     123    FormContacts.Contacts := TVCardFile(Core.DataFile).VCard.Contacts;
    124124    FormContacts.ManualDock(Self, nil, alClient);
    125125    FormContacts.Align := alClient;
  • trunk/Forms/UFormProperties.pas

    r128 r129  
    55uses
    66  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls,
    7   Menus, ActnList, UContact, UDataFile, UListViewSort, LazUTF8,
     7  Menus, ActnList, UVCard, UDataFile, UListViewSort, LazUTF8,
    88  Generics.Collections;
    99
  • trunk/Forms/UFormProperty.pas

    r127 r129  
    44
    55uses
    6   Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, UContact;
     6  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, UVCard;
    77
    88type
  • trunk/Forms/UFormSource.pas

    r127 r129  
    5151
    5252uses
    53   UCore, UTheme, UContact;
     53  UCore, UTheme, UVCard;
    5454
    5555{ TFormSource }
  • trunk/Forms/UFormTest.pas

    r128 r129  
    4949
    5050uses
    51   UCore, UFormTestCase, UContact;
     51  UCore, UFormTestCase, UVCard;
    5252
    5353{ TFormTest }
  • trunk/Languages/vCardStudio.cs.po

    r127 r129  
    10811081msgstr "Testový případ"
    10821082
    1083 #: ucontact.saim
    1084 msgid "AIM"
    1085 msgstr "AIM"
    1086 
    1087 #: ucontact.sanniversary
    1088 msgid "Anniversary"
    1089 msgstr "Výročí"
    1090 
    1091 #: ucontact.scategories
    1092 msgid "Categories"
    1093 msgstr "Kategorie"
    1094 
    1095 #: ucontact.scontacthasnoparent
    1096 msgid "Contact has no parent"
    1097 msgstr "Kontakt nemá rodiče"
    1098 
    1099 #: ucontact.sdayofbirth
    1100 msgid "Day of birth"
    1101 msgstr "Datum narození"
    1102 
    1103 #: ucontact.sdepartement
    1104 msgid "Departement"
    1105 msgstr "Oddělení"
    1106 
    1107 #: ucontact.semail
    1108 msgid "E-mail"
    1109 msgstr "E-mail"
    1110 
    1111 #: ucontact.sexpectedproperty
    1112 msgid "Expected contact property"
    1113 msgstr "Očekávána vlastnost kontaktu"
    1114 
    1115 #: ucontact.sexpectedvcardbegin
    1116 msgid "Expected vCard begin"
    1117 msgstr "Očekáván začátek vCard"
    1118 
    1119 #: ucontact.sfacebook
    1120 msgid "Facebook"
    1121 msgstr "Facebook"
    1122 
    1123 #: ucontact.sfax
    1124 msgid "Fax"
    1125 msgstr "Fax"
    1126 
    1127 #: ucontact.sfieldindexnotdefined
    1128 msgid "Field index not defined"
    1129 msgstr "Index pole nenalezen"
    1130 
    1131 #: ucontact.sfieldindexredefined
    1132 #, object-pascal-format
    1133 msgid "Field index %d redefined"
    1134 msgstr "Index pole %d předefinován"
    1135 
    1136 #: ucontact.sfirstname
    1137 msgid "First Name"
    1138 msgstr "První Jméno"
    1139 
    1140 #: ucontact.sfullname
    1141 msgctxt "ucontact.sfullname"
    1142 msgid "Full Name"
    1143 msgstr "Celé jméno"
    1144 
    1145 #: ucontact.sgadugadu
    1146 msgid "GaduGadu"
    1147 msgstr "GaduGadu"
    1148 
    1149 #: ucontact.sgender
    1150 msgid "Gender"
    1151 msgstr "Pohlaví"
    1152 
    1153 #: ucontact.sgoogletalk
    1154 msgid "Google Talk"
    1155 msgstr "Google Talk"
    1156 
    1157 #: ucontact.sgroupwise
    1158 msgid "GroupWise"
    1159 msgstr "GroupWise"
    1160 
    1161 #: ucontact.shomeaddresscity
    1162 msgid "Home address city"
    1163 msgstr "Domácí adresa město"
    1164 
    1165 #: ucontact.shomeaddresscountry
    1166 msgid "Home address country"
    1167 msgstr "Domácí adresa země"
    1168 
    1169 #: ucontact.shomeaddresspostalcode
    1170 msgid "Home address postal code"
    1171 msgstr "Domácí adresa PSČ"
    1172 
    1173 #: ucontact.shomeaddresspostofficebox
    1174 msgid "Home address post office box"
    1175 msgstr "Domácí adresa číslo schránky"
    1176 
    1177 #: ucontact.shomeaddressregion
    1178 msgid "Home address region"
    1179 msgstr "Domácí adresa kraj"
    1180 
    1181 #: ucontact.shomeaddressstreet
    1182 msgid "Home address street"
    1183 msgstr "Domácí adresa ulice"
    1184 
    1185 #: ucontact.shomeaddressstreetextended
    1186 msgid "Home address extended street"
    1187 msgstr "Domácí adresa rozšířená ulice"
    1188 
    1189 #: ucontact.shomeemail
    1190 msgid "Home E-mail"
    1191 msgstr "Domov E-mail"
    1192 
    1193 #: ucontact.shomefax
    1194 msgid "Home fax"
    1195 msgstr "Domov fax"
    1196 
    1197 #: ucontact.shomemobile
    1198 msgid "Home mobile"
    1199 msgstr "Domov mobil"
    1200 
    1201 #: ucontact.shomepager
    1202 msgid "Home pager"
    1203 msgstr "Domov pager"
    1204 
    1205 #: ucontact.shomephone
    1206 msgctxt "ucontact.shomephone"
    1207 msgid "Home phone"
    1208 msgstr "Domov telefon"
    1209 
    1210 #: ucontact.shomephone2
    1211 msgid "Home phone 2"
    1212 msgstr "Domov telefon 2"
    1213 
    1214 #: ucontact.sicq
    1215 msgid "ICQ"
    1216 msgstr "ICQ"
    1217 
    1218 #: ucontact.sinstagram
    1219 msgid "Instagram"
    1220 msgstr "Instagram"
    1221 
    1222 #: ucontact.sinternetemail
    1223 msgid "Internet E-mail"
    1224 msgstr "Internetový E-mail"
    1225 
    1226 #: ucontact.sirc
    1227 msgid "IRC"
    1228 msgstr "IRC"
    1229 
    1230 #: ucontact.sjabber
    1231 msgid "Jabber"
    1232 msgstr "Jabber"
    1233 
    1234 #: ucontact.slastname
    1235 msgctxt "ucontact.slastname"
    1236 msgid "Last Name"
    1237 msgstr "Poslední Jméno"
    1238 
    1239 #: ucontact.slasttimecontacted
    1240 msgid "Last Time Contacted"
    1241 msgstr "Naposledy kontaktováno"
    1242 
    1243 #: ucontact.slinkedin
    1244 msgid "LinkedIn"
    1245 msgstr "LinkedIn"
    1246 
    1247 #: ucontact.slogo
    1248 msgid "Logo"
    1249 msgstr "Logo"
    1250 
    1251 #: ucontact.smainphone
    1252 msgid "Main phone"
    1253 msgstr "Hlavní telefon"
    1254 
    1255 #: ucontact.smastodon
    1256 msgid "Mastodon"
    1257 msgstr "Mastodon"
    1258 
    1259 #: ucontact.smatrix
    1260 msgid "Matrix"
    1261 msgstr "Matrix"
    1262 
    1263 #: ucontact.smiddlename
    1264 msgid "Middle Name"
    1265 msgstr "Prostřední jméno"
    1266 
    1267 #: ucontact.smobilephone
    1268 msgid "Mobile phone"
    1269 msgstr "Mobil"
    1270 
    1271 #: ucontact.smsn
    1272 msgid "MSN"
    1273 msgstr "MSN"
    1274 
    1275 #: ucontact.smyspace
    1276 msgid "MySpace"
    1277 msgstr "MySpace"
    1278 
    1279 #: ucontact.snickname
    1280 msgid "Nick name"
    1281 msgstr "Přezdívka"
    1282 
    1283 #: ucontact.snote
    1284 msgid "Note"
    1285 msgstr "Poznámky"
    1286 
    1287 #: ucontact.sorganization
    1288 msgid "Organization"
    1289 msgstr "Organizace"
    1290 
    1291 #: ucontact.spager
    1292 msgid "Pager"
    1293 msgstr "Pager"
    1294 
    1295 #: ucontact.speertube
    1296 msgid "PeerTube"
    1297 msgstr "PeerTube"
    1298 
    1299 #: ucontact.sphoto
    1300 msgctxt "ucontact.sphoto"
    1301 msgid "Photo"
    1302 msgstr "Fotka"
    1303 
    1304 #: ucontact.sqq
    1305 msgid "QQ"
    1306 msgstr "QQ"
    1307 
    1308 #: ucontact.sreddit
    1309 msgid "Reddit"
    1310 msgstr "Reddit"
    1311 
    1312 #: ucontact.srevision
    1313 msgid "Revision"
    1314 msgstr "Revize"
    1315 
    1316 #: ucontact.srole
    1317 msgid "Role"
    1318 msgstr "Role"
    1319 
    1320 #: ucontact.sskype
    1321 msgid "Skype"
    1322 msgstr "Skype"
    1323 
    1324 #: ucontact.ssnapchat
    1325 msgid "Snapchat"
    1326 msgstr "Snapchat"
    1327 
    1328 #: ucontact.stelephone
    1329 msgid "Telephone"
    1330 msgstr "Telefon"
    1331 
    1332 #: ucontact.stimescontacted
    1333 msgid "Times Contacted"
    1334 msgstr "Počet kontaktování"
    1335 
    1336 #: ucontact.stitle
    1337 msgid "Title"
    1338 msgstr "Titul"
    1339 
    1340 #: ucontact.stitleafter
    1341 msgid "Title After"
    1342 msgstr "Titul za"
    1343 
    1344 #: ucontact.stitlebefore
    1345 msgid "Title Before"
    1346 msgstr "Titul před"
    1347 
    1348 #: ucontact.stwitter
    1349 msgid "Twitter"
    1350 msgstr "Twitter"
    1351 
    1352 #: ucontact.suniqueidentifier
    1353 msgid "Unique identifier"
    1354 msgstr "Unikátní identifikátor"
    1355 
    1356 #: ucontact.svcardfile
    1357 msgctxt "ucontact.svcardfile"
    1358 msgid "vCard file"
    1359 msgstr "Soubor vCard"
    1360 
    1361 #: ucontact.sversion
    1362 msgid "Version"
    1363 msgstr "Verze"
    1364 
    1365 #: ucontact.svoipphone
    1366 msgid "VoIP phone"
    1367 msgstr "VoIP telefon"
    1368 
    1369 #: ucontact.swebaddress
    1370 msgid "Web address"
    1371 msgstr "Webová adresa"
    1372 
    1373 #: ucontact.swebaddresshome
    1374 msgid "Web address home"
    1375 msgstr "Webová adresa domácí"
    1376 
    1377 #: ucontact.swebaddresswork
    1378 msgid "Web address work"
    1379 msgstr "Webová adresa pracovní"
    1380 
    1381 #: ucontact.swindowslive
    1382 msgid "Windows Live"
    1383 msgstr "Windows Live"
    1384 
    1385 #: ucontact.sworkaddresscity
    1386 msgid "Work address city"
    1387 msgstr "Pracovní adresa město"
    1388 
    1389 #: ucontact.sworkaddresscountry
    1390 msgid "Work address country"
    1391 msgstr "Pracovní adresa země"
    1392 
    1393 #: ucontact.sworkaddresspostalcode
    1394 msgid "Work address postal code"
    1395 msgstr "Pracovní adresa PSČ"
    1396 
    1397 #: ucontact.sworkaddresspostofficebox
    1398 msgid "Work address post office box"
    1399 msgstr "Pracovní adresa číslo schránky"
    1400 
    1401 #: ucontact.sworkaddressregion
    1402 msgid "Work address region"
    1403 msgstr "Pracovní adresa kraj"
    1404 
    1405 #: ucontact.sworkaddressstreet
    1406 msgid "Work address street"
    1407 msgstr "Pracovní adresa ulice"
    1408 
    1409 #: ucontact.sworkaddressstreetextended
    1410 msgid "Work address extended street"
    1411 msgstr "Pracovní adresa rozšířená ulice"
    1412 
    1413 #: ucontact.sworkemail
    1414 msgid "Work E-mail"
    1415 msgstr "Práce E-mail"
    1416 
    1417 #: ucontact.sworkfax
    1418 msgid "Work fax"
    1419 msgstr "Práce fax"
    1420 
    1421 #: ucontact.sworkmobile
    1422 msgid "Work mobile"
    1423 msgstr "Práce mobil"
    1424 
    1425 #: ucontact.sworkpager
    1426 msgid "Work pager"
    1427 msgstr "Práce pager"
    1428 
    1429 #: ucontact.sworkphone
    1430 msgctxt "ucontact.sworkphone"
    1431 msgid "Work phone"
    1432 msgstr "Pracovní telefon"
    1433 
    1434 #: ucontact.syahoo
    1435 msgid "Yahoo!"
    1436 msgstr "Yahoo!"
    1437 
    1438 #: ucontact.syoutube
    1439 msgid "YouTube"
    1440 msgstr "YouTube"
    1441 
    14421083#: ucore.sappexit
    14431084msgid "Application exit"
     
    15981239msgstr "Prošlo"
    15991240
     1241#: uvcard.saim
     1242msgctxt "uvcard.saim"
     1243msgid "AIM"
     1244msgstr "AIM"
     1245
     1246#: uvcard.sanniversary
     1247msgctxt "uvcard.sanniversary"
     1248msgid "Anniversary"
     1249msgstr "Výročí"
     1250
     1251#: uvcard.scategories
     1252msgctxt "uvcard.scategories"
     1253msgid "Categories"
     1254msgstr "Kategorie"
     1255
     1256#: uvcard.scontacthasnoparent
     1257msgctxt "uvcard.scontacthasnoparent"
     1258msgid "Contact has no parent"
     1259msgstr "Kontakt nemá rodiče"
     1260
     1261#: uvcard.sdayofbirth
     1262msgctxt "uvcard.sdayofbirth"
     1263msgid "Day of birth"
     1264msgstr "Datum narození"
     1265
     1266#: uvcard.sdepartement
     1267msgctxt "uvcard.sdepartement"
     1268msgid "Departement"
     1269msgstr "Oddělení"
     1270
     1271#: uvcard.semail
     1272msgctxt "uvcard.semail"
     1273msgid "E-mail"
     1274msgstr "E-mail"
     1275
     1276#: uvcard.sexpectedproperty
     1277msgctxt "uvcard.sexpectedproperty"
     1278msgid "Expected contact property"
     1279msgstr "Očekávána vlastnost kontaktu"
     1280
     1281#: uvcard.sexpectedvcardbegin
     1282msgctxt "uvcard.sexpectedvcardbegin"
     1283msgid "Expected vCard begin"
     1284msgstr "Očekáván začátek vCard"
     1285
     1286#: uvcard.sfacebook
     1287msgctxt "uvcard.sfacebook"
     1288msgid "Facebook"
     1289msgstr "Facebook"
     1290
     1291#: uvcard.sfax
     1292msgctxt "uvcard.sfax"
     1293msgid "Fax"
     1294msgstr "Fax"
     1295
     1296#: uvcard.sfieldindexnotdefined
     1297msgctxt "uvcard.sfieldindexnotdefined"
     1298msgid "Field index not defined"
     1299msgstr "Index pole nenalezen"
     1300
     1301#: uvcard.sfieldindexredefined
     1302#, object-pascal-format
     1303msgctxt "uvcard.sfieldindexredefined"
     1304msgid "Field index %d redefined"
     1305msgstr "Index pole %d předefinován"
     1306
     1307#: uvcard.sfirstname
     1308msgctxt "uvcard.sfirstname"
     1309msgid "First Name"
     1310msgstr "První Jméno"
     1311
     1312#: uvcard.sfullname
     1313msgctxt "uvcard.sfullname"
     1314msgid "Full Name"
     1315msgstr "Celé jméno"
     1316
     1317#: uvcard.sgadugadu
     1318msgctxt "uvcard.sgadugadu"
     1319msgid "GaduGadu"
     1320msgstr "GaduGadu"
     1321
     1322#: uvcard.sgender
     1323msgctxt "uvcard.sgender"
     1324msgid "Gender"
     1325msgstr "Pohlaví"
     1326
     1327#: uvcard.sgoogletalk
     1328msgctxt "uvcard.sgoogletalk"
     1329msgid "Google Talk"
     1330msgstr "Google Talk"
     1331
     1332#: uvcard.sgroupwise
     1333msgctxt "uvcard.sgroupwise"
     1334msgid "GroupWise"
     1335msgstr "GroupWise"
     1336
     1337#: uvcard.shomeaddresscity
     1338msgctxt "uvcard.shomeaddresscity"
     1339msgid "Home address city"
     1340msgstr "Domácí adresa město"
     1341
     1342#: uvcard.shomeaddresscountry
     1343msgctxt "uvcard.shomeaddresscountry"
     1344msgid "Home address country"
     1345msgstr "Domácí adresa země"
     1346
     1347#: uvcard.shomeaddresspostalcode
     1348msgctxt "uvcard.shomeaddresspostalcode"
     1349msgid "Home address postal code"
     1350msgstr "Domácí adresa PSČ"
     1351
     1352#: uvcard.shomeaddresspostofficebox
     1353msgctxt "uvcard.shomeaddresspostofficebox"
     1354msgid "Home address post office box"
     1355msgstr "Domácí adresa číslo schránky"
     1356
     1357#: uvcard.shomeaddressregion
     1358msgctxt "uvcard.shomeaddressregion"
     1359msgid "Home address region"
     1360msgstr "Domácí adresa kraj"
     1361
     1362#: uvcard.shomeaddressstreet
     1363msgctxt "uvcard.shomeaddressstreet"
     1364msgid "Home address street"
     1365msgstr "Domácí adresa ulice"
     1366
     1367#: uvcard.shomeaddressstreetextended
     1368msgctxt "uvcard.shomeaddressstreetextended"
     1369msgid "Home address extended street"
     1370msgstr "Domácí adresa rozšířená ulice"
     1371
     1372#: uvcard.shomeemail
     1373msgctxt "uvcard.shomeemail"
     1374msgid "Home E-mail"
     1375msgstr "Domov E-mail"
     1376
     1377#: uvcard.shomefax
     1378msgctxt "uvcard.shomefax"
     1379msgid "Home fax"
     1380msgstr "Domov fax"
     1381
     1382#: uvcard.shomemobile
     1383msgctxt "uvcard.shomemobile"
     1384msgid "Home mobile"
     1385msgstr "Domov mobil"
     1386
     1387#: uvcard.shomepager
     1388msgctxt "uvcard.shomepager"
     1389msgid "Home pager"
     1390msgstr "Domov pager"
     1391
     1392#: uvcard.shomephone
     1393msgctxt "uvcard.shomephone"
     1394msgid "Home phone"
     1395msgstr "Domácí telefon"
     1396
     1397#: uvcard.shomephone2
     1398msgctxt "uvcard.shomephone2"
     1399msgid "Home phone 2"
     1400msgstr "Domov telefon 2"
     1401
     1402#: uvcard.sicq
     1403msgctxt "uvcard.sicq"
     1404msgid "ICQ"
     1405msgstr "ICQ"
     1406
     1407#: uvcard.sinstagram
     1408msgctxt "uvcard.sinstagram"
     1409msgid "Instagram"
     1410msgstr "Instagram"
     1411
     1412#: uvcard.sinternetemail
     1413msgctxt "uvcard.sinternetemail"
     1414msgid "Internet E-mail"
     1415msgstr "Internetový E-mail"
     1416
     1417#: uvcard.sirc
     1418msgctxt "uvcard.sirc"
     1419msgid "IRC"
     1420msgstr "IRC"
     1421
     1422#: uvcard.sjabber
     1423msgctxt "uvcard.sjabber"
     1424msgid "Jabber"
     1425msgstr "Jabber"
     1426
     1427#: uvcard.slastname
     1428msgctxt "uvcard.slastname"
     1429msgid "Last Name"
     1430msgstr "Poslední jméno"
     1431
     1432#: uvcard.slasttimecontacted
     1433msgctxt "uvcard.slasttimecontacted"
     1434msgid "Last Time Contacted"
     1435msgstr "Naposledy kontaktováno"
     1436
     1437#: uvcard.slinkedin
     1438msgctxt "uvcard.slinkedin"
     1439msgid "LinkedIn"
     1440msgstr "LinkedIn"
     1441
     1442#: uvcard.slogo
     1443msgctxt "uvcard.slogo"
     1444msgid "Logo"
     1445msgstr "Logo"
     1446
     1447#: uvcard.smainphone
     1448msgctxt "uvcard.smainphone"
     1449msgid "Main phone"
     1450msgstr "Hlavní telefon"
     1451
     1452#: uvcard.smastodon
     1453msgctxt "uvcard.smastodon"
     1454msgid "Mastodon"
     1455msgstr "Mastodon"
     1456
     1457#: uvcard.smatrix
     1458msgctxt "uvcard.smatrix"
     1459msgid "Matrix"
     1460msgstr "Matrix"
     1461
     1462#: uvcard.smiddlename
     1463msgctxt "uvcard.smiddlename"
     1464msgid "Middle Name"
     1465msgstr "Prostřední jméno"
     1466
     1467#: uvcard.smobilephone
     1468msgctxt "uvcard.smobilephone"
     1469msgid "Mobile phone"
     1470msgstr "Mobil"
     1471
     1472#: uvcard.smsn
     1473msgctxt "uvcard.smsn"
     1474msgid "MSN"
     1475msgstr "MSN"
     1476
     1477#: uvcard.smyspace
     1478msgctxt "uvcard.smyspace"
     1479msgid "MySpace"
     1480msgstr "MySpace"
     1481
     1482#: uvcard.snickname
     1483msgctxt "uvcard.snickname"
     1484msgid "Nick name"
     1485msgstr "Přezdívka"
     1486
     1487#: uvcard.snote
     1488msgctxt "uvcard.snote"
     1489msgid "Note"
     1490msgstr "Poznámky"
     1491
     1492#: uvcard.sorganization
     1493msgctxt "uvcard.sorganization"
     1494msgid "Organization"
     1495msgstr "Organizace"
     1496
     1497#: uvcard.spager
     1498msgctxt "uvcard.spager"
     1499msgid "Pager"
     1500msgstr "Pager"
     1501
     1502#: uvcard.speertube
     1503msgctxt "uvcard.speertube"
     1504msgid "PeerTube"
     1505msgstr "PeerTube"
     1506
     1507#: uvcard.sphoto
     1508msgctxt "uvcard.sphoto"
     1509msgid "Photo"
     1510msgstr "Fotka"
     1511
     1512#: uvcard.sqq
     1513msgctxt "uvcard.sqq"
     1514msgid "QQ"
     1515msgstr "QQ"
     1516
     1517#: uvcard.sreddit
     1518msgctxt "uvcard.sreddit"
     1519msgid "Reddit"
     1520msgstr "Reddit"
     1521
     1522#: uvcard.srevision
     1523msgctxt "uvcard.srevision"
     1524msgid "Revision"
     1525msgstr "Revize"
     1526
     1527#: uvcard.srole
     1528msgctxt "uvcard.srole"
     1529msgid "Role"
     1530msgstr "Role"
     1531
     1532#: uvcard.sskype
     1533msgctxt "uvcard.sskype"
     1534msgid "Skype"
     1535msgstr "Skype"
     1536
     1537#: uvcard.ssnapchat
     1538msgctxt "uvcard.ssnapchat"
     1539msgid "Snapchat"
     1540msgstr "Snapchat"
     1541
     1542#: uvcard.stelephone
     1543msgctxt "uvcard.stelephone"
     1544msgid "Telephone"
     1545msgstr "Telefon"
     1546
     1547#: uvcard.stimescontacted
     1548msgctxt "uvcard.stimescontacted"
     1549msgid "Times Contacted"
     1550msgstr "Počet kontaktování"
     1551
     1552#: uvcard.stitle
     1553msgctxt "uvcard.stitle"
     1554msgid "Title"
     1555msgstr "Titul"
     1556
     1557#: uvcard.stitleafter
     1558msgctxt "uvcard.stitleafter"
     1559msgid "Title After"
     1560msgstr "Titul za"
     1561
     1562#: uvcard.stitlebefore
     1563msgctxt "uvcard.stitlebefore"
     1564msgid "Title Before"
     1565msgstr "Titul před"
     1566
     1567#: uvcard.stwitter
     1568msgctxt "uvcard.stwitter"
     1569msgid "Twitter"
     1570msgstr "Twitter"
     1571
     1572#: uvcard.suniqueidentifier
     1573msgctxt "uvcard.suniqueidentifier"
     1574msgid "Unique identifier"
     1575msgstr "Unikátní identifikátor"
     1576
     1577#: uvcard.sversion
     1578msgctxt "uvcard.sversion"
     1579msgid "Version"
     1580msgstr "Verze"
     1581
     1582#: uvcard.svoipphone
     1583msgctxt "uvcard.svoipphone"
     1584msgid "VoIP phone"
     1585msgstr "VoIP telefon"
     1586
     1587#: uvcard.swebaddress
     1588msgctxt "uvcard.swebaddress"
     1589msgid "Web address"
     1590msgstr "Webová adresa"
     1591
     1592#: uvcard.swebaddresshome
     1593msgctxt "uvcard.swebaddresshome"
     1594msgid "Web address home"
     1595msgstr "Webová adresa domácí"
     1596
     1597#: uvcard.swebaddresswork
     1598msgctxt "uvcard.swebaddresswork"
     1599msgid "Web address work"
     1600msgstr "Webová adresa pracovní"
     1601
     1602#: uvcard.swindowslive
     1603msgctxt "uvcard.swindowslive"
     1604msgid "Windows Live"
     1605msgstr "Windows Live"
     1606
     1607#: uvcard.sworkaddresscity
     1608msgctxt "uvcard.sworkaddresscity"
     1609msgid "Work address city"
     1610msgstr "Pracovní adresa město"
     1611
     1612#: uvcard.sworkaddresscountry
     1613msgctxt "uvcard.sworkaddresscountry"
     1614msgid "Work address country"
     1615msgstr "Pracovní adresa země"
     1616
     1617#: uvcard.sworkaddresspostalcode
     1618msgctxt "uvcard.sworkaddresspostalcode"
     1619msgid "Work address postal code"
     1620msgstr "Pracovní adresa PSČ"
     1621
     1622#: uvcard.sworkaddresspostofficebox
     1623msgctxt "uvcard.sworkaddresspostofficebox"
     1624msgid "Work address post office box"
     1625msgstr "Pracovní adresa číslo schránky"
     1626
     1627#: uvcard.sworkaddressregion
     1628msgctxt "uvcard.sworkaddressregion"
     1629msgid "Work address region"
     1630msgstr "Pracovní adresa kraj"
     1631
     1632#: uvcard.sworkaddressstreet
     1633msgctxt "uvcard.sworkaddressstreet"
     1634msgid "Work address street"
     1635msgstr "Pracovní adresa ulice"
     1636
     1637#: uvcard.sworkaddressstreetextended
     1638msgctxt "uvcard.sworkaddressstreetextended"
     1639msgid "Work address extended street"
     1640msgstr "Pracovní adresa rozšířená ulice"
     1641
     1642#: uvcard.sworkemail
     1643msgctxt "uvcard.sworkemail"
     1644msgid "Work E-mail"
     1645msgstr "Práce E-mail"
     1646
     1647#: uvcard.sworkfax
     1648msgctxt "uvcard.sworkfax"
     1649msgid "Work fax"
     1650msgstr "Práce fax"
     1651
     1652#: uvcard.sworkmobile
     1653msgctxt "uvcard.sworkmobile"
     1654msgid "Work mobile"
     1655msgstr "Práce mobil"
     1656
     1657#: uvcard.sworkpager
     1658msgctxt "uvcard.sworkpager"
     1659msgid "Work pager"
     1660msgstr "Práce pager"
     1661
     1662#: uvcard.sworkphone
     1663msgctxt "uvcard.sworkphone"
     1664msgid "Work phone"
     1665msgstr "Pracovní telefon"
     1666
     1667#: uvcard.syahoo
     1668msgctxt "uvcard.syahoo"
     1669msgid "Yahoo!"
     1670msgstr "Yahoo!"
     1671
     1672#: uvcard.syoutube
     1673msgctxt "uvcard.syoutube"
     1674msgid "YouTube"
     1675msgstr "YouTube"
     1676
     1677#: uvcardfile.svcardfile
     1678msgctxt "uvcardfile.svcardfile"
     1679msgid "vCard file"
     1680msgstr "Soubor vCard"
  • trunk/Languages/vCardStudio.pot

    r127 r129  
    10551055msgstr ""
    10561056
    1057 #: ucontact.saim
    1058 msgid "AIM"
    1059 msgstr ""
    1060 
    1061 #: ucontact.sanniversary
    1062 msgid "Anniversary"
    1063 msgstr ""
    1064 
    1065 #: ucontact.scategories
    1066 msgid "Categories"
    1067 msgstr ""
    1068 
    1069 #: ucontact.scontacthasnoparent
    1070 msgid "Contact has no parent"
    1071 msgstr ""
    1072 
    1073 #: ucontact.sdayofbirth
    1074 msgid "Day of birth"
    1075 msgstr ""
    1076 
    1077 #: ucontact.sdepartement
    1078 msgid "Departement"
    1079 msgstr ""
    1080 
    1081 #: ucontact.semail
    1082 msgid "E-mail"
    1083 msgstr ""
    1084 
    1085 #: ucontact.sexpectedproperty
    1086 msgid "Expected contact property"
    1087 msgstr ""
    1088 
    1089 #: ucontact.sexpectedvcardbegin
    1090 msgid "Expected vCard begin"
    1091 msgstr ""
    1092 
    1093 #: ucontact.sfacebook
    1094 msgid "Facebook"
    1095 msgstr ""
    1096 
    1097 #: ucontact.sfax
    1098 msgid "Fax"
    1099 msgstr ""
    1100 
    1101 #: ucontact.sfieldindexnotdefined
    1102 msgid "Field index not defined"
    1103 msgstr ""
    1104 
    1105 #: ucontact.sfieldindexredefined
    1106 #, object-pascal-format
    1107 msgid "Field index %d redefined"
    1108 msgstr ""
    1109 
    1110 #: ucontact.sfirstname
    1111 msgid "First Name"
    1112 msgstr ""
    1113 
    1114 #: ucontact.sfullname
    1115 msgctxt "ucontact.sfullname"
    1116 msgid "Full Name"
    1117 msgstr ""
    1118 
    1119 #: ucontact.sgadugadu
    1120 msgid "GaduGadu"
    1121 msgstr ""
    1122 
    1123 #: ucontact.sgender
    1124 msgid "Gender"
    1125 msgstr ""
    1126 
    1127 #: ucontact.sgoogletalk
    1128 msgid "Google Talk"
    1129 msgstr ""
    1130 
    1131 #: ucontact.sgroupwise
    1132 msgid "GroupWise"
    1133 msgstr ""
    1134 
    1135 #: ucontact.shomeaddresscity
    1136 msgid "Home address city"
    1137 msgstr ""
    1138 
    1139 #: ucontact.shomeaddresscountry
    1140 msgid "Home address country"
    1141 msgstr ""
    1142 
    1143 #: ucontact.shomeaddresspostalcode
    1144 msgid "Home address postal code"
    1145 msgstr ""
    1146 
    1147 #: ucontact.shomeaddresspostofficebox
    1148 msgid "Home address post office box"
    1149 msgstr ""
    1150 
    1151 #: ucontact.shomeaddressregion
    1152 msgid "Home address region"
    1153 msgstr ""
    1154 
    1155 #: ucontact.shomeaddressstreet
    1156 msgid "Home address street"
    1157 msgstr ""
    1158 
    1159 #: ucontact.shomeaddressstreetextended
    1160 msgid "Home address extended street"
    1161 msgstr ""
    1162 
    1163 #: ucontact.shomeemail
    1164 msgid "Home E-mail"
    1165 msgstr ""
    1166 
    1167 #: ucontact.shomefax
    1168 msgid "Home fax"
    1169 msgstr ""
    1170 
    1171 #: ucontact.shomemobile
    1172 msgid "Home mobile"
    1173 msgstr ""
    1174 
    1175 #: ucontact.shomepager
    1176 msgid "Home pager"
    1177 msgstr ""
    1178 
    1179 #: ucontact.shomephone
    1180 msgctxt "ucontact.shomephone"
    1181 msgid "Home phone"
    1182 msgstr ""
    1183 
    1184 #: ucontact.shomephone2
    1185 msgid "Home phone 2"
    1186 msgstr ""
    1187 
    1188 #: ucontact.sicq
    1189 msgid "ICQ"
    1190 msgstr ""
    1191 
    1192 #: ucontact.sinstagram
    1193 msgid "Instagram"
    1194 msgstr ""
    1195 
    1196 #: ucontact.sinternetemail
    1197 msgid "Internet E-mail"
    1198 msgstr ""
    1199 
    1200 #: ucontact.sirc
    1201 msgid "IRC"
    1202 msgstr ""
    1203 
    1204 #: ucontact.sjabber
    1205 msgid "Jabber"
    1206 msgstr ""
    1207 
    1208 #: ucontact.slastname
    1209 msgctxt "ucontact.slastname"
    1210 msgid "Last Name"
    1211 msgstr ""
    1212 
    1213 #: ucontact.slasttimecontacted
    1214 msgid "Last Time Contacted"
    1215 msgstr ""
    1216 
    1217 #: ucontact.slinkedin
    1218 msgid "LinkedIn"
    1219 msgstr ""
    1220 
    1221 #: ucontact.slogo
    1222 msgid "Logo"
    1223 msgstr ""
    1224 
    1225 #: ucontact.smainphone
    1226 msgid "Main phone"
    1227 msgstr ""
    1228 
    1229 #: ucontact.smastodon
    1230 msgid "Mastodon"
    1231 msgstr ""
    1232 
    1233 #: ucontact.smatrix
    1234 msgid "Matrix"
    1235 msgstr ""
    1236 
    1237 #: ucontact.smiddlename
    1238 msgid "Middle Name"
    1239 msgstr ""
    1240 
    1241 #: ucontact.smobilephone
    1242 msgid "Mobile phone"
    1243 msgstr ""
    1244 
    1245 #: ucontact.smsn
    1246 msgid "MSN"
    1247 msgstr ""
    1248 
    1249 #: ucontact.smyspace
    1250 msgid "MySpace"
    1251 msgstr ""
    1252 
    1253 #: ucontact.snickname
    1254 msgid "Nick name"
    1255 msgstr ""
    1256 
    1257 #: ucontact.snote
    1258 msgid "Note"
    1259 msgstr ""
    1260 
    1261 #: ucontact.sorganization
    1262 msgid "Organization"
    1263 msgstr ""
    1264 
    1265 #: ucontact.spager
    1266 msgid "Pager"
    1267 msgstr ""
    1268 
    1269 #: ucontact.speertube
    1270 msgid "PeerTube"
    1271 msgstr ""
    1272 
    1273 #: ucontact.sphoto
    1274 msgctxt "ucontact.sphoto"
    1275 msgid "Photo"
    1276 msgstr ""
    1277 
    1278 #: ucontact.sqq
    1279 msgid "QQ"
    1280 msgstr ""
    1281 
    1282 #: ucontact.sreddit
    1283 msgid "Reddit"
    1284 msgstr ""
    1285 
    1286 #: ucontact.srevision
    1287 msgid "Revision"
    1288 msgstr ""
    1289 
    1290 #: ucontact.srole
    1291 msgid "Role"
    1292 msgstr ""
    1293 
    1294 #: ucontact.sskype
    1295 msgid "Skype"
    1296 msgstr ""
    1297 
    1298 #: ucontact.ssnapchat
    1299 msgid "Snapchat"
    1300 msgstr ""
    1301 
    1302 #: ucontact.stelephone
    1303 msgid "Telephone"
    1304 msgstr ""
    1305 
    1306 #: ucontact.stimescontacted
    1307 msgid "Times Contacted"
    1308 msgstr ""
    1309 
    1310 #: ucontact.stitle
    1311 msgid "Title"
    1312 msgstr ""
    1313 
    1314 #: ucontact.stitleafter
    1315 msgid "Title After"
    1316 msgstr ""
    1317 
    1318 #: ucontact.stitlebefore
    1319 msgid "Title Before"
    1320 msgstr ""
    1321 
    1322 #: ucontact.stwitter
    1323 msgid "Twitter"
    1324 msgstr ""
    1325 
    1326 #: ucontact.suniqueidentifier
    1327 msgid "Unique identifier"
    1328 msgstr ""
    1329 
    1330 #: ucontact.svcardfile
    1331 msgid "vCard file"
    1332 msgstr ""
    1333 
    1334 #: ucontact.sversion
    1335 msgid "Version"
    1336 msgstr ""
    1337 
    1338 #: ucontact.svoipphone
    1339 msgid "VoIP phone"
    1340 msgstr ""
    1341 
    1342 #: ucontact.swebaddress
    1343 msgid "Web address"
    1344 msgstr ""
    1345 
    1346 #: ucontact.swebaddresshome
    1347 msgid "Web address home"
    1348 msgstr ""
    1349 
    1350 #: ucontact.swebaddresswork
    1351 msgid "Web address work"
    1352 msgstr ""
    1353 
    1354 #: ucontact.swindowslive
    1355 msgid "Windows Live"
    1356 msgstr ""
    1357 
    1358 #: ucontact.sworkaddresscity
    1359 msgid "Work address city"
    1360 msgstr ""
    1361 
    1362 #: ucontact.sworkaddresscountry
    1363 msgid "Work address country"
    1364 msgstr ""
    1365 
    1366 #: ucontact.sworkaddresspostalcode
    1367 msgid "Work address postal code"
    1368 msgstr ""
    1369 
    1370 #: ucontact.sworkaddresspostofficebox
    1371 msgid "Work address post office box"
    1372 msgstr ""
    1373 
    1374 #: ucontact.sworkaddressregion
    1375 msgid "Work address region"
    1376 msgstr ""
    1377 
    1378 #: ucontact.sworkaddressstreet
    1379 msgid "Work address street"
    1380 msgstr ""
    1381 
    1382 #: ucontact.sworkaddressstreetextended
    1383 msgid "Work address extended street"
    1384 msgstr ""
    1385 
    1386 #: ucontact.sworkemail
    1387 msgid "Work E-mail"
    1388 msgstr ""
    1389 
    1390 #: ucontact.sworkfax
    1391 msgid "Work fax"
    1392 msgstr ""
    1393 
    1394 #: ucontact.sworkmobile
    1395 msgid "Work mobile"
    1396 msgstr ""
    1397 
    1398 #: ucontact.sworkpager
    1399 msgid "Work pager"
    1400 msgstr ""
    1401 
    1402 #: ucontact.sworkphone
    1403 msgctxt "ucontact.sworkphone"
    1404 msgid "Work phone"
    1405 msgstr ""
    1406 
    1407 #: ucontact.syahoo
    1408 msgid "Yahoo!"
    1409 msgstr ""
    1410 
    1411 #: ucontact.syoutube
    1412 msgid "YouTube"
    1413 msgstr ""
    1414 
    14151057#: ucore.sappexit
    14161058msgid "Application exit"
     
    15701212msgstr ""
    15711213
     1214#: uvcard.saim
     1215msgctxt "uvcard.saim"
     1216msgid "AIM"
     1217msgstr ""
     1218
     1219#: uvcard.sanniversary
     1220msgctxt "uvcard.sanniversary"
     1221msgid "Anniversary"
     1222msgstr ""
     1223
     1224#: uvcard.scategories
     1225msgctxt "uvcard.scategories"
     1226msgid "Categories"
     1227msgstr ""
     1228
     1229#: uvcard.scontacthasnoparent
     1230msgctxt "uvcard.scontacthasnoparent"
     1231msgid "Contact has no parent"
     1232msgstr ""
     1233
     1234#: uvcard.sdayofbirth
     1235msgctxt "uvcard.sdayofbirth"
     1236msgid "Day of birth"
     1237msgstr ""
     1238
     1239#: uvcard.sdepartement
     1240msgctxt "uvcard.sdepartement"
     1241msgid "Departement"
     1242msgstr ""
     1243
     1244#: uvcard.semail
     1245msgctxt "uvcard.semail"
     1246msgid "E-mail"
     1247msgstr ""
     1248
     1249#: uvcard.sexpectedproperty
     1250msgctxt "uvcard.sexpectedproperty"
     1251msgid "Expected contact property"
     1252msgstr ""
     1253
     1254#: uvcard.sexpectedvcardbegin
     1255msgctxt "uvcard.sexpectedvcardbegin"
     1256msgid "Expected vCard begin"
     1257msgstr ""
     1258
     1259#: uvcard.sfacebook
     1260msgctxt "uvcard.sfacebook"
     1261msgid "Facebook"
     1262msgstr ""
     1263
     1264#: uvcard.sfax
     1265msgctxt "uvcard.sfax"
     1266msgid "Fax"
     1267msgstr ""
     1268
     1269#: uvcard.sfieldindexnotdefined
     1270msgctxt "uvcard.sfieldindexnotdefined"
     1271msgid "Field index not defined"
     1272msgstr ""
     1273
     1274#: uvcard.sfieldindexredefined
     1275#, object-pascal-format
     1276msgctxt "uvcard.sfieldindexredefined"
     1277msgid "Field index %d redefined"
     1278msgstr ""
     1279
     1280#: uvcard.sfirstname
     1281msgctxt "uvcard.sfirstname"
     1282msgid "First Name"
     1283msgstr ""
     1284
     1285#: uvcard.sfullname
     1286msgctxt "uvcard.sfullname"
     1287msgid "Full Name"
     1288msgstr ""
     1289
     1290#: uvcard.sgadugadu
     1291msgctxt "uvcard.sgadugadu"
     1292msgid "GaduGadu"
     1293msgstr ""
     1294
     1295#: uvcard.sgender
     1296msgctxt "uvcard.sgender"
     1297msgid "Gender"
     1298msgstr ""
     1299
     1300#: uvcard.sgoogletalk
     1301msgctxt "uvcard.sgoogletalk"
     1302msgid "Google Talk"
     1303msgstr ""
     1304
     1305#: uvcard.sgroupwise
     1306msgctxt "uvcard.sgroupwise"
     1307msgid "GroupWise"
     1308msgstr ""
     1309
     1310#: uvcard.shomeaddresscity
     1311msgctxt "uvcard.shomeaddresscity"
     1312msgid "Home address city"
     1313msgstr ""
     1314
     1315#: uvcard.shomeaddresscountry
     1316msgctxt "uvcard.shomeaddresscountry"
     1317msgid "Home address country"
     1318msgstr ""
     1319
     1320#: uvcard.shomeaddresspostalcode
     1321msgctxt "uvcard.shomeaddresspostalcode"
     1322msgid "Home address postal code"
     1323msgstr ""
     1324
     1325#: uvcard.shomeaddresspostofficebox
     1326msgctxt "uvcard.shomeaddresspostofficebox"
     1327msgid "Home address post office box"
     1328msgstr ""
     1329
     1330#: uvcard.shomeaddressregion
     1331msgctxt "uvcard.shomeaddressregion"
     1332msgid "Home address region"
     1333msgstr ""
     1334
     1335#: uvcard.shomeaddressstreet
     1336msgctxt "uvcard.shomeaddressstreet"
     1337msgid "Home address street"
     1338msgstr ""
     1339
     1340#: uvcard.shomeaddressstreetextended
     1341msgctxt "uvcard.shomeaddressstreetextended"
     1342msgid "Home address extended street"
     1343msgstr ""
     1344
     1345#: uvcard.shomeemail
     1346msgctxt "uvcard.shomeemail"
     1347msgid "Home E-mail"
     1348msgstr ""
     1349
     1350#: uvcard.shomefax
     1351msgctxt "uvcard.shomefax"
     1352msgid "Home fax"
     1353msgstr ""
     1354
     1355#: uvcard.shomemobile
     1356msgctxt "uvcard.shomemobile"
     1357msgid "Home mobile"
     1358msgstr ""
     1359
     1360#: uvcard.shomepager
     1361msgctxt "uvcard.shomepager"
     1362msgid "Home pager"
     1363msgstr ""
     1364
     1365#: uvcard.shomephone
     1366msgctxt "uvcard.shomephone"
     1367msgid "Home phone"
     1368msgstr ""
     1369
     1370#: uvcard.shomephone2
     1371msgctxt "uvcard.shomephone2"
     1372msgid "Home phone 2"
     1373msgstr ""
     1374
     1375#: uvcard.sicq
     1376msgctxt "uvcard.sicq"
     1377msgid "ICQ"
     1378msgstr ""
     1379
     1380#: uvcard.sinstagram
     1381msgctxt "uvcard.sinstagram"
     1382msgid "Instagram"
     1383msgstr ""
     1384
     1385#: uvcard.sinternetemail
     1386msgctxt "uvcard.sinternetemail"
     1387msgid "Internet E-mail"
     1388msgstr ""
     1389
     1390#: uvcard.sirc
     1391msgctxt "uvcard.sirc"
     1392msgid "IRC"
     1393msgstr ""
     1394
     1395#: uvcard.sjabber
     1396msgctxt "uvcard.sjabber"
     1397msgid "Jabber"
     1398msgstr ""
     1399
     1400#: uvcard.slastname
     1401msgctxt "uvcard.slastname"
     1402msgid "Last Name"
     1403msgstr ""
     1404
     1405#: uvcard.slasttimecontacted
     1406msgctxt "uvcard.slasttimecontacted"
     1407msgid "Last Time Contacted"
     1408msgstr ""
     1409
     1410#: uvcard.slinkedin
     1411msgctxt "uvcard.slinkedin"
     1412msgid "LinkedIn"
     1413msgstr ""
     1414
     1415#: uvcard.slogo
     1416msgctxt "uvcard.slogo"
     1417msgid "Logo"
     1418msgstr ""
     1419
     1420#: uvcard.smainphone
     1421msgctxt "uvcard.smainphone"
     1422msgid "Main phone"
     1423msgstr ""
     1424
     1425#: uvcard.smastodon
     1426msgctxt "uvcard.smastodon"
     1427msgid "Mastodon"
     1428msgstr ""
     1429
     1430#: uvcard.smatrix
     1431msgctxt "uvcard.smatrix"
     1432msgid "Matrix"
     1433msgstr ""
     1434
     1435#: uvcard.smiddlename
     1436msgctxt "uvcard.smiddlename"
     1437msgid "Middle Name"
     1438msgstr ""
     1439
     1440#: uvcard.smobilephone
     1441msgctxt "uvcard.smobilephone"
     1442msgid "Mobile phone"
     1443msgstr ""
     1444
     1445#: uvcard.smsn
     1446msgctxt "uvcard.smsn"
     1447msgid "MSN"
     1448msgstr ""
     1449
     1450#: uvcard.smyspace
     1451msgctxt "uvcard.smyspace"
     1452msgid "MySpace"
     1453msgstr ""
     1454
     1455#: uvcard.snickname
     1456msgctxt "uvcard.snickname"
     1457msgid "Nick name"
     1458msgstr ""
     1459
     1460#: uvcard.snote
     1461msgctxt "uvcard.snote"
     1462msgid "Note"
     1463msgstr ""
     1464
     1465#: uvcard.sorganization
     1466msgctxt "uvcard.sorganization"
     1467msgid "Organization"
     1468msgstr ""
     1469
     1470#: uvcard.spager
     1471msgctxt "uvcard.spager"
     1472msgid "Pager"
     1473msgstr ""
     1474
     1475#: uvcard.speertube
     1476msgctxt "uvcard.speertube"
     1477msgid "PeerTube"
     1478msgstr ""
     1479
     1480#: uvcard.sphoto
     1481msgctxt "uvcard.sphoto"
     1482msgid "Photo"
     1483msgstr ""
     1484
     1485#: uvcard.sqq
     1486msgctxt "uvcard.sqq"
     1487msgid "QQ"
     1488msgstr ""
     1489
     1490#: uvcard.sreddit
     1491msgctxt "uvcard.sreddit"
     1492msgid "Reddit"
     1493msgstr ""
     1494
     1495#: uvcard.srevision
     1496msgctxt "uvcard.srevision"
     1497msgid "Revision"
     1498msgstr ""
     1499
     1500#: uvcard.srole
     1501msgctxt "uvcard.srole"
     1502msgid "Role"
     1503msgstr ""
     1504
     1505#: uvcard.sskype
     1506msgctxt "uvcard.sskype"
     1507msgid "Skype"
     1508msgstr ""
     1509
     1510#: uvcard.ssnapchat
     1511msgctxt "uvcard.ssnapchat"
     1512msgid "Snapchat"
     1513msgstr ""
     1514
     1515#: uvcard.stelephone
     1516msgctxt "uvcard.stelephone"
     1517msgid "Telephone"
     1518msgstr ""
     1519
     1520#: uvcard.stimescontacted
     1521msgctxt "uvcard.stimescontacted"
     1522msgid "Times Contacted"
     1523msgstr ""
     1524
     1525#: uvcard.stitle
     1526msgctxt "uvcard.stitle"
     1527msgid "Title"
     1528msgstr ""
     1529
     1530#: uvcard.stitleafter
     1531msgctxt "uvcard.stitleafter"
     1532msgid "Title After"
     1533msgstr ""
     1534
     1535#: uvcard.stitlebefore
     1536msgctxt "uvcard.stitlebefore"
     1537msgid "Title Before"
     1538msgstr ""
     1539
     1540#: uvcard.stwitter
     1541msgctxt "uvcard.stwitter"
     1542msgid "Twitter"
     1543msgstr ""
     1544
     1545#: uvcard.suniqueidentifier
     1546msgctxt "uvcard.suniqueidentifier"
     1547msgid "Unique identifier"
     1548msgstr ""
     1549
     1550#: uvcard.sversion
     1551msgctxt "uvcard.sversion"
     1552msgid "Version"
     1553msgstr ""
     1554
     1555#: uvcard.svoipphone
     1556msgctxt "uvcard.svoipphone"
     1557msgid "VoIP phone"
     1558msgstr ""
     1559
     1560#: uvcard.swebaddress
     1561msgctxt "uvcard.swebaddress"
     1562msgid "Web address"
     1563msgstr ""
     1564
     1565#: uvcard.swebaddresshome
     1566msgctxt "uvcard.swebaddresshome"
     1567msgid "Web address home"
     1568msgstr ""
     1569
     1570#: uvcard.swebaddresswork
     1571msgctxt "uvcard.swebaddresswork"
     1572msgid "Web address work"
     1573msgstr ""
     1574
     1575#: uvcard.swindowslive
     1576msgctxt "uvcard.swindowslive"
     1577msgid "Windows Live"
     1578msgstr ""
     1579
     1580#: uvcard.sworkaddresscity
     1581msgctxt "uvcard.sworkaddresscity"
     1582msgid "Work address city"
     1583msgstr ""
     1584
     1585#: uvcard.sworkaddresscountry
     1586msgctxt "uvcard.sworkaddresscountry"
     1587msgid "Work address country"
     1588msgstr ""
     1589
     1590#: uvcard.sworkaddresspostalcode
     1591msgctxt "uvcard.sworkaddresspostalcode"
     1592msgid "Work address postal code"
     1593msgstr ""
     1594
     1595#: uvcard.sworkaddresspostofficebox
     1596msgctxt "uvcard.sworkaddresspostofficebox"
     1597msgid "Work address post office box"
     1598msgstr ""
     1599
     1600#: uvcard.sworkaddressregion
     1601msgctxt "uvcard.sworkaddressregion"
     1602msgid "Work address region"
     1603msgstr ""
     1604
     1605#: uvcard.sworkaddressstreet
     1606msgctxt "uvcard.sworkaddressstreet"
     1607msgid "Work address street"
     1608msgstr ""
     1609
     1610#: uvcard.sworkaddressstreetextended
     1611msgctxt "uvcard.sworkaddressstreetextended"
     1612msgid "Work address extended street"
     1613msgstr ""
     1614
     1615#: uvcard.sworkemail
     1616msgctxt "uvcard.sworkemail"
     1617msgid "Work E-mail"
     1618msgstr ""
     1619
     1620#: uvcard.sworkfax
     1621msgctxt "uvcard.sworkfax"
     1622msgid "Work fax"
     1623msgstr ""
     1624
     1625#: uvcard.sworkmobile
     1626msgctxt "uvcard.sworkmobile"
     1627msgid "Work mobile"
     1628msgstr ""
     1629
     1630#: uvcard.sworkpager
     1631msgctxt "uvcard.sworkpager"
     1632msgid "Work pager"
     1633msgstr ""
     1634
     1635#: uvcard.sworkphone
     1636msgctxt "uvcard.sworkphone"
     1637msgid "Work phone"
     1638msgstr ""
     1639
     1640#: uvcard.syahoo
     1641msgctxt "uvcard.syahoo"
     1642msgid "Yahoo!"
     1643msgstr ""
     1644
     1645#: uvcard.syoutube
     1646msgctxt "uvcard.syoutube"
     1647msgid "YouTube"
     1648msgstr ""
     1649
     1650#: uvcardfile.svcardfile
     1651msgctxt "uvcardfile.svcardfile"
     1652msgid "vCard file"
     1653msgstr ""
     1654
  • trunk/Languages/vCardStudio.sv.po

    r127 r129  
    10911091msgstr "Testfall"
    10921092
    1093 #: ucontact.saim
    1094 msgid "AIM"
    1095 msgstr "AIM"
    1096 
    1097 #: ucontact.sanniversary
    1098 msgid "Anniversary"
    1099 msgstr "Årsdag"
    1100 
    1101 #: ucontact.scategories
    1102 msgid "Categories"
    1103 msgstr "Kategori"
    1104 
    1105 #: ucontact.scontacthasnoparent
    1106 msgid "Contact has no parent"
    1107 msgstr "Kontakten har ingen förälder"
    1108 
    1109 #: ucontact.sdayofbirth
    1110 msgid "Day of birth"
    1111 msgstr "Födelsedag"
    1112 
    1113 #: ucontact.sdepartement
    1114 msgid "Departement"
    1115 msgstr "Avdelning"
    1116 
    1117 #: ucontact.semail
    1118 msgid "E-mail"
    1119 msgstr "E-mail"
    1120 
    1121 #: ucontact.sexpectedproperty
    1122 msgid "Expected contact property"
    1123 msgstr "Förväntade kontakters egenskaper"
    1124 
    1125 #: ucontact.sexpectedvcardbegin
    1126 msgid "Expected vCard begin"
    1127 msgstr "Förväntat början vCard"
    1128 
    1129 #: ucontact.sfacebook
    1130 msgid "Facebook"
    1131 msgstr "Facebook"
    1132 
    1133 #: ucontact.sfax
    1134 msgid "Fax"
    1135 msgstr "Fax"
    1136 
    1137 #: ucontact.sfieldindexnotdefined
    1138 msgid "Field index not defined"
    1139 msgstr "Fältindex hittades inte"
    1140 
    1141 #: ucontact.sfieldindexredefined
    1142 #, object-pascal-format
    1143 msgid "Field index %d redefined"
    1144 msgstr "Fältindex %d omdefinieras"
    1145 
    1146 #: ucontact.sfirstname
    1147 msgid "First Name"
    1148 msgstr "Förnamn"
    1149 
    1150 #: ucontact.sfullname
    1151 msgctxt "ucontact.sfullname"
    1152 msgid "Full Name"
    1153 msgstr "Fullständigt namn"
    1154 
    1155 #: ucontact.sgadugadu
    1156 msgid "GaduGadu"
    1157 msgstr "GaduGadu"
    1158 
    1159 #: ucontact.sgender
    1160 msgid "Gender"
    1161 msgstr "Kön"
    1162 
    1163 #: ucontact.sgoogletalk
    1164 msgid "Google Talk"
    1165 msgstr "Google Talk"
    1166 
    1167 #: ucontact.sgroupwise
    1168 msgid "GroupWise"
    1169 msgstr "GroupWise"
    1170 
    1171 #: ucontact.shomeaddresscity
    1172 msgid "Home address city"
    1173 msgstr "Hemadress ort/stad"
    1174 
    1175 #: ucontact.shomeaddresscountry
    1176 msgid "Home address country"
    1177 msgstr "Hemadress land"
    1178 
    1179 #: ucontact.shomeaddresspostalcode
    1180 msgid "Home address postal code"
    1181 msgstr "Hemadress postkod"
    1182 
    1183 #: ucontact.shomeaddresspostofficebox
    1184 msgid "Home address post office box"
    1185 msgstr "Hemadress postbox"
    1186 
    1187 #: ucontact.shomeaddressregion
    1188 msgid "Home address region"
    1189 msgstr "Hemadress region"
    1190 
    1191 #: ucontact.shomeaddressstreet
    1192 msgid "Home address street"
    1193 msgstr "Hemadress gata"
    1194 
    1195 #: ucontact.shomeaddressstreetextended
    1196 msgid "Home address extended street"
    1197 msgstr "Hemadress utökad gata"
    1198 
    1199 #: ucontact.shomeemail
    1200 msgid "Home E-mail"
    1201 msgstr "Hem E-mail"
    1202 
    1203 #: ucontact.shomefax
    1204 msgid "Home fax"
    1205 msgstr "Hem fax"
    1206 
    1207 #: ucontact.shomemobile
    1208 msgid "Home mobile"
    1209 msgstr "Hem mobil"
    1210 
    1211 #: ucontact.shomepager
    1212 msgid "Home pager"
    1213 msgstr "Hem pager"
    1214 
    1215 #: ucontact.shomephone
    1216 msgctxt "ucontact.shomephone"
    1217 msgid "Home phone"
    1218 msgstr "Hem telefon"
    1219 
    1220 #: ucontact.shomephone2
    1221 msgid "Home phone 2"
    1222 msgstr "Hem telefon 2"
    1223 
    1224 #: ucontact.sicq
    1225 msgid "ICQ"
    1226 msgstr "ICQ"
    1227 
    1228 #: ucontact.sinstagram
    1229 msgid "Instagram"
    1230 msgstr "Instagram"
    1231 
    1232 #: ucontact.sinternetemail
    1233 msgid "Internet E-mail"
    1234 msgstr "Internet E-mail"
    1235 
    1236 #: ucontact.sirc
    1237 msgid "IRC"
    1238 msgstr "IRC"
    1239 
    1240 #: ucontact.sjabber
    1241 msgid "Jabber"
    1242 msgstr "Jabber"
    1243 
    1244 #: ucontact.slastname
    1245 msgctxt "ucontact.slastname"
    1246 msgid "Last Name"
    1247 msgstr "Efternamn"
    1248 
    1249 #: ucontact.slasttimecontacted
    1250 msgid "Last Time Contacted"
    1251 msgstr "Senaste kontaktad"
    1252 
    1253 #: ucontact.slinkedin
    1254 msgid "LinkedIn"
    1255 msgstr "LinkedIn"
    1256 
    1257 #: ucontact.slogo
    1258 msgid "Logo"
    1259 msgstr "Logo"
    1260 
    1261 #: ucontact.smainphone
    1262 msgid "Main phone"
    1263 msgstr "Huvud telefon"
    1264 
    1265 #: ucontact.smastodon
    1266 msgid "Mastodon"
    1267 msgstr "Mastodon"
    1268 
    1269 #: ucontact.smatrix
    1270 msgid "Matrix"
    1271 msgstr "Matrix"
    1272 
    1273 #: ucontact.smiddlename
    1274 msgid "Middle Name"
    1275 msgstr "Mellannamn"
    1276 
    1277 #: ucontact.smobilephone
    1278 msgid "Mobile phone"
    1279 msgstr "Mobil"
    1280 
    1281 #: ucontact.smsn
    1282 msgid "MSN"
    1283 msgstr "MSN"
    1284 
    1285 #: ucontact.smyspace
    1286 msgid "MySpace"
    1287 msgstr "MySpace"
    1288 
    1289 #: ucontact.snickname
    1290 msgid "Nick name"
    1291 msgstr "Smeknamn"
    1292 
    1293 #: ucontact.snote
    1294 msgid "Note"
    1295 msgstr "Noter"
    1296 
    1297 #: ucontact.sorganization
    1298 msgid "Organization"
    1299 msgstr "Organisation"
    1300 
    1301 #: ucontact.spager
    1302 msgid "Pager"
    1303 msgstr "Pager"
    1304 
    1305 #: ucontact.speertube
    1306 msgid "PeerTube"
    1307 msgstr "PeerTube"
    1308 
    1309 #: ucontact.sphoto
    1310 msgctxt "ucontact.sphoto"
    1311 msgid "Photo"
    1312 msgstr "Foto"
    1313 
    1314 #: ucontact.sqq
    1315 msgid "QQ"
    1316 msgstr "QQ"
    1317 
    1318 #: ucontact.sreddit
    1319 msgid "Reddit"
    1320 msgstr "Reddit"
    1321 
    1322 #: ucontact.srevision
    1323 msgid "Revision"
    1324 msgstr "Revision"
    1325 
    1326 #: ucontact.srole
    1327 msgid "Role"
    1328 msgstr "Roll"
    1329 
    1330 #: ucontact.sskype
    1331 msgid "Skype"
    1332 msgstr "Skype"
    1333 
    1334 #: ucontact.ssnapchat
    1335 msgid "Snapchat"
    1336 msgstr "Snapchat"
    1337 
    1338 #: ucontact.stelephone
    1339 msgid "Telephone"
    1340 msgstr "Telefon"
    1341 
    1342 #: ucontact.stimescontacted
    1343 msgid "Times Contacted"
    1344 msgstr "Antal kontaktad"
    1345 
    1346 #: ucontact.stitle
    1347 msgid "Title"
    1348 msgstr "Titel"
    1349 
    1350 #: ucontact.stitleafter
    1351 msgid "Title After"
    1352 msgstr "Titel efter"
    1353 
    1354 #: ucontact.stitlebefore
    1355 msgid "Title Before"
    1356 msgstr "Titel före"
    1357 
    1358 #: ucontact.stwitter
    1359 msgid "Twitter"
    1360 msgstr "Twitter"
    1361 
    1362 #: ucontact.suniqueidentifier
    1363 msgid "Unique identifier"
    1364 msgstr "Unik Identifierare"
    1365 
    1366 #: ucontact.svcardfile
    1367 msgctxt "ucontact.svcardfile"
    1368 msgid "vCard file"
    1369 msgstr "vCard fil"
    1370 
    1371 #: ucontact.sversion
    1372 msgid "Version"
    1373 msgstr "Version"
    1374 
    1375 #: ucontact.svoipphone
    1376 msgid "VoIP phone"
    1377 msgstr "VoIP telefon"
    1378 
    1379 #: ucontact.swebaddress
    1380 msgid "Web address"
    1381 msgstr "Webbadress"
    1382 
    1383 #: ucontact.swebaddresshome
    1384 msgid "Web address home"
    1385 msgstr "Webbadress hem"
    1386 
    1387 #: ucontact.swebaddresswork
    1388 msgid "Web address work"
    1389 msgstr "Webbadress jobb"
    1390 
    1391 #: ucontact.swindowslive
    1392 msgid "Windows Live"
    1393 msgstr "Windows Live"
    1394 
    1395 #: ucontact.sworkaddresscity
    1396 msgid "Work address city"
    1397 msgstr "Jobbadress ort/stad"
    1398 
    1399 #: ucontact.sworkaddresscountry
    1400 msgid "Work address country"
    1401 msgstr "Jobbadress land"
    1402 
    1403 #: ucontact.sworkaddresspostalcode
    1404 msgid "Work address postal code"
    1405 msgstr "Jobbadress postkod"
    1406 
    1407 #: ucontact.sworkaddresspostofficebox
    1408 msgid "Work address post office box"
    1409 msgstr "Jobbadress postbox"
    1410 
    1411 #: ucontact.sworkaddressregion
    1412 msgid "Work address region"
    1413 msgstr "Jobbadress region"
    1414 
    1415 #: ucontact.sworkaddressstreet
    1416 msgid "Work address street"
    1417 msgstr "Jobbadress gata"
    1418 
    1419 #: ucontact.sworkaddressstreetextended
    1420 msgid "Work address extended street"
    1421 msgstr "Jobbadress utökad gata"
    1422 
    1423 #: ucontact.sworkemail
    1424 msgid "Work E-mail"
    1425 msgstr "Jobb E-mail"
    1426 
    1427 #: ucontact.sworkfax
    1428 msgid "Work fax"
    1429 msgstr "Jobb fax"
    1430 
    1431 #: ucontact.sworkmobile
    1432 msgid "Work mobile"
    1433 msgstr "Jobb mobil"
    1434 
    1435 #: ucontact.sworkpager
    1436 msgid "Work pager"
    1437 msgstr "Jobb pager"
    1438 
    1439 #: ucontact.sworkphone
    1440 msgctxt "ucontact.sworkphone"
    1441 msgid "Work phone"
    1442 msgstr "Jobb telefon"
    1443 
    1444 #: ucontact.syahoo
    1445 msgid "Yahoo!"
    1446 msgstr "Yahoo!"
    1447 
    1448 #: ucontact.syoutube
    1449 msgid "YouTube"
    1450 msgstr "YouTube"
    1451 
    14521093#: ucore.sappexit
    14531094msgid "Application exit"
     
    16081249msgstr ""
    16091250
     1251#: uvcard.saim
     1252#, fuzzy
     1253msgctxt "uvcard.saim"
     1254msgid "AIM"
     1255msgstr "AIM"
     1256
     1257#: uvcard.sanniversary
     1258#, fuzzy
     1259msgctxt "uvcard.sanniversary"
     1260msgid "Anniversary"
     1261msgstr "Årsdag"
     1262
     1263#: uvcard.scategories
     1264#, fuzzy
     1265msgctxt "uvcard.scategories"
     1266msgid "Categories"
     1267msgstr "Kategori"
     1268
     1269#: uvcard.scontacthasnoparent
     1270#, fuzzy
     1271msgctxt "uvcard.scontacthasnoparent"
     1272msgid "Contact has no parent"
     1273msgstr "Kontakten har ingen förälder"
     1274
     1275#: uvcard.sdayofbirth
     1276#, fuzzy
     1277msgctxt "uvcard.sdayofbirth"
     1278msgid "Day of birth"
     1279msgstr "Födelsedag"
     1280
     1281#: uvcard.sdepartement
     1282#, fuzzy
     1283msgctxt "uvcard.sdepartement"
     1284msgid "Departement"
     1285msgstr "Avdelning"
     1286
     1287#: uvcard.semail
     1288#, fuzzy
     1289msgctxt "uvcard.semail"
     1290msgid "E-mail"
     1291msgstr "E-mail"
     1292
     1293#: uvcard.sexpectedproperty
     1294#, fuzzy
     1295msgctxt "uvcard.sexpectedproperty"
     1296msgid "Expected contact property"
     1297msgstr "Förväntade kontakters egenskaper"
     1298
     1299#: uvcard.sexpectedvcardbegin
     1300#, fuzzy
     1301msgctxt "uvcard.sexpectedvcardbegin"
     1302msgid "Expected vCard begin"
     1303msgstr "Förväntat början vCard"
     1304
     1305#: uvcard.sfacebook
     1306#, fuzzy
     1307msgctxt "uvcard.sfacebook"
     1308msgid "Facebook"
     1309msgstr "Facebook"
     1310
     1311#: uvcard.sfax
     1312#, fuzzy
     1313msgctxt "uvcard.sfax"
     1314msgid "Fax"
     1315msgstr "Fax"
     1316
     1317#: uvcard.sfieldindexnotdefined
     1318#, fuzzy
     1319msgctxt "uvcard.sfieldindexnotdefined"
     1320msgid "Field index not defined"
     1321msgstr "Fältindex hittades inte"
     1322
     1323#: uvcard.sfieldindexredefined
     1324#, object-pascal-format, fuzzy
     1325msgctxt "uvcard.sfieldindexredefined"
     1326msgid "Field index %d redefined"
     1327msgstr "Fältindex %d omdefinieras"
     1328
     1329#: uvcard.sfirstname
     1330#, fuzzy
     1331msgctxt "uvcard.sfirstname"
     1332msgid "First Name"
     1333msgstr "Förnamn"
     1334
     1335#: uvcard.sfullname
     1336#, fuzzy
     1337msgctxt "uvcard.sfullname"
     1338msgid "Full Name"
     1339msgstr "Hela namnet"
     1340
     1341#: uvcard.sgadugadu
     1342#, fuzzy
     1343msgctxt "uvcard.sgadugadu"
     1344msgid "GaduGadu"
     1345msgstr "GaduGadu"
     1346
     1347#: uvcard.sgender
     1348#, fuzzy
     1349msgctxt "uvcard.sgender"
     1350msgid "Gender"
     1351msgstr "Kön"
     1352
     1353#: uvcard.sgoogletalk
     1354#, fuzzy
     1355msgctxt "uvcard.sgoogletalk"
     1356msgid "Google Talk"
     1357msgstr "Google Talk"
     1358
     1359#: uvcard.sgroupwise
     1360#, fuzzy
     1361msgctxt "uvcard.sgroupwise"
     1362msgid "GroupWise"
     1363msgstr "GroupWise"
     1364
     1365#: uvcard.shomeaddresscity
     1366#, fuzzy
     1367msgctxt "uvcard.shomeaddresscity"
     1368msgid "Home address city"
     1369msgstr "Hemadress ort/stad"
     1370
     1371#: uvcard.shomeaddresscountry
     1372#, fuzzy
     1373msgctxt "uvcard.shomeaddresscountry"
     1374msgid "Home address country"
     1375msgstr "Hemadress land"
     1376
     1377#: uvcard.shomeaddresspostalcode
     1378#, fuzzy
     1379msgctxt "uvcard.shomeaddresspostalcode"
     1380msgid "Home address postal code"
     1381msgstr "Hemadress postkod"
     1382
     1383#: uvcard.shomeaddresspostofficebox
     1384#, fuzzy
     1385msgctxt "uvcard.shomeaddresspostofficebox"
     1386msgid "Home address post office box"
     1387msgstr "Hemadress postbox"
     1388
     1389#: uvcard.shomeaddressregion
     1390#, fuzzy
     1391msgctxt "uvcard.shomeaddressregion"
     1392msgid "Home address region"
     1393msgstr "Hemadress region"
     1394
     1395#: uvcard.shomeaddressstreet
     1396#, fuzzy
     1397msgctxt "uvcard.shomeaddressstreet"
     1398msgid "Home address street"
     1399msgstr "Hemadress gata"
     1400
     1401#: uvcard.shomeaddressstreetextended
     1402#, fuzzy
     1403msgctxt "uvcard.shomeaddressstreetextended"
     1404msgid "Home address extended street"
     1405msgstr "Hemadress utökad gata"
     1406
     1407#: uvcard.shomeemail
     1408#, fuzzy
     1409msgctxt "uvcard.shomeemail"
     1410msgid "Home E-mail"
     1411msgstr "Hem E-mail"
     1412
     1413#: uvcard.shomefax
     1414#, fuzzy
     1415msgctxt "uvcard.shomefax"
     1416msgid "Home fax"
     1417msgstr "Hem fax"
     1418
     1419#: uvcard.shomemobile
     1420#, fuzzy
     1421msgctxt "uvcard.shomemobile"
     1422msgid "Home mobile"
     1423msgstr "Hem mobil"
     1424
     1425#: uvcard.shomepager
     1426#, fuzzy
     1427msgctxt "uvcard.shomepager"
     1428msgid "Home pager"
     1429msgstr "Hem pager"
     1430
     1431#: uvcard.shomephone
     1432#, fuzzy
     1433msgctxt "uvcard.shomephone"
     1434msgid "Home phone"
     1435msgstr "Hem telefon"
     1436
     1437#: uvcard.shomephone2
     1438#, fuzzy
     1439msgctxt "uvcard.shomephone2"
     1440msgid "Home phone 2"
     1441msgstr "Hem telefon 2"
     1442
     1443#: uvcard.sicq
     1444#, fuzzy
     1445msgctxt "uvcard.sicq"
     1446msgid "ICQ"
     1447msgstr "ICQ"
     1448
     1449#: uvcard.sinstagram
     1450#, fuzzy
     1451msgctxt "uvcard.sinstagram"
     1452msgid "Instagram"
     1453msgstr "Instagram"
     1454
     1455#: uvcard.sinternetemail
     1456#, fuzzy
     1457msgctxt "uvcard.sinternetemail"
     1458msgid "Internet E-mail"
     1459msgstr "Internet E-mail"
     1460
     1461#: uvcard.sirc
     1462#, fuzzy
     1463msgctxt "uvcard.sirc"
     1464msgid "IRC"
     1465msgstr "IRC"
     1466
     1467#: uvcard.sjabber
     1468#, fuzzy
     1469msgctxt "uvcard.sjabber"
     1470msgid "Jabber"
     1471msgstr "Jabber"
     1472
     1473#: uvcard.slastname
     1474#, fuzzy
     1475msgctxt "uvcard.slastname"
     1476msgid "Last Name"
     1477msgstr "Efternamn"
     1478
     1479#: uvcard.slasttimecontacted
     1480#, fuzzy
     1481msgctxt "uvcard.slasttimecontacted"
     1482msgid "Last Time Contacted"
     1483msgstr "Senaste kontaktad"
     1484
     1485#: uvcard.slinkedin
     1486#, fuzzy
     1487msgctxt "uvcard.slinkedin"
     1488msgid "LinkedIn"
     1489msgstr "LinkedIn"
     1490
     1491#: uvcard.slogo
     1492#, fuzzy
     1493msgctxt "uvcard.slogo"
     1494msgid "Logo"
     1495msgstr "Logo"
     1496
     1497#: uvcard.smainphone
     1498#, fuzzy
     1499msgctxt "uvcard.smainphone"
     1500msgid "Main phone"
     1501msgstr "Huvud telefon"
     1502
     1503#: uvcard.smastodon
     1504#, fuzzy
     1505msgctxt "uvcard.smastodon"
     1506msgid "Mastodon"
     1507msgstr "Mastodon"
     1508
     1509#: uvcard.smatrix
     1510#, fuzzy
     1511msgctxt "uvcard.smatrix"
     1512msgid "Matrix"
     1513msgstr "Matrix"
     1514
     1515#: uvcard.smiddlename
     1516#, fuzzy
     1517msgctxt "uvcard.smiddlename"
     1518msgid "Middle Name"
     1519msgstr "Mellannamn"
     1520
     1521#: uvcard.smobilephone
     1522#, fuzzy
     1523msgctxt "uvcard.smobilephone"
     1524msgid "Mobile phone"
     1525msgstr "Mobil"
     1526
     1527#: uvcard.smsn
     1528#, fuzzy
     1529msgctxt "uvcard.smsn"
     1530msgid "MSN"
     1531msgstr "MSN"
     1532
     1533#: uvcard.smyspace
     1534#, fuzzy
     1535msgctxt "uvcard.smyspace"
     1536msgid "MySpace"
     1537msgstr "MySpace"
     1538
     1539#: uvcard.snickname
     1540#, fuzzy
     1541msgctxt "uvcard.snickname"
     1542msgid "Nick name"
     1543msgstr "Smeknamn"
     1544
     1545#: uvcard.snote
     1546#, fuzzy
     1547msgctxt "uvcard.snote"
     1548msgid "Note"
     1549msgstr "Noter"
     1550
     1551#: uvcard.sorganization
     1552#, fuzzy
     1553msgctxt "uvcard.sorganization"
     1554msgid "Organization"
     1555msgstr "Organisation"
     1556
     1557#: uvcard.spager
     1558#, fuzzy
     1559msgctxt "uvcard.spager"
     1560msgid "Pager"
     1561msgstr "Pager"
     1562
     1563#: uvcard.speertube
     1564#, fuzzy
     1565msgctxt "uvcard.speertube"
     1566msgid "PeerTube"
     1567msgstr "PeerTube"
     1568
     1569#: uvcard.sphoto
     1570#, fuzzy
     1571msgctxt "uvcard.sphoto"
     1572msgid "Photo"
     1573msgstr "Foto"
     1574
     1575#: uvcard.sqq
     1576#, fuzzy
     1577msgctxt "uvcard.sqq"
     1578msgid "QQ"
     1579msgstr "QQ"
     1580
     1581#: uvcard.sreddit
     1582#, fuzzy
     1583msgctxt "uvcard.sreddit"
     1584msgid "Reddit"
     1585msgstr "Reddit"
     1586
     1587#: uvcard.srevision
     1588#, fuzzy
     1589msgctxt "uvcard.srevision"
     1590msgid "Revision"
     1591msgstr "Revision"
     1592
     1593#: uvcard.srole
     1594#, fuzzy
     1595msgctxt "uvcard.srole"
     1596msgid "Role"
     1597msgstr "Roll"
     1598
     1599#: uvcard.sskype
     1600#, fuzzy
     1601msgctxt "uvcard.sskype"
     1602msgid "Skype"
     1603msgstr "Skype"
     1604
     1605#: uvcard.ssnapchat
     1606#, fuzzy
     1607msgctxt "uvcard.ssnapchat"
     1608msgid "Snapchat"
     1609msgstr "Snapchat"
     1610
     1611#: uvcard.stelephone
     1612#, fuzzy
     1613msgctxt "uvcard.stelephone"
     1614msgid "Telephone"
     1615msgstr "Telefon"
     1616
     1617#: uvcard.stimescontacted
     1618#, fuzzy
     1619msgctxt "uvcard.stimescontacted"
     1620msgid "Times Contacted"
     1621msgstr "Antal kontaktad"
     1622
     1623#: uvcard.stitle
     1624#, fuzzy
     1625msgctxt "uvcard.stitle"
     1626msgid "Title"
     1627msgstr "Titel"
     1628
     1629#: uvcard.stitleafter
     1630#, fuzzy
     1631msgctxt "uvcard.stitleafter"
     1632msgid "Title After"
     1633msgstr "Titel efter"
     1634
     1635#: uvcard.stitlebefore
     1636#, fuzzy
     1637msgctxt "uvcard.stitlebefore"
     1638msgid "Title Before"
     1639msgstr "Titel före"
     1640
     1641#: uvcard.stwitter
     1642#, fuzzy
     1643msgctxt "uvcard.stwitter"
     1644msgid "Twitter"
     1645msgstr "Twitter"
     1646
     1647#: uvcard.suniqueidentifier
     1648#, fuzzy
     1649msgctxt "uvcard.suniqueidentifier"
     1650msgid "Unique identifier"
     1651msgstr "Unik Identifierare"
     1652
     1653#: uvcard.sversion
     1654#, fuzzy
     1655msgctxt "uvcard.sversion"
     1656msgid "Version"
     1657msgstr "Version"
     1658
     1659#: uvcard.svoipphone
     1660#, fuzzy
     1661msgctxt "uvcard.svoipphone"
     1662msgid "VoIP phone"
     1663msgstr "VoIP telefon"
     1664
     1665#: uvcard.swebaddress
     1666#, fuzzy
     1667msgctxt "uvcard.swebaddress"
     1668msgid "Web address"
     1669msgstr "Webbadress"
     1670
     1671#: uvcard.swebaddresshome
     1672#, fuzzy
     1673msgctxt "uvcard.swebaddresshome"
     1674msgid "Web address home"
     1675msgstr "Webbadress hem"
     1676
     1677#: uvcard.swebaddresswork
     1678#, fuzzy
     1679msgctxt "uvcard.swebaddresswork"
     1680msgid "Web address work"
     1681msgstr "Webbadress jobb"
     1682
     1683#: uvcard.swindowslive
     1684#, fuzzy
     1685msgctxt "uvcard.swindowslive"
     1686msgid "Windows Live"
     1687msgstr "Windows Live"
     1688
     1689#: uvcard.sworkaddresscity
     1690#, fuzzy
     1691msgctxt "uvcard.sworkaddresscity"
     1692msgid "Work address city"
     1693msgstr "Jobbadress ort/stad"
     1694
     1695#: uvcard.sworkaddresscountry
     1696#, fuzzy
     1697msgctxt "uvcard.sworkaddresscountry"
     1698msgid "Work address country"
     1699msgstr "Jobbadress land"
     1700
     1701#: uvcard.sworkaddresspostalcode
     1702#, fuzzy
     1703msgctxt "uvcard.sworkaddresspostalcode"
     1704msgid "Work address postal code"
     1705msgstr "Jobbadress postkod"
     1706
     1707#: uvcard.sworkaddresspostofficebox
     1708#, fuzzy
     1709msgctxt "uvcard.sworkaddresspostofficebox"
     1710msgid "Work address post office box"
     1711msgstr "Jobbadress postbox"
     1712
     1713#: uvcard.sworkaddressregion
     1714#, fuzzy
     1715msgctxt "uvcard.sworkaddressregion"
     1716msgid "Work address region"
     1717msgstr "Jobbadress region"
     1718
     1719#: uvcard.sworkaddressstreet
     1720#, fuzzy
     1721msgctxt "uvcard.sworkaddressstreet"
     1722msgid "Work address street"
     1723msgstr "Jobbadress gata"
     1724
     1725#: uvcard.sworkaddressstreetextended
     1726#, fuzzy
     1727msgctxt "uvcard.sworkaddressstreetextended"
     1728msgid "Work address extended street"
     1729msgstr "Jobbadress utökad gata"
     1730
     1731#: uvcard.sworkemail
     1732#, fuzzy
     1733msgctxt "uvcard.sworkemail"
     1734msgid "Work E-mail"
     1735msgstr "Jobb E-mail"
     1736
     1737#: uvcard.sworkfax
     1738#, fuzzy
     1739msgctxt "uvcard.sworkfax"
     1740msgid "Work fax"
     1741msgstr "Jobb fax"
     1742
     1743#: uvcard.sworkmobile
     1744#, fuzzy
     1745msgctxt "uvcard.sworkmobile"
     1746msgid "Work mobile"
     1747msgstr "Jobb mobil"
     1748
     1749#: uvcard.sworkpager
     1750#, fuzzy
     1751msgctxt "uvcard.sworkpager"
     1752msgid "Work pager"
     1753msgstr "Jobb pager"
     1754
     1755#: uvcard.sworkphone
     1756#, fuzzy
     1757msgctxt "uvcard.sworkphone"
     1758msgid "Work phone"
     1759msgstr "Jobb telefon"
     1760
     1761#: uvcard.syahoo
     1762#, fuzzy
     1763msgctxt "uvcard.syahoo"
     1764msgid "Yahoo!"
     1765msgstr "Yahoo!"
     1766
     1767#: uvcard.syoutube
     1768#, fuzzy
     1769msgctxt "uvcard.syoutube"
     1770msgid "YouTube"
     1771msgstr "YouTube"
     1772
     1773#: uvcardfile.svcardfile
     1774#, fuzzy
     1775msgctxt "uvcardfile.svcardfile"
     1776msgid "vCard file"
     1777msgstr "vCard fil"
     1778
  • trunk/UContactImage.pas

    r127 r129  
    44
    55uses
    6   Classes, SysUtils, Graphics, UContact, ExtCtrls;
     6  Classes, SysUtils, Graphics, UVCard, ExtCtrls;
    77
    88type
  • trunk/UCore.pas

    r127 r129  
    114114
    115115uses
    116   UFormMain, UFormSettings, UContact, UFormContacts, UFormFindDuplicity, UTest,
     116  UFormMain, UFormSettings, UVCard, UFormContacts, UFormFindDuplicity, UTest,
    117117  UFormGenerate, UFormError, UFormFind, UFormTest, UFormSource, UFormCompare,
    118   UTestCases;
     118  UTestCases, UVCardFile;
    119119
    120120resourcestring
     
    156156    for I := 0 to OpenDialog1.Files.Count - 1 do begin
    157157      if FileExists(OpenDialog1.Files[I]) then begin
    158         TempFile := TContactsFile.Create;
     158        TempFile := TVCardFile.Create;
    159159        try
    160160          TempFile.LoadFromFile(OpenDialog1.Files[I]);
    161           TContactsFile(DataFile).Contacts.AddContacts(TContactsFile(TempFile).Contacts);
     161          TVCardFile(DataFile).VCard.Contacts.AddContacts(TVCardFile(TempFile).VCard.Contacts);
    162162          Inc(LoadedFiles);
    163163        finally
     
    166166      end;
    167167    end;
    168     if LoadedFiles > 0 then TContactsFile(DataFile).Modified := True;
     168    if LoadedFiles > 0 then TVCardFile(DataFile).Modified := True;
    169169    ShowMessage(Format(SCombinedContacts, [LoadedFiles]));
    170170    UpdateFile;
     
    193193        DirectorySeparator + 'Compare' + VCardFileExt;
    194194      ForceDirectories(ExtractFileDir(TempFileName));
    195       TContactsFile(DataFile).SaveToFile(TempFileName);
     195      TVCardFile(DataFile).SaveToFile(TempFileName);
    196196      LoadFileLeft(TempFileName);
    197197      LoadFileRight(OpenDialog1.FileName);
     
    226226  if SelectDirectoryDialog1.Execute then begin
    227227    LastSplitDir := SelectDirectoryDialog1.FileName;
    228     with TContactsFile(DataFile).Contacts do
     228    with TVCardFile(DataFile).VCard.Contacts do
    229229    for I := 0 to Count - 1 do begin
    230230      if Items[I].Fields[cfFullName] <> '' then begin
     
    253253  with TFormFindDuplicity.Create(nil) do
    254254  try
    255     Contacts := TContactsFile(DataFile).Contacts;
     255    Contacts := TVCardFile(DataFile).VCard.Contacts;
    256256    ShowModal;
    257257    FormContacts.ReloadList;
     
    266266  with TFormFind.Create(nil) do
    267267  try
    268     Contacts := TContactsFile(DataFile).Contacts;
     268    Contacts := TVCardFile(DataFile).VCard.Contacts;
    269269    ShowModal;
    270270    FormContacts.ReloadList;
     
    279279  with TFormGenerate.Create(nil) do
    280280  try
    281     Contacts := TContactsFile(DataFile).Contacts;
     281    Contacts := TVCardFile(DataFile).VCard.Contacts;
    282282    if ShowModal = mrOk then begin
    283283      FormContacts.ReloadList;
     
    298298procedure TCore.ARemoveExactDuplicatesExecute(Sender: TObject);
    299299begin
    300   TContactsFile(DataFile).Contacts.RemoveExactDuplicates;
     300  TVCardFile(DataFile).VCard.Contacts.RemoveExactDuplicates;
    301301  UpdateFile;
    302302end;
     
    336336  with TFormSource.Create(nil) do
    337337  try
    338     Source := TContactsFile(DataFile).AsString;
     338    Source := TVCardFile(DataFile).VCard.AsString;
    339339    if ShowModal = mrOk then begin
    340       TContactsFile(DataFile).AsString := Source;
     340      TVCardFile(DataFile).VCard.AsString := Source;
    341341      UpdateFile;
    342342    end;
     
    423423
    424424  DataFile := nil;
    425   DefaultDataFileClass := TContactsFile;
     425  DefaultDataFileClass := TVCardFile;
    426426  FileClosed := True;
    427427  RecentFileRegistryContext := TRegistryContext.Create(ApplicationInfo1.RegistryRoot,
     
    504504    DataFile := DefaultDataFileClass.Create;
    505505    DataFile.OnModify := FileModified;
    506     TContactsFile(DataFile).OnError := DoError;
     506    TVCardFile(DataFile).VCard.OnError := DoError;
    507507  end;
    508508end;
     
    514514  if Assigned(FormContacts) then begin
    515515    if Assigned(DataFile) then
    516       FormContacts.Contacts := TContactsFile(DataFile).Contacts
     516      FormContacts.Contacts := TVCardFile(DataFile).VCard.Contacts
    517517      else FormContacts.Contacts := nil;
    518518    FormContacts.ReloadList;
  • trunk/UTest.pas

    r128 r129  
    44
    55uses
    6   Classes, SysUtils, Generics.Collections, UContact;
     6  Classes, SysUtils, Generics.Collections, UVCard;
    77
    88type
     
    6464implementation
    6565
     66uses
     67  UVCardFile;
     68
    6669resourcestring
    6770  SExpected = 'Expected:';
     
    8487  Lines := TStringList.Create;
    8588  try
    86     with TContactsFile.Create do
     89    with TVCardFile.Create do
    8790    try
    8891      Lines.Text := Input;
    89       LoadFromStrings(Lines);
    90       if ContactIndex < Contacts.Count then begin
    91         PropertyValue := Contacts[ContactIndex].Fields[Index];
     92      VCard.LoadFromStrings(Lines);
     93      if ContactIndex < VCard.Contacts.Count then begin
     94        PropertyValue := VCard.Contacts[ContactIndex].Fields[Index];
    9295        Evaluate(PropertyValue = Value);
    9396      end else Fail;
     
    112115  Lines := TStringList.Create;
    113116  try
    114     with TContactsFile.Create do
     117    with TVCardFile.Create do
    115118    try
    116119      Lines.Text := Input;
    117       LoadFromStrings(Lines);
     120      VCard.LoadFromStrings(Lines);
    118121
    119122      if Action = akRemoveExactDuplicates then
    120         Contacts.RemoveExactDuplicates;
     123        VCard.Contacts.RemoveExactDuplicates;
    121124
    122125      Lines.Text := '';
    123       SaveToStrings(Lines);
     126      VCard.SaveToStrings(Lines);
    124127      Evaluate(Lines.Text = Output);
    125128      Log := SExpected + LineEnding +
  • trunk/UTestCases.pas

    r127 r129  
    1212
    1313uses
    14   UContact;
     14  UVCard;
    1515
    1616const
  • trunk/UVCard.pas

    r127 r129  
    1 unit UContact;
     1unit UVCard;
    22
    33interface
    44
    55uses
    6   Classes, SysUtils, fgl, Dialogs, UDataFile, LazUTF8, Base64, Graphics;
     6  Classes, SysUtils, Dialogs, LazUTF8, Base64, Graphics, UListViewSort,
     7  Generics.Collections, Generics.Defaults;
    78
    89type
     
    3637    function GetCombined: string;
    3738  end;
    38 
    39   TContactsFile = class;
    4039
    4140  TErrorEvent = procedure (Text: string; Line: Integer) of object;
     
    6261    cfPeerTube, cfLinkedIn, cfMastodon, cfMySpace, cfReddit);
    6362
    64   TContactFieldIndexes = TFPGList<TContactFieldIndex>;
     63  TContactFieldIndexes = TList<TContactFieldIndex>;
    6564
    6665  TContactFilterItem = class
     
    7170  { TContactFilterItems }
    7271
    73   TContactFilterItems = class(TFPGObjectList<TContactFilterItem>)
     72  TContactFilterItems = class(TObjectList<TContactFilterItem>)
    7473    function AddNew(FieldIndex: TContactFieldIndex; Value: string): TContactFilterItem;
    7574  end;
     
    9897  { TContactFields }
    9998
    100   TContactFields = class(TFPGObjectList<TContactField>)
     99  TContactFields = class(TObjectList<TContactField>)
    101100  private
    102101    Indexes: array[TContactFieldIndex] of TContactField;
     
    143142  { TContactProperties }
    144143
    145   TContactProperties = class(TFPGObjectList<TContactProperty>)
     144  TContactProperties = class(TObjectList<TContactProperty>)
    146145    function AddNew(Name, Value: string): TContactProperty;
    147146    procedure Assign(Source: TContactProperties);
    148     procedure AssignToList(List: TFPGObjectList<TObject>);
     147    procedure AssignToList(List: TObjects);
    149148    function GetByName(Name: string): TContactProperty;
    150149    function GetByNameGroups(Name: string; Groups: TStringArray;
     
    153152      NoGroups: TStringArray): TContactProperties;
    154153  end;
     154
     155  TVCard = class;
    155156
    156157  { TContact }
     
    170171  public
    171172    Properties: TContactProperties;
    172     ContactsFile: TContactsFile;
     173    ParentVCard: TVCard;
    173174    class function GetFields: TContactFields; static;
    174175    function HasField(FieldIndex: TContactFieldIndex): Boolean;
     
    197198  { TContacts }
    198199
    199   TContacts = class(TFPGObjectList<TContact>)
    200     ContactsFile: TContactsFile;
     200  TContacts = class(TObjectList<TContact>)
     201    ParentVCard: TVCard;
    201202    procedure Assign(Source: TContacts);
     203    procedure AssignToList(List: TObjects);
    202204    procedure AddContacts(Contacts: TContacts);
    203205    procedure InsertContacts(Index: Integer; Contacts: TContacts);
    204     procedure AssignToList(List: TFPGObjectList<TObject>);
    205206    function AddNew: TContact;
    206207    function Search(Text: string; FieldIndex: TContactFieldIndex): TContact;
     
    209210    function ToString: ansistring; override;
    210211    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)
    216218  private
    217219    FMaxLineLength: Integer;
     220    FModified: Boolean;
     221    FOnModify: TNotifyEvent;
    218222    FOnError: TErrorEvent;
     223    function GetString: string;
     224    procedure SetModified(AValue: Boolean);
     225    procedure SetString(AValue: string);
    219226    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;
    223228  public
    224229    Contacts: TContacts;
    225     function GetFileName: string; override;
    226     function GetFileExt: string; override;
    227     function GetFileFilter: string; override;
     230    procedure Assign(Source: TPersistent); override;
    228231    procedure SaveToStrings(Output: TStrings);
    229232    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;
    235236    destructor Destroy; override;
    236237    property AsString: string read GetString write SetString;
     238    property Modified: Boolean read FModified write SetModified;
    237239  published
     240    property MaxLineLength: Integer read FMaxLineLength write FMaxLineLength;
     241    property OnModify: TNotifyEvent read FOnModify write FOnModify;
    238242    property OnError: TErrorEvent read FOnError write FOnError;
    239     property MaxLineLength: Integer read FMaxLineLength write FMaxLineLength;
    240243  end;
    241244
     
    261264
    262265resourcestring
    263   SVCardFile = 'vCard file';
    264266  SFieldIndexRedefined = 'Field index %d redefined';
    265267  SExpectedVCardBegin = 'Expected vCard begin';
     
    518520end;
    519521
     522{ TVCard }
     523
     524function TVCard.GetString: string;
     525var
     526  I: Integer;
     527begin
     528  Result := '';
     529  for I := 0 to Contacts.Count - 1 do
     530    Result := Result + Contacts[I].AsString;
     531end;
     532
     533procedure TVCard.SetModified(AValue: Boolean);
     534begin
     535  if FModified = AValue then Exit;
     536  FModified := AValue;
     537  DoOnModify;
     538end;
     539
     540procedure TVCard.SetString(AValue: string);
     541var
     542  Lines: TStringList;
     543begin
     544  Lines := TStringList.Create;
     545  try
     546    Lines.Text := AValue;
     547    LoadFromStrings(Lines);
     548    Modified := True;
     549  finally
     550    Lines.Free;
     551  end;
     552end;
     553
     554procedure TVCard.DoOnModify;
     555begin
     556  if Assigned(FOnModify) then FOnModify(Self);
     557end;
     558
     559procedure TVCard.Error(Text: string; Line: Integer);
     560begin
     561  if Assigned(FOnError) then FOnError(Text, Line);
     562end;
     563
     564procedure TVCard.Assign(Source: TPersistent);
     565begin
     566  inherited;
     567  if Source is TVCard then Contacts.Assign((Source as TVCard).Contacts);
     568end;
     569
     570procedure TVCard.SaveToStrings(Output: TStrings);
     571var
     572  I: Integer;
     573begin
     574  for I := 0 to Contacts.Count - 1 do
     575    Contacts[I].SaveToStrings(Output);
     576end;
     577
     578procedure TVCard.LoadFromStrings(Lines: TStrings);
     579var
     580  Contact: TContact;
     581  I: Integer;
     582begin
     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;
     597end;
     598
     599procedure TVCard.SaveToFile(FileName: string);
     600var
     601  Lines: TStringList;
     602begin
     603  Lines := TStringList.Create;
     604  try
     605    SaveToStrings(Lines);
     606    Lines.SaveToFile(FileName);
     607  finally
     608    Lines.Free;
     609  end
     610end;
     611
     612procedure TVCard.LoadFromFile(FileName: string);
     613var
     614  Lines: TStringList;
     615begin
     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;
     631end;
     632
     633constructor TVCard.Create(AOwner: TComponent);
     634begin
     635  inherited;
     636  FMaxLineLength := DefaultMaxLineLength;
     637  Contacts := TContacts.Create;
     638  Contacts.ParentVCard := Self;
     639end;
     640
     641destructor TVCard.Destroy;
     642begin
     643  FreeAndNil(Contacts);
     644  inherited;
     645end;
     646
    520647function TNameDetails.GetAsNameParts: TNameParts;
    521648var
     
    846973  I: Integer;
    847974begin
    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]);
     978end;
     979
     980procedure TContactProperties.AssignToList(List: TObjects);
    857981var
    858982  I: Integer;
    859983begin
    860984  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]);
    864987end;
    865988
     
    10851208  I: Integer;
    10861209begin
    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);
    10911212  for I := 0 to Count - 1 do begin
    10921213    Items[I].Assign(Source.Items[I]);
    1093     Items[I].ContactsFile := ContactsFile;
     1214    Items[I].ParentVCard := ParentVCard;
    10941215  end;
    10951216end;
     
    11081229    NewContact := TContact.Create;
    11091230    NewContact.Assign(Contacts[I]);
    1110     NewContact.ContactsFile := ContactsFile;
     1231    NewContact.ParentVCard := ParentVCard;
    11111232    Insert(Index, NewContact);
    11121233    Inc(Index);
     
    11261247end;
    11271248
    1128 procedure TContacts.AssignToList(List: TFPGObjectList<TObject>);
     1249function ComparePropertyName(constref Item1, Item2: TContactProperty): Integer;
     1250begin
     1251  Result := CompareStr(Item1.Name + ';' + Item1.Attributes.Text,
     1252    Item2.Name + ';' + Item2.Attributes.Text);
     1253end;
     1254
     1255function CompareContactFullName(constref Item1, Item2: TContact): Integer;
     1256begin
     1257  Result := CompareStr(Item1.Fields[cfFullName], Item2.Fields[cfFullName]);
     1258end;
     1259
     1260procedure TContacts.Sort;
     1261var
     1262  I: Integer;
     1263begin
     1264  inherited Sort(TComparer<TContact>.Construct(CompareContactFullName));
     1265  for I := 0 to Count - 1 do
     1266    Items[I].Properties.Sort(TComparer<TContactProperty>.Construct(ComparePropertyName));
     1267end;
     1268
     1269procedure TContacts.AssignToList(List: TObjects);
    11291270var
    11301271  I: Integer;
    11311272begin
    11321273  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]);
    11361276end;
    11371277
     
    11391279begin
    11401280  Result := TContact.Create;
    1141   Result.ContactsFile := ContactsFile;
     1281  Result.ParentVCard := ParentVCard;
    11421282  Add(Result);
    11431283end;
     
    11751315    NewContact := TContact.Create;
    11761316    NewContact.Assign(Contact);
    1177     NewContact.ContactsFile := ContactsFile;
     1317    NewContact.ParentVCard := ParentVCard;
    11781318    Add(NewContact);
    11791319  end;
     
    14001540  Field: TContactField;
    14011541begin
    1402   if not Assigned(ContactsFile) then
     1542  if not Assigned(ParentVCard) then
    14031543    raise Exception.Create(SContactHasNoParent);
    14041544  Field := GetFields.GetByIndex(Index);
     
    14351575  I: Integer;
    14361576begin
    1437   if not Assigned(ContactsFile) then
     1577  if not Assigned(ParentVCard) then
    14381578    raise Exception.Create(SContactHasNoParent);
    14391579  Field := GetFields.GetByIndex(Index);
     
    14861626      Dec(LineLength);
    14871627  end;
    1488   if LineLength > ContactsFile.MaxLineLength then
    1489     ContactsFile.MaxLineLength := LineLength;
     1628  if LineLength > ParentVCard.MaxLineLength then
     1629    ParentVCard.MaxLineLength := LineLength;
    14901630end;
    14911631
     
    15091649  Field: TContactField;
    15101650begin
    1511   if not Assigned(ContactsFile) then raise Exception.Create(SContactHasNoParent);
     1651  if not Assigned(ParentVCard) then raise Exception.Create(SContactHasNoParent);
    15121652  Field := GetFields.GetByIndex(FieldIndex);
    15131653  if Assigned(Field) then begin
     
    15451685  Field: TContactField;
    15461686begin
    1547   if not Assigned(ContactsFile) then raise Exception.Create(SContactHasNoParent);
     1687  if not Assigned(ParentVCard) then raise Exception.Create(SContactHasNoParent);
    15481688  Field := GetFields.GetByIndex(FieldIndex);
    15491689  if Assigned(Field) then begin
     
    15621702  I: Integer;
    15631703begin
    1564   if not Assigned(ContactsFile) then raise Exception.Create(SContactHasNoParent);
     1704  if not Assigned(ParentVCard) then raise Exception.Create(SContactHasNoParent);
    15651705  Result := False;
    15661706  for I := 0 to GetFields.Count - 1 do begin
     
    16371777        LinePrefix := '';
    16381778        while True do begin
    1639           if UTF8Length(OutText) > ContactsFile.MaxLineLength then begin
    1640             CutLength := ContactsFile.MaxLineLength;
     1779          if UTF8Length(OutText) > ParentVCard.MaxLineLength then begin
     1780            CutLength := ParentVCard.MaxLineLength;
    16411781            if Encoding = veQuotedPrintable then begin
    16421782              Dec(CutLength); // There will be softline break at the end
     
    16961836        ParseState := psInside;
    16971837      end else begin
    1698         ContactsFile.Error(SExpectedVCardBegin, I + 1);
     1838        ParentVCard.Error(SExpectedVCardBegin, I + 1);
    16991839        Break;
    17001840      end;
     
    17421882        NewProperty.EvaluateAttributes;
    17431883      end else begin
    1744         ContactsFile.Error(SExpectedProperty, I + 1);
     1884        ParentVCard.Error(SExpectedProperty, I + 1);
    17451885        Break;
    17461886      end;
     
    17871927end;
    17881928
    1789 { TContactsFile }
    1790 
    1791 procedure TContactsFile.Error(Text: string; Line: Integer);
    1792 begin
    1793   if Assigned(FOnError) then FOnError(Text, Line);
    1794 end;
    1795 
    1796 function TContactsFile.GetString: string;
    1797 var
    1798   I: Integer;
    1799 begin
    1800   Result := '';
    1801   for I := 0 to Contacts.Count - 1 do
    1802     Result := Result + Contacts[I].AsString;
    1803 end;
    1804 
    1805 function TContactsFile.GetFileName: string;
    1806 begin
    1807   Result := SVCardFile;
    1808 end;
    1809 
    1810 function TContactsFile.GetFileExt: string;
    1811 begin
    1812   Result := VCardFileExt;
    1813 end;
    1814 
    1815 function TContactsFile.GetFileFilter: string;
    1816 begin
    1817   Result := GetFileName + ' (' + GetFileExt + ')|*' + GetFileExt + '|' + inherited;
    1818 end;
    1819 
    1820 procedure TContactsFile.SaveToStrings(Output: TStrings);
    1821 var
    1822   I: Integer;
    1823 begin
    1824   for I := 0 to Contacts.Count - 1 do
    1825     Contacts[I].SaveToStrings(Output);
    1826 end;
    1827 
    1828 procedure TContactsFile.LoadFromStrings(Lines: TStrings);
    1829 var
    1830   Contact: TContact;
    1831   I: Integer;
    1832 begin
    1833   Contacts.Clear;
    1834   //MaxLineLength := 10;
    1835 
    1836   I := 0;
    1837   while I < Lines.Count do begin
    1838     Contact := TContact.Create;
    1839     Contact.ContactsFile := Self;
    1840     if Contact.LoadFromStrings(Lines, I) then begin
    1841       Contacts.Add(Contact);
    1842     end else begin
    1843       FreeAndNil(Contact);
    1844       Inc(I);
    1845     end;
    1846   end;
    1847 end;
    1848 
    1849 function TContactsFile.NewItem(Key, Value: string): string;
    1850 var
    1851   Charset: string;
    1852 begin
    1853   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 var
    1860   Lines: TStringList;
    1861 begin
    1862   Lines := TStringList.Create;
    1863   try
    1864     Lines.Text := AValue;
    1865     LoadFromStrings(Lines);
    1866     Modified := True;
    1867   finally
    1868     Lines.Free;
    1869   end;
    1870 end;
    1871 
    1872 procedure TContactsFile.SaveToFile(FileName: string);
    1873 var
    1874   Lines: TStringList;
    1875 begin
    1876   inherited;
    1877   Lines := TStringList.Create;
    1878   try
    1879     SaveToStrings(Lines);
    1880     Lines.SaveToFile(FileName);
    1881   finally
    1882     Lines.Free;
    1883   end
    1884 end;
    1885 
    1886 procedure TContactsFile.LoadFromFile(FileName: string);
    1887 var
    1888   Lines: TStringList;
    1889 begin
    1890   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 begin
    1895     Lines.LoadFromFile(FileName, TEncoding.Unicode);
    1896     if (Length(Lines.Text) > 0) and (Pos(VCardBegin, Lines.Text) = 0) then begin
    1897       Lines.LoadFromFile(FileName, TEncoding.BigEndianUnicode);
    1898     end;
    1899   end;
    1900   {$ENDIF}
    1901   try
    1902     LoadFromStrings(Lines);
    1903   finally
    1904     Lines.Free;
    1905   end;
    1906 end;
    1907 
    1908 function CompareContactFullName(const Item1, Item2: TContact): Integer;
    1909 begin
    1910   Result := CompareStr(Item1.Fields[cfFullName], Item2.Fields[cfFullName]);
    1911 end;
    1912 
    1913 function ComparePropertyName(const Item1, Item2: TContactProperty): Integer;
    1914 begin
    1915   Result := CompareStr(Item1.Name + ';' + Item1.Attributes.Text,
    1916     Item2.Name + ';' + Item2.Attributes.Text);
    1917 end;
    1918 
    1919 procedure TContactsFile.Sort;
    1920 var
    1921   I: Integer;
    1922 begin
    1923   Contacts.Sort(CompareContactFullName);
    1924   for I := 0 to Contacts.Count - 1 do
    1925     Contacts[I].Properties.Sort(ComparePropertyName);
    1926 end;
    1927 
    1928 procedure TContactsFile.Assign(Source: TContactsFile);
    1929 begin
    1930   inherited Assign(Source);
    1931   Contacts.Assign(Source.Contacts);
    1932 end;
    1933 
    1934 constructor TContactsFile.Create;
    1935 begin
    1936   inherited;
    1937   Contacts := TContacts.Create;
    1938   Contacts.ContactsFile := Self;
    1939   MaxLineLength := DefaultMaxLineLength;
    1940 end;
    1941 
    1942 destructor TContactsFile.Destroy;
    1943 begin
    1944   FreeAndNil(Contacts);
    1945   inherited;
    1946 end;
    1947 
    19481929end.
    19491930
  • trunk/vCardStudio.lpi

    r128 r129  
    119119      </Item6>
    120120    </RequiredPackages>
    121     <Units Count="26">
     121    <Units Count="27">
    122122      <Unit0>
    123123        <Filename Value="vCardStudio.lpr"/>
     
    150150      </Unit4>
    151151      <Unit5>
    152         <Filename Value="UContact.pas"/>
     152        <Filename Value="UVCard.pas"/>
    153153        <IsPartOfProject Value="True"/>
    154154      </Unit5>
     
    275275        <IsPartOfProject Value="True"/>
    276276      </Unit25>
     277      <Unit26>
     278        <Filename Value="UVCardFile.pas"/>
     279        <IsPartOfProject Value="True"/>
     280      </Unit26>
    277281    </Units>
    278282  </ProjectOptions>
  • trunk/vCardStudio.lpr

    r127 r129  
    66  {$ENDIF}
    77  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;
    910
    1011{$R *.res}
Note: See TracChangeset for help on using the changeset viewer.