|
Installing and running the program
The Windows installation is straightforward. You simply double-click on the self-extracting file gedail.exe. When the installation process begins, usage information will be displayed, and you'll be prompted for the installation directory that you can optionally change. The installation process ends by displaying this documentation.
After that, all necessary files are stored in the installation directory and subdirectories, and no file is added or changed in the system directories. An entry is created in the start menu, including the main shortcuts. Three shortcuts are also created in the JFTools folder on the desktop to allow drag and drop operations of the .ged files to start program execution.
To start program in windows mode, click on the Gedail 2 icon, you'll be then fully guided and helped .
To start program in command mode, click on the Gedail icon.If you do not specify command line parameters, the program assist you to define .ged file name and its location. If there is no .opt file provided, default options will be used.
Three DOS .bat command (batch) files are provided in the package. If you did not use the default directory during the installation process, you must change the all three .bat files to show the directory that you used for your installation.
Example: if you used c:\JFTools\gedail as your installation directory, then you must change the three .bat files from C:\Programs Files\JFtools\ to c:\JFTools\gedail.
A separate DOS command Gedmarr.bat file is provided to produce the marriages list, and another Gnet.bat to produce the Geneanet flash-list, and a third Gedail.bat for standard usage.
You can drag and drop the .ged files on the .bat file icons in the JFTools folder using "Windows Files Explorer", or similar software. When you use the "drag and drop" option, a search for the .opt file with the same file name as the .ged will take place. If the matching .opt file is not found, then the default options file will be used.
Program execurtion results could be displayed by the browser, click on the "result" icon in the JFTools folder. The program store the name of the last ged file processed, this becomes the default proposition for the next program execution.
An uninstall utility program is provided with the software package, it will clean up every installed object, so long as the install .log file exists.
If you are an Apple or Linux user, you can download a .zip version of the software, this version do not include the Perl interpretor, very often provided with the unix like systems.
Software options
The software execution is controlled by setting parameters in a .opt options file and evaluated according to the PERL language syntax. The name of this option file may be explicitely specified in the command line :
If you use the version 2 of Gedail, parameters and start are under control of the windowed interface.
perl gedail.pm my_options.opt my_gedcom.ged
or implicitely if a .opt file exists, with the same filename and in the same directory as the .ged file containing genealogical data :
perl gedail.pm my_gedcom.ged ( a file my_gedcom.opt must exist )
Without such an .opt file, neither a default.opt file, the program uses default options set in the reserved gediopt.pm file. A default.opt file is provided, you can make a copy of this file and make your own options file from this.
The list of all available parameters is given below, however, you can start using the software without worrying about these. Default values are shown. For the yes/no type parameters, the 1 value means yes and the 0 means no.
Parameter | Default | Function |
Basic Options |
$file_pref | 'Gedi' | Filename prefix (1 to 4 Alphanumerics ) and default name for the output subdirectory. This is useful if you have several Gedcom files to publish. |
$tpl_frames | 1 | Templates with frames (0:without) |
$gen_lang | '' | languages used for html generation separated by commas (default : $msg_lang all : 'fr,en,de,nl'
| $sosa_only | 0 | Ascending tree restriction option (1 = yes) |
$desc_only | 0 | Descending trees restriction option (1 = yes) |
$est_date | 1 | Birth date estimation (1 = yes) |
$est_place | 1 | Origin place estimation (1 = yes) |
$conv_date | 1 | French revolution dates conversions |
$css_style | 'choco' | Cascaded steel sheet .css file name |
$cd | 1 | Include files for auto loading CD creation. |
Individuals files processing options |
$ind_opt | 1 | Individuals charts option |
$print_notes | 0 | Display individual's notes level 1 and titles |
$print_notes_2 | 0 | Display individual's notes level 2 |
$print_refn | 0 | Display individual's reference |
$print_sosa | 1 | Display Sosa-Stradonitz number |
$print_desc | 0 | Display d'Aboville number |
$print_events | 0 | Display events and attributes |
$print_events | 0 | Display sources |
$full_place | 1 | Publish full place, or only city |
$full_date | 1 | Publish full date, or only year |
$hide_XX | 1 | Make 20th century dates privates |
$hide_XX_pics | 0 | Make 20th century pictures privates |
$check_images | 1 | Check for images in the $photo_dir directory |
Names processing options |
$nam_opt | 1 | Surnames output option |
$nam_by_letter | 0 | One names index file by letter |
$name_asis | 0 | No names formatting |
Places processing options |
$loc_opt | 1 | Places output option |
$loc_by_letter | 0 | One places index file by letter |
$place_links | 1 | Process Cassini links files |
$place_format | '' | Names of places format in Gedcom (see above) |
$place_index | '2' | Places sort criterias (if omitted, full place name) |
Ascending tree processing options |
$gen_opt | 1 | Ascending trees processing (1 = yes) |
$gen_number | 20 | Number of generations output (0=none) |
$name_root | '' | forenames /surname/ root NAME field (ex : 'John Edward /SMITH/') |
$indi_root | '' | Sosa root identifier in INDI field (ex : "I27") |
Descending trees processing options |
$dsc_opt | 1 | Descending trees processing (1 = yes) |
$desc_number_min | 0 | Minimum number of descendants required (0 : no minimum) |
$desc_name_min | 50 | Minimum number of surname owners ( frequents surnames ) |
$desc_sosas_only | 0 | Only male Sosas descendants |
$desc_by_name | 1 | One lineages file by surname |
Flash list file processing option |
$fli_opt | 1 | Create flash list .csv file |
$fli_geneanet | 1 | Geneanet format, with place;region;subregion;country |
$fli_fq_only | 1 | Fully qualified (surname and place) only |
$fli_sosa_only | 0 | Sosas surnames only |
Marriages list file processing option |
$mli_opt | 1 | Create marriages .csv file |
$mli_jftools | 1 | Jftools format, with place;region;subregion;country |
$mli_fq_only | 1 | Fully qualified (defined place) only |
$mli_sosa_only | 0 | Sosas surnames only |
Main page customisation options |
$main_page | 1 | Genealogy main page generation (1:yes) |
$base_title | 1 | Base title (no identification if omitted) |
$banner_pic | '' | Picture file .jpg .gif .png for the banner |
$banner_url | '' | http address linked by the banner |
$main_header | '' | Main page header text (no header if omitted) |
$main_footer | '' | Main page footer text (no footer if omitted) |
$main_left | '' | Main page left text (nothing if omitted) |
$main_right | '' | Main page right text (nothing if omitted) |
$aut_pic | 'arbre.jpg' | Base author picture (.jpg, .gif or .png file)) |
$aut_name | "" | Base author name (from SUBM NAME if omitted, nothing if spaces) |
$aut_addr1 | "" | Base author address 1st line (from SUBM ADDR if omitted) |
$aut_addr2 | "" | Base author address 2nd line (from SUBM CONT if omitted) |
$aut_addr3 | "" | Base author address 3rd line (from SUBM CONT if omitted) |
$aut_addr4 | "" | Base author address 4th line (from SUBM CONT if omitted) |
$aut_ctry | "" | Base author country (from SUBM CTRY if omitted) |
$aut_phone | "" | Base author phone number (from SUBM PHON if omitted) |
$aut_email | "" | Base author email address (from SUBM EMAIL if omitted) |
$aut_file | '' | Link text for the .ged file downloading (no download if omitted) |
$counter | 1 | Home page visits counter |
$counter_init | 1 | Counter initial value setting |
$home_page | '' | Top level return page |
Pictures options for Gedpics |
$photo_max_size | '640x480' | Maximum display size of pictures |
$photo_thumb_size | '56x42' | Maximum display size of thumbnails |
$photo_gallery | '10x5' | Pictures number per row x per column |
Advanced options : Only changes these if necessary |
$out_dir | '' | Directory where the HTML files will be stored |
$php | 0 | Pages compression by the server (1 = yes ) |
$place_out | '2' | Names of places format displayed (if omitted, full place name) |
@desc_names | ('') | Surnames list separated by commas (défaut : root + frequents surnames, all : ('*') ) |
@priv_refs | (PRV) | Make information private for these REFN |
$priv_note | '#' | Private note prefix character |
$priv_name | '' | Replacement name for privates ref. individuals |
$priv_string | '(XX°)' | 20th century datas hiding string |
$sosa_link | '#' | Sosa indicator |
$line_link | '*' | Lineage indicator |
$desc_indent | '- ' | Descending tree indent chars |
$tpl_dir_frames | 'C001' | Templates file directory prefix of LNNN-ll with frames |
$tpl_dir_noframes | 'B000' | Templates file directory prefix of LNNN-ll without frames |
$indf_size | 15 | Number of individuals on a page |
$namf_size | 100 | Number of individuals on an index page by name |
$namx_size | 500 | Number of surnames on a surname index page. If 0, then one letter per page. |
$locf_size | 100 | Number of individuals by geographic location |
$locx_size | 500 | Number of geographic location on the geographic location index page. If 0, then one letter per page |
$dscf_size | 200 | Number of individuals on a descendance page |
$dscx_size | 500 | Number of individuals on a descendance index page |
$genf_size | 64 | Number of individuals on a generation page |
$sour_size | 250 | Number of lines per sources page |
$photo_dir | '' | Directory where the individual's photo files are stored |
Expert options : Only changes these if mandatory |
$gnetdef_country | 'FRA' | Geneanet : default countryt |
$gnetdef_region | 'NPC' | Geneanet : default region |
$gnetdef_subregion | '' | Geneanet : default sub region |
$dsc_max_index | '30' | Maximum number of names in the descendants top index |
$refn_root | 'root' | Sosa root identifier in REFN field (ex: '1' or 'de cujus') |
$charset | 'ANSI' | Gedcom file character set : ANSI, IBMPC, MAC, ANSEL, UFT-8 (from CHAR gedcom record ) |
Templates customisation
The program formats HTML pages as described in a set of templates files. There are 11 template files and they must be stored in the directory pointed to by the $tpl_dir parameter whose default value is C001 prefix corresponding to a template set with frames. At his prefix is automatically added the language suffix -fr for french, -en for english, -de for german, -nl for dutch. To use a personnal templates set, enter full name under the LNNN-ll format.
The HTML page layout, the links between pages, the block assignment within pages, and the index creation are automatically made according to a structure described by the HTML comments : <!!page--> <!!epage--> for the beginning and end of a page, <!!block--> <!!eblock--> for the beginning and end of block within a page, and <!!item--> to format an item.
A conditionnal generation is allowed according to the value of a parameter $param for a block delimited by <!!if (parameter)--> and <!!endif-->, if the parameter values 0 or '', the block is not generated.
An additionnal tag <!!FILE suff--> is used to create a multi frames index with the template indi-tpl describing the main index pattern. The "suff" suffix is added to the file names prefix whose default value "Gedi" is set by the $file_pref parameter to create secondary files for frames.
Merging genealogical data to the templates is done by substituting values to the symbolic variables #variable_name or <!#variable_name value_if_true>. These last formats are used in some cases to avoid useless code generation, for example empty parentheses. The scope of this substitution, depending on the template file and the paragraph, is described in the following table :
Common variables for all templates except indi-tpl |
all paragraphs | |
| #version | Gedail software version |
| #curr_date | Generation date DD/MM/YYYY |
| #curr_hour | Generation time HH:MM |
| #namx_file | Names index link |
| #locx_file | Places index link |
| #genx_file | Generations index link |
| #home_page | Home page URL for high level return |
| #pref | Pages filenames prefix ($pref) |
<!!page----> | |
| #prev_file | Previous page hyperlink |
| #next_file | Next page hyperlink |
<!!epage---> | |
| #prev_file | Previous page hyperlink |
| #next_file | Next page hyperlink |
ind-tpl : individuals charts template |
<!!block---> | |
| #ind_refn | Reference : REFN value |
| #ind_sosa | Sosa : Sosa number |
| #ind_id | Individual number : INDI value |
| #ind_name | Individual full name |
| #ind_givname | Individual given name |
| #ind_forname | Individual first name |
| #ind_surname | Individual surname |
| #ind_photo | Photo link |
| #parents_chart | Ascendant chart |
| #ind_birt_date | Birth date |
| #ind_birt_place | Birth place |
| #ind_deat_date | Death date |
| #ind_deat_place | Death place |
| #ind_title | titles string + TITL value |
<!!item----> | |
| #marr_num | Marriage order number |
| #marr_date | Marriage date |
| #marr_place | Marriage place |
| #spouse_ref | Spouse hyperlink |
| #children_chart | Children's chart |
<!!eblock--> | |
| #ind_note | Notes string : NOTE value |
| #ind_titl | Titles string : TITL value |
| #ind_occu | Occupations string : OCCU value |
| #ind_events | Events string : see gedigen.opt |
nam-tpl : individuals' template sorted by name |
<!!block---> | |
| #rupture | Referenced initial letter |
<!!item----> | |
| <!#item_ref> | Individual's hyperlink pointer |
| #ind_filename | Individual's hyperlink |
| #ind_surname | Individual's surname |
| #ind_forname | Individual's first name |
| #ind_birt_date | Birth date |
| #ind_birt_year | Birth year |
| #ind_deat_date | Death date |
| #ind_deat_year | Death year |
| #ind_place | Presumed origin location |
| #ind_refn | Reference (REFN) |
| #ind_occu | Occupations string : OCCU value |
| #ind_dabo | d'Aboville number |
nami-tpl : names index template |
all paragraphs | |
| #ind_cnt | Individuals count |
| #fam_cnt | Families count |
<!!block---> | |
| #rupture | Referenced initial letter |
<!!item----> | |
| #surname_ref | Surname hyperlink pointer |
| #surname_id | Surname |
| <!#surname_count> | Count |
loc-tpl : individuals' template sorted by place |
<!!block---> | |
| #block_ref | Place hyperlink pointer |
| #rupture | Referenced location |
<!!item----> | |
| #ind_filename | Individual's hyperlink |
| #ind_surname | Individual's surname |
| #ind_forname | Individual's first name |
| #ind_birt_year | Birth year |
| #ind_birt_plac | Birth place |
| #ind_deat_year | Death year |
| #ind_deat_plac | Death place |
| #ind_marr1_year | First marriage year |
| #ind_marr1_plac | First marriage place |
| #ind_place | Presumed origin location |
| #ind_refn | Reference (REFN) |
| #ind_occu | Occupations string : OCCU value |
| #ind_dabo | d'Aboville number |
loci-tpl : place names index template |
all paragraphs | |
| #ind_cnt | Individuals count |
| #loc_cnt | Places count |
<!!block---> | |
| #rupture | Referenced initial letter |
<!!item----> | |
| #place_ref | Place hyperlink |
| #place_id | Full place index |
| #place_idn | Place index field n |
| <!#place_count> | Count |
gen-tpl : ascendant tree template sorted by generation |
<!!block---> | |
| #rupture | Block's Generation number |
<!!item----> | |
| #husb_sosa | Husband' sosa number |
| <!#husb_ref> | Husband's hyperlink |
| #husb_name | Husband's name |
| #marr_date | Marriage date |
| #marr_place | Marriage place |
| #wife_sosa | Wife' sosa number |
| <!#wife_ref> | Wife's hyperlink |
| #wife_name | Wife's name |
| #husb_occu | Husband's occupations string : OCCU value |
| #wife_occu | Wife's occupations string : OCCU value |
| #husb_years | Husband's Birth - Death years |
| #wife_years | Wife's Birth - Death years |
geni-tpl : generations index template |
tous paragraphes | |
| #sosa_cnt | Ascendant count |
| #gen_cnt | Generations count |
<!!page----> | |
| #root | Tree's root individual |
<!!item----> | |
| #gen_ref | Generation hyperlink pointer |
| #gen_id | Generation number |
| <!#gen_count> | Generation Count |
dsc-tpl : descending trees sorted by branch template |
<!!block---> | |
| #rupture | Branch identifier |
| #branch_name | Ancestor name |
| #branch_orig | Estimated origin |
<!!item----> | |
| #desc_ref | Father hyperlink |
| #ind_dabo | d'Aboville number |
| #ind_filename | Individual hyperlink |
| #ind_surname | Individual surname |
| #ind_forname | Individual first name |
| #ind_dates | Birth - Death year |
| #ind_marrs | Individual marriages |
dsci-tpl : descending trees index template |
tous paragraphes | |
| #branch_cnt | Branches count |
<!!block----> | |
| #rupture | Descendance surname |
<!!item----> | |
| #branch_ref | Descendance hyperlink |
| #branch_id | Ancestor forname |
| <!#branch_count> | Descendants count |
sour-tpl : sources template |
<!!item----> | |
| #sour_id | Gedcom identifier |
| #sour_refn | reference |
| #sour_abbr | abbreviation |
| #sour_titl | title |
| #sour_auth | author |
| #sour_publ | publication |
| #sour_repo | repository |
| #sour_caln | repository number |
| #sour_text | description |
| #sour_note | note |
indi-tpl : main index template |
this template has no paragraph except <!!FILE suff --> | |
| #csv_file | Flashlist file hyperlink |
| #ind_cnt | Individuals count |
| #loc_cnt | Places count |
| #fam_cnt | Names count |
| #base_title | Genealogy database title |
| #banner_pic | Banner picture |
| #banner_url | Banner link |
| #main_header | Main page header |
| #main_footer | Main page footer |
| #root_name | Root name |
| #aut_pic | Author's picture |
| #aut_name | Author's name |
| #aut_addr1 | Author's address 1st line |
| #aut_addr2 | Author's address 2nd line |
| #aut_addr3 | Author's address 3rd line |
| #aut_addr4 | Author's address 4th line |
| #aut_ctry | Author's country |
| #aut_phone | Author's phone number |
| #aut_email | Author's E-Mail (encrypted) |
| #home_page | Home page URL for high level return |
| #main_page | Main genealogy page for return |
| #compteur | Home page visits counter |
| #nam_index | Names index hyperlink |
| #loc_index | Places index hyperlink |
| #gen_index | Generations index hyperlink |
| #dsc_index | Lineages index hyperlink |
<!!FILE suff --> | only used with frames |
| #pref | Pages filenames prefix ($pref) |
| #nam_fram2 | 2 frames names index hyperlink |
| #loc_fram2 | 2 frames places index hyperlink |
| #gen_fram2 | 2 frames generations index hyperlink |
| #nam_fram3 | 3 frames names index hyperlink |
| #loc_fram3 | 3 frames places index hyperlink |
| #dsc_fram2 | 2 frames lineages index hyperlink |
| #dsc_fram3 | 3 frames lineages index hyperlink |
| #gen_fram3 | 3 frames generations index hyperlink |
|
Design customization
The page design depend on a Cascaded Style Sheet gedi.css ( whosan be changes by the $css_style parameter ) : fonts, sizes, colors, background, links style, ... .You can change it or create a new one. It's rather easy, study a CSS guide like this.
Language choice
Now, four languages are available, French ,English ( default ), German or Dutch, to change the default, you need to set the $gen_lang parameter to 'fr', 'en', 'de', 'nl'. The gedigen_xx.opt file content language dependents characters stings :
Characters strings | Default (fr,en,de,nl) | Usage |
$str_mois | 'Jan,..,Dec' | Month names |
%str_daty | 'ABT,AFT,BEF,...' | Date prefix |
To change to an other language, Spanish by example, you have to create a new templates set, by adaptation of an existing one, and name it B000-sp, B001-sp and secondly by setting the value of the 2 parameters below in a gedigen_sp.opt file,
for example :
$str_mois = "Ene,Feb,Mar,Abr,May,Jun,Jul,Ago,Sep,Oct,Nov,Dic"; # used for date format
%str_daty = ('ABT'=>'Cerca','CAL'=>'Calcul.','EST'=>'Estim.','BEF'=>'Antes','AFT'=>'Después',
'BET'=>'Entre','AND'=>'y','FROM'=>'Desde','TO'=>'hasta');
To create a new templates set corresponding to an other language, a utility adapt is available in the Tools directory. You need only to create a translation file, adapt-nl.txt by exemple, on the adapt-fr.txt or adapt-de.txt model and then to start the adapt.bat command, by a drag and drop of your translation file.
If you have translation aptitudes, you can create your own templates, and propose modifications for the parameters above, send me your adapt-xx.txt, gedigen_xx.opt et gedimsg_xx.pm translated files.
The $gen_lang='xx,xx,xx' parameter; select the languages generated by the program, (xx = 'fr', 'en', 'de', 'nl'), depending on the gedigen_xx.pm files wanted.
The $msg_lang=xx; parameter acts on the output messages displayed by the program, (xx = 'fr', 'en', 'de', 'nl'), depending on the gedimsg_xx.pm file selected.
Places names format
There is no real standard for the places names codification, the most usual format is :
subdivision,city,zipcode,county,state,country
The software allows to specify various formats by the $place_format parameter, the above format is described by $place_format = '1,2,3,4,5,6';
1 | hamlet or parish |
2 | hamlet or parish |
3 | zipcode |
4 | county |
5 | state |
6 | country |
[] | optionnal field |
| space. |
samples :
$place_format = "2"; | city |
$place_format = '2[,0]'; | city[,ignored;] |
$place_format = '2[,1],6'; | city[,hamlet],country |
$place_format = '1,2,5'; | hamlet, city, state |
$place_format = '1,4,5'; | city, county, state |
$place_format = '1,2,4,3,5,6'; | hamlet or parish, city, county, zipcode, state, country |
$place_format = '1 2 3 4 5 6'; | hamlet or parish city zipcode county state country |
$place_format = '1,2,3[,4],5,6'; | hamlet or parish,city,zipcode[,county],state,country |
$place_format = '2,3,4,5,6,1'; |
city,zipcode,county,state,country,subdivision |
$place_format = '2[,3],4,5,6'; | city[,zipcode],county,state,country |
$place_format = '1;2;3;4;5;6'; | parish;city;zipcode;county;state;country |
$place_format = '2[,1][ (3)]'; | city[, parish][ (zipcode)] |
$place_format = '2[ (6/5)]'; | city[ (country/state)] |
As default, the city is taken from the beginning of the place name. If the .ged file content a place format description (PLAC and FORM records), it is taken.
This have an influence on the places index generation, it can take as sort criterias a combination of fields part of the index, by the $place_index parameter.
samples :
$place_index = '2'; | city (default) |
$place_index = '32'; | zipcode city |
$place_index = '652'; | country state city |
$place_index = '65432'; | country state county zipcode city |
All the index fields can be taken for display in the loci-tpl template with the #place_id variable, or only selected fields with the #place_idn variables where n is the 1 to 6 number refering the field.
samples :
$place_index = '2'; | #place_id | city (default) |
$place_index = '32'; | #place_id2(#place_id3) | city(zipcode) |
$place_index = '652'; | #place_id2/#place_id6 | city/country |
$place_index = '65432'; | #place_id | country state county zipcode city |
An other parameter $place_out gives control of places display format in the places pages, for instance to avoid extras ,,,, in case of empties zones.
samples :
$place_out = '1 2 3 4 5 6'; | hamlet/parish city county zipcode state country |
$place_out = '2 1 (3) '; | city hamlet/parish (zipcode) |
Places informations links
The program can associate an URL link to any place name, for a picture, a map, a description. This link will be showed by an eye icon.
You had just to create a .csv file with a placelink-xx name in the gedail directory, ( xx suffix, one or several digits ), this file should contain one line per place :
place name;link; where link is an URL :- http://www.site.com/myplace.html
- or http://www.site.com/myplace.jpg
- or ../photos/myplace.jpg (if the place picture is in your photos subdirectory)
- or javascript:cassini('N','CC') (a javascript routine provided for Cassini map display, N is the map number and CC its reference AA to ZZ in the Gallica site).
A placelink-0.csv file is provided as a default with javascript calls for all the Cassini maps of Gallica. A set of files placelink-01.csv to placelink-95.csv for the french departments is also provided in the placelinks directory, just drop those you want in the gedail directory.
Countries postal codes
The software uses country postal code files basically for determining the region, sub-region used by Geneanet. The files for France, Belgium and Luxemburg are provided. They are respectively codes-FRA.csv, codes-BEL.csv et codes-LUX.csv.
The record format is : :
place name in lowercase without accents; postal code; Geneanet sub-region; Geneanet region
These rather bulky files are used by the gedail.pm program, provided that they are stored in the same directory. Avoid placing them there if they are useless for your ascendants.
You can constitute codes-XXX.csv files for other countries, and forward them to me so that everyone can benefit from these additional files.
Uploading your web site
If all options are selected, the gedail software creates many files, approximatively one file of about 20 K-bytes for ten individuals, that is to say, approximately 500 files giving 10 Megabytes for a database of 5000 individuals.
The top level index has a name pref_ind.html where pref is the chosen prefix ( default Gedi ). You must link this page to your website home page ( default index.html ) with an hyperlink like <A HREF="pref_ind.html">my genealogy</A>. If you don't have a web site, a page index.html with an automatic link of your genealogy is generated by Gedail.
To upload these files to your internet provider server, you must use a FTP software like the freewares LeechFTP, SmartFTP or Filezilla. If you have a standard speed connection, i.e. between 28kbps and 56kbps, the first upload of all the genealogical pages generated will take approximatively 3 quarters of an hour.
When you next update, the software will only recreate updated pages, you can only reload these after sorting and selecting files on a file creation date criteria.
|