diff -Nru geneweb-6.08dfsg/CHANGES geneweb-6.08+git20160228+dfsg/CHANGES --- geneweb-6.08dfsg/CHANGES 2014-03-24 10:07:09.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/CHANGES 2016-02-28 10:10:47.000000000 +0000 @@ -1,3 +1,9 @@ +GeneWeb version 6.08 +-------------------- + +* Added scripts created by Daniel. See contrib/gwbase. +* Mainly, bug fixes. + GeneWeb version 6.07 -------------------- diff -Nru geneweb-6.08dfsg/configure geneweb-6.08+git20160228+dfsg/configure --- geneweb-6.08dfsg/configure 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/configure 2016-02-28 10:10:47.000000000 +0000 @@ -1,23 +1,66 @@ -#!/bin/sh +#!/bin/bash -if ocamlc -v >/dev/null 2>&1; then : +OCAML_MIN_VER="4.02" + +verge() { + # osx doesn't have sort -V + # [ "$2" = "`echo -e "$1\n$2" | sort -V | head -n1`" ] + [ "$2" = "`echo -e "$1\n$2" | tr ' ' '\n' | sort -n | head -n1`" ] +} + +if ocamlc -v >/dev/null 2>&1; then + echo "ocamlc ... OK" else echo "You need the command ocamlc accessible in the path!" echo "Configuration script failed!" exit 1 fi -if camlp5 -v >/dev/null 2>&1; then : +OCAML_VER="`ocamlc -version`" + +if verge "$OCAML_VER" "$OCAML_MIN_VER"; then + echo "ocamlc version $OCAML_VER >= $OCAML_MIN_VER ... OK" +else + echo "OCaml version $OCAML_MIN_VER or newer needed" + echo "Configuration script failed!" + exit 1 +fi + +if camlp5 -v >/dev/null 2>&1; then + echo "camlp5 ... OK" else echo "You need the command camlp5 accessible in the path!" echo "Configuration script failed!" exit 1 fi -echo "print_endline Sys.os_type;;" > tools/tmp -if [ "`ocaml tools/tmp`" = "Unix" ]; then - cp tools/Makefile.inc.unix tools/Makefile.inc +if [ "`echo 'print_endline Sys.os_type;;' | ocaml -stdin -noprompt`" = "Unix" ]; then + echo "OS type ... Unix" + cp tools/Makefile.inc.unix tools/Makefile.inc +else + echo "OS type ... Windows" + cp tools/Makefile.inc.win tools/Makefile.inc +fi + +D_GW_DIR=`pwd`/ +if test -e "tools/Makefile.inc"; then + sed "s|^\(GW_DIR=\).*|\1$D_GW_DIR|" tools/Makefile.inc > tools/Makefile.inc.tmp + mv tools/Makefile.inc.tmp tools/Makefile.inc +fi + +cp tools/Makefile.ocaml.inc tools/Makefile.ocaml + +if ocamlfind printconf >/dev/null 2>&1; then : else - cp tools/Makefile.inc.win tools/Makefile.inc + echo "Could not find ocamlfind in the path." + echo "You may need to update Makefile.ocaml by hand." + exit 1 +fi + +D_CAMLP5D=`ocamlfind query camlp5`/ +if test -e "tools/Makefile.ocaml"; then + sed "s|^\(CAMLP5D=\).*|\1$D_CAMLP5D|" tools/Makefile.ocaml > tools/Makefile.ocaml.tmp + mv tools/Makefile.ocaml.tmp tools/Makefile.ocaml fi -rm tools/tmp + +echo "Configuration script succeeded!" diff -Nru geneweb-6.08dfsg/contrib/gwbase/etc/connex.ml geneweb-6.08+git20160228+dfsg/contrib/gwbase/etc/connex.ml --- geneweb-6.08dfsg/contrib/gwbase/etc/connex.ml 2014-06-05 12:17:22.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/contrib/gwbase/etc/connex.ml 2016-02-28 10:10:47.000000000 +0000 @@ -120,7 +120,7 @@ load_couples_array base; load_descends_array base; let nb_fam = nb_of_families base in - let mark = Array.create nb_fam False in + let mark = Array.make nb_fam False in let min = ref max_int in let max = ref 0 in for i = 0 to nb_fam - 1 do { @@ -181,7 +181,7 @@ flush stdout; } } - else (); + else (); } else (); }; diff -Nru geneweb-6.08dfsg/contrib/gwbase/etc/geneanet.ml geneweb-6.08+git20160228+dfsg/contrib/gwbase/etc/geneanet.ml --- geneweb-6.08dfsg/contrib/gwbase/etc/geneanet.ml 2014-06-05 12:17:22.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/contrib/gwbase/etc/geneanet.ml 2016-02-28 10:10:47.000000000 +0000 @@ -137,7 +137,7 @@ | "de Roumanie" -> "ROM" | "de Sučde" -> "SWE" | "" -> "" - | x -> (* do Printf.eprintf "%s\n" x; flush stderr; return *) + | x -> (* do Printf.eprintf "%s\n" x; flush stderr; return *) "" ] | _ -> "" ] ; @@ -262,7 +262,7 @@ ; value geneanet base = - let mark = Array.create (nb_of_persons base) False in + let mark = Array.make (nb_of_persons base) False in let lines = ref Line.empty in do { load_ascends_array base; diff -Nru geneweb-6.08dfsg/contrib/gwbase/etc/modif.ml geneweb-6.08+git20160228+dfsg/contrib/gwbase/etc/modif.ml --- geneweb-6.08dfsg/contrib/gwbase/etc/modif.ml 2014-06-05 12:17:22.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/contrib/gwbase/etc/modif.ml 2016-02-28 10:10:47.000000000 +0000 @@ -49,7 +49,7 @@ base.func.patch_name (Name.lower (fn' ^ " " ^ sn')) p.cle_index; changes.val := True; } ]; - } + } else () }; if changes.val then do { @@ -67,7 +67,7 @@ else (); eprintf "\n"; flush stderr; - } + } ; value bname = ref ""; diff -Nru geneweb-6.08dfsg/contrib/gwbase/etc/nbdesc.ml geneweb-6.08+git20160228+dfsg/contrib/gwbase/etc/nbdesc.ml --- geneweb-6.08dfsg/contrib/gwbase/etc/nbdesc.ml 2014-06-05 12:17:22.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/contrib/gwbase/etc/nbdesc.ml 2016-02-28 10:10:47.000000000 +0000 @@ -108,7 +108,7 @@ printf "nombre de personnes vivantes en %s : %d\n" (string_of_date date) nb_liv; flush stdout; - let mark = Array.create nb_fam 0 in + let mark = Array.make nb_fam 0 in let nb_desc = ref [] in ProgrBar.start (); ignore diff -Nru geneweb-6.08dfsg/contrib/gwbase/etc/popule.ml geneweb-6.08+git20160228+dfsg/contrib/gwbase/etc/popule.ml --- geneweb-6.08dfsg/contrib/gwbase/etc/popule.ml 2014-06-05 12:17:22.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/contrib/gwbase/etc/popule.ml 2016-02-28 10:10:47.000000000 +0000 @@ -132,8 +132,8 @@ ; value popule bname size ngen gyear = - let h = Array.create size (Adef.iper_of_int 0, "", "") in - let f = Array.create size (Adef.iper_of_int 0, "", "") in + let h = Array.make size (Adef.iper_of_int 0, "", "") in + let f = Array.make size (Adef.iper_of_int 0, "", "") in let base = ref (Gwdb.open_base bname) in let base_info = (base, ref 0, bname) in let d = diff -Nru geneweb-6.08dfsg/contrib/gwbase/etc/probot.ml geneweb-6.08+git20160228+dfsg/contrib/gwbase/etc/probot.ml --- geneweb-6.08dfsg/contrib/gwbase/etc/probot.ml 2014-06-05 12:17:22.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/contrib/gwbase/etc/probot.ml 2016-02-28 10:10:47.000000000 +0000 @@ -24,7 +24,7 @@ ; value input_excl = - let b = String.create (String.length magic_robot) in + let b = Bytes.create (String.length magic_robot) in fun ic -> do { really_input ic b 0 (String.length b); diff -Nru geneweb-6.08dfsg/contrib/gwbase/etc/public.ml geneweb-6.08+git20160228+dfsg/contrib/gwbase/etc/public.ml --- geneweb-6.08dfsg/contrib/gwbase/etc/public.ml 2014-06-05 12:17:22.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/contrib/gwbase/etc/public.ml 2016-02-28 10:10:47.000000000 +0000 @@ -94,7 +94,7 @@ if y >= lim_year then do { eprintf "ça déconne %s %d\n" (Gutil.designation base p) y; flush stderr; - } + } else () | None -> () ]; (**) @@ -133,9 +133,9 @@ let base = Gwdb.open_base bname in let () = load_ascends_array base in let () = load_couples_array base in - let old = Array.create (nb_of_persons base) False in + let old = Array.make (nb_of_persons base) False in do { - let scanned = Array.create (nb_of_persons base) False in + let scanned = Array.make (nb_of_persons base) False in for i = 0 to nb_of_persons base - 1 do { if not scanned.(i) then do { let p = poi base (Adef.iper_of_int i) in @@ -143,7 +143,7 @@ } else (); }; - let scanned = Array.create (nb_of_persons base) False in + let scanned = Array.make (nb_of_persons base) False in for i = 0 to nb_of_persons base - 1 do { if old.(i) && not scanned.(i) then do { let p = poi base (Adef.iper_of_int i) in @@ -160,7 +160,7 @@ match Gutil.person_ht_find_all base key with [ [ip] -> let p = poi base ip in - let scanned = Array.create (nb_of_persons base) False in + let scanned = Array.make (nb_of_persons base) False in let () = load_ascends_array base in let () = load_couples_array base in do { diff -Nru geneweb-6.08dfsg/contrib/gwbase/etc/select.ml geneweb-6.08+git20160228+dfsg/contrib/gwbase/etc/select.ml --- geneweb-6.08dfsg/contrib/gwbase/etc/select.ml 2014-06-05 12:17:22.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/contrib/gwbase/etc/select.ml 2016-02-28 10:10:47.000000000 +0000 @@ -102,8 +102,8 @@ ; value functions base anc desc surnames no_spouses_parents = - let per_tab = Array.create (nb_of_persons base) 0 in - let fam_tab = Array.create (nb_of_families base) 0 in + let per_tab = Array.make (nb_of_persons base) 0 in + let fam_tab = Array.make (nb_of_families base) 0 in do { for i = 0 to nb_of_persons base - 1 do { let p = poi base (Adef.iper_of_int i) in diff -Nru geneweb-6.08dfsg/contrib/gwbase/etc/selroy.ml geneweb-6.08+git20160228+dfsg/contrib/gwbase/etc/selroy.ml --- geneweb-6.08dfsg/contrib/gwbase/etc/selroy.ml 2014-06-05 12:17:22.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/contrib/gwbase/etc/selroy.ml 2016-02-28 10:10:47.000000000 +0000 @@ -34,7 +34,7 @@ value spaces_to_underscore s = do { for i = 0 to String.length s - 1 do { - if s.[i] = ' ' then s.[i] := '_' else () + if s.[i] = ' ' then Bytes.set s i '_' else () }; s } @@ -732,8 +732,8 @@ let ((per_sel, fam_sel) as sel) = Select.functions base anc desc surnames.val no_spouses_parents.val in - let fam_done = Array.create (nb_of_families base) False in - let mark = Array.create (nb_of_persons base) False in + let fam_done = Array.make (nb_of_families base) False in + let mark = Array.make (nb_of_persons base) False in let out_oc_first = ref True in let origin_file fname = if out_dir = "" then (out_oc, out_oc_first) diff -Nru geneweb-6.08dfsg/contrib/gwbase/etc/titres.ml geneweb-6.08+git20160228+dfsg/contrib/gwbase/etc/titres.ml --- geneweb-6.08dfsg/contrib/gwbase/etc/titres.ml 2014-06-05 12:17:22.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/contrib/gwbase/etc/titres.ml 2016-02-28 10:10:47.000000000 +0000 @@ -5,7 +5,7 @@ open Gwdb; open Printf; -module Buff = Buff.Make (struct value buff = ref (String.create 80); end); +module Buff = Buff.Make (struct value buff = ref (Bytes.create 80); end); value lower_utf_8 s = loop 0 0 where rec loop i len = diff -Nru geneweb-6.08dfsg/contrib/gwdiff/gwdiff.ml geneweb-6.08+git20160228+dfsg/contrib/gwdiff/gwdiff.ml --- geneweb-6.08dfsg/contrib/gwdiff/gwdiff.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/contrib/gwdiff/gwdiff.ml 2016-02-28 10:10:47.000000000 +0000 @@ -114,7 +114,7 @@ ; value print_p_messages base1 base2 iper1 iper2 res = - do { + do { Printf.printf "%s / %s%s" (person_link in_file1.val base1 iper1 "base1") (person_link in_file2.val base2 iper2 "base2") @@ -158,7 +158,7 @@ in let sdn2 = Calendar.sdn_of_gregorian dmy2 in if dmy2.prec = Before then sdn2 - 1 else sdn2 - in + in (sdn, sdn2) in match dmy.prec with @@ -256,7 +256,7 @@ let od2 = Adef.od_of_codate codate2 in match (od1, od2) with [ (Some date1, Some date2) -> compatible_dates date1 date2 - | (Some _, None) -> False + | (Some _, None) -> False | (None, _) -> True ] ; @@ -333,7 +333,7 @@ value compatible_persons base1 base2 p1 p2 = compatible_persons_ligth base1 base2 p1 p2 - @ compatible_sexes base1 base2 p1 p2 + @ compatible_sexes base1 base2 p1 p2 @ compatible_birth base1 base2 p1 p2 @ compatible_death base1 base2 p1 p2 @ compatible_occupations base1 base2 p1 p2 @@ -446,12 +446,12 @@ let fd b1 b2 ip2_list ip1 = match find_compatible_persons_ligth b1 b2 ip1 ip2_list with [ [ip2] -> ddiff base1 base2 ip1 ip2 d_tab - | [] -> - print_p_messages base1 base2 iper1 iper2 [ MsgChildMissing ip1 ] + | [] -> + print_p_messages base1 base2 iper1 iper2 [ MsgChildMissing ip1 ] | rest_list -> match find_compatible_persons b1 b2 ip1 rest_list with [ [best_ip2] -> ddiff base1 base2 ip1 best_ip2 d_tab - | [] -> + | [] -> print_p_messages base1 base2 iper1 iper2 [ MsgBadChild ip1 ] | _ -> print_p_messages base1 base2 iper1 iper2 [ MsgChildren ip1 ] ] ] @@ -476,10 +476,10 @@ (spouse (coi base2 ifam2) iper2); udiff b1 b2 iper1 iper2 True ifam1 ifam2 } - | [] -> + | [] -> print_p_messages base1 base2 iper1 iper2 - [ MsgSpouseMissing (spouse (coi base1 ifam1) iper1) ] - | _ -> + [ MsgSpouseMissing (spouse (coi base1 ifam1) iper1) ] + | _ -> print_p_messages base1 base2 iper1 iper2 [ MsgSpouses (spouse (coi base1 ifam1) iper1) ] ] in @@ -535,7 +535,7 @@ (* Main *) value gwdiff base1 base2 iper1 iper2 d_mode ad_mode = - let desc_tab = Array.create base1.data.persons.len [] in + let desc_tab = Array.make base1.data.persons.len [] in match (d_mode, ad_mode) with [ (True, _) | (False, False) -> ddiff base1 base2 iper1 iper2 desc_tab diff -Nru geneweb-6.08dfsg/contrib/gwpublic/gwiftitles.ml geneweb-6.08+git20160228+dfsg/contrib/gwpublic/gwiftitles.ml --- geneweb-6.08dfsg/contrib/gwpublic/gwiftitles.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/contrib/gwpublic/gwiftitles.ml 2016-02-28 10:10:47.000000000 +0000 @@ -26,7 +26,7 @@ match Gutil.person_ht_find_all base key with [ [ip] -> let p = poi base ip in - do { + do { if get_access p <> IfTitles then let p = {(gen_person_of_person p) with access = IfTitles} in patch_person base p.key_index p diff -Nru geneweb-6.08dfsg/contrib/gwpublic/gwprivate.ml geneweb-6.08+git20160228+dfsg/contrib/gwpublic/gwprivate.ml --- geneweb-6.08dfsg/contrib/gwpublic/gwprivate.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/contrib/gwpublic/gwprivate.ml 2016-02-28 10:10:47.000000000 +0000 @@ -46,7 +46,7 @@ match Gutil.person_ht_find_all base key with [ [ip] -> let p = poi base ip in - do { + do { if get_access p <> Private then let p = {(gen_person_of_person p) with access = Private} in patch_person base p.key_index p @@ -57,10 +57,10 @@ do { Printf.eprintf "Bad key %s\n" key; flush stderr; - (* + (* Si on appel private_some sur une liste et qu'il - y'a une mauvaise clĂ©, alors on quitte tout le - script, c'est un peu radical. + y'a une mauvaise clĂ©, alors on quitte tout le + script, c'est un peu radical. *) (*exit 2*) } ] diff -Nru geneweb-6.08dfsg/contrib/gwpublic/gwpublic1.ml geneweb-6.08+git20160228+dfsg/contrib/gwpublic/gwpublic1.ml --- geneweb-6.08dfsg/contrib/gwpublic/gwpublic1.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/contrib/gwpublic/gwpublic1.ml 2016-02-28 10:10:47.000000000 +0000 @@ -79,13 +79,14 @@ else () ; -value mark_ancestors base scanned lim_year is_quest_string = +value mark_ancestors base scanned lim_year titled is_quest_string = loop where rec loop p = if not scanned.(Adef.int_of_iper (get_key_index p)) then do { scanned.(Adef.int_of_iper (get_key_index p)) := True; (* si pas de date ou date > lim_year *) if not (is_old lim_year p) && get_access p <> Public && - get_titles p = [] && not (is_quest_string (get_first_name p)) && + (titled || get_titles p = []) && + not (is_quest_string (get_first_name p)) && not (is_quest_string (get_surname p)) then do { match year_of p with @@ -93,7 +94,7 @@ if y >= lim_year then do { eprintf "Problem of date ! %s %d\n" (Gutil.designation base p) y; flush stderr; - } + } else () | None -> () ]; let p = {(gen_person_of_person p) with access = Public} in @@ -127,7 +128,7 @@ } ; -value public_all bname lim_year = do { +value public_all bname lim_year titled = do { let base = Gwdb.open_base bname in let () = load_ascends_array base in let () = load_couples_array base in @@ -140,9 +141,9 @@ exit 2 } | _ -> assert False ]); - let old = Array.create (nb_of_persons base) False in + let old = Array.make (nb_of_persons base) False in do { - let scanned = Array.create (nb_of_persons base) False in + let scanned = Array.make (nb_of_persons base) False in for i = 0 to nb_of_persons base - 1 do { if not scanned.(i) then do { let p = poi base (Adef.iper_of_int i) in @@ -150,11 +151,11 @@ } else (); }; - let scanned = Array.create (nb_of_persons base) False in + let scanned = Array.make (nb_of_persons base) False in for i = 0 to nb_of_persons base - 1 do { if old.(i) && not scanned.(i) then do { let p = poi base (Adef.iper_of_int i) in - mark_ancestors base scanned lim_year is_quest_string p + mark_ancestors base scanned lim_year titled is_quest_string p } else (); }; @@ -162,16 +163,16 @@ } }; -value public_some bname lim_year key = +value public_some bname lim_year titled key = let base = Gwdb.open_base bname in match Gutil.person_ht_find_all base key with [ [ip] -> let p = poi base ip in - let scanned = Array.create (nb_of_persons base) False in + let scanned = Array.make (nb_of_persons base) False in let () = load_ascends_array base in let () = load_couples_array base in do { - mark_ancestors base scanned lim_year is_quest_string p; + mark_ancestors base scanned lim_year titled is_quest_string p; if changes.val then commit_patches base else (); } | _ -> @@ -186,10 +187,13 @@ value ind = ref ""; value bname = ref ""; value everybody = ref False; +value titled = ref True; value speclist = [("-y", Arg.Int (fun i -> lim_year.val := i), "limit year (default = " ^ string_of_int lim_year.val ^ ")"); + ("-ct", Arg.Clear titled, + "check if the person has a title (default = don't check)"); ("-everybody", Arg.Set everybody, "set flag public to everybody"); ("-ind", Arg.String (fun x -> ind.val := x), "individual key")] @@ -205,8 +209,8 @@ gcc.Gc.max_overhead := 100; Gc.set gcc; if everybody.val then public_everybody bname.val - else if ind.val = "" then public_all bname.val lim_year.val - else public_some bname.val lim_year.val ind.val + else if ind.val = "" then public_all bname.val lim_year.val titled.val + else public_some bname.val lim_year.val titled.val ind.val } ; diff -Nru geneweb-6.08dfsg/contrib/gwpublic/gwpublic2.ml geneweb-6.08+git20160228+dfsg/contrib/gwpublic/gwpublic2.ml --- geneweb-6.08dfsg/contrib/gwpublic/gwpublic2.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/contrib/gwpublic/gwpublic2.ml 2016-02-28 10:10:47.000000000 +0000 @@ -19,6 +19,7 @@ ; value find_dated_ancestor base p = + let mark = Array.make (nb_of_persons base) False in loop 1 [get_key_index p] where rec loop nb_gen iplist = if iplist = [] then None else @@ -32,6 +33,16 @@ | None -> anc_list ]) [] iplist in + (* Dans le cas oĂą le nombre d'implexes est très Ă©levĂ©, le calcul *) + (* peut ĂŞtre très long car on le refait plusieurs fois pour les *) + (* mĂŞmes personnes. On rend donc la liste unique. *) + let anc_list = Mutil.list_uniq anc_list in + let anc_list = + List.filter (fun ip -> not mark.(Adef.int_of_iper ip)) anc_list + in + let () = + List.iter (fun ip -> mark.(Adef.int_of_iper ip) := True) anc_list + in loop_ind anc_list where rec loop_ind = fun [ [ip :: iplist] -> diff -Nru geneweb-6.08dfsg/contrib/gwpublic/gwpublic2priv.ml geneweb-6.08+git20160228+dfsg/contrib/gwpublic/gwpublic2priv.ml --- geneweb-6.08dfsg/contrib/gwpublic/gwpublic2priv.ml 2014-06-05 12:17:49.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/contrib/gwpublic/gwpublic2priv.ml 2016-02-28 10:10:47.000000000 +0000 @@ -19,6 +19,7 @@ ; value find_dated_ancestor base p = + let mark = Array.make (nb_of_persons base) False in loop 1 [get_key_index p] where rec loop nb_gen iplist = if iplist = [] then None else @@ -36,6 +37,12 @@ (* peut ĂŞtre très long car on le refait plusieurs fois pour les *) (* mĂŞmes personnes. On rend donc la liste unique. *) let anc_list = Mutil.list_uniq anc_list in + let anc_list = + List.filter (fun ip -> not mark.(Adef.int_of_iper ip)) anc_list + in + let () = + List.iter (fun ip -> mark.(Adef.int_of_iper ip) := True) anc_list + in loop_ind anc_list where rec loop_ind = fun [ [ip :: iplist] -> diff -Nru geneweb-6.08dfsg/contrib/lex/lex_utils.ml geneweb-6.08+git20160228+dfsg/contrib/lex/lex_utils.ml --- geneweb-6.08dfsg/contrib/lex/lex_utils.ml 2014-09-04 09:36:45.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/contrib/lex/lex_utils.ml 2016-02-28 10:10:47.000000000 +0000 @@ -4,7 +4,7 @@ (**/**) (* Utils. *) let start_with s p = - String.length p <= String.length s && + String.length p <= String.length s && String.sub s 0 (String.length p) = p ;; @@ -30,6 +30,262 @@ ;; +(**/**) (* Missing or unused translation. *) + +let get_files dir = + (* RĂ©cupère tous les fichiers et dossier d'un dossier *) + (* et renvoie la liste des dossiers et la liste des fichiers. *) + let read_files_folders fname = + let list = + List.map + (fun file -> Filename.concat fname file) + (Array.to_list (Sys.readdir fname)) + in + List.partition Sys.is_directory list + in + (* Parcours rĂ©cursif de tous les dossiers *) + let rec loop l folders files = + match l with + | [] -> (folders, files) + | x :: l -> + let (fd, fi) = read_files_folders x in + let l = List.rev_append l fd in + let folders = List.rev_append fd folders in + let files = List.rev_append fi files in + loop l folders files + in + (* Toute l'arborescence de dir *) + let (folders, files) = loop [dir] [] [] in + (folders, files) +;; + +let get_ml_files repo = + let (folders, files) = get_files repo in + List.filter (fun x -> Filename.check_suffix x ".ml") files +;; + +let get_tpl_files repo = + let (folders, files) = get_files repo in + List.filter (fun x -> Filename.check_suffix x ".txt") files +;; + +(* RĂ©cupère tous les identifiants de message de lexicon. *) +let get_lexicon_msg lexicon = + let lex = ref [] in + match try Some (open_in lexicon) with Sys_error _ -> None with + | Some ic -> + (try + while true do + let msg = skip_to_next_message ic in + lex := msg :: !lex + done + with End_of_file -> ()); + close_in ic; + List.rev_map (fun w -> String.sub w 4 (String.length w - 4)) !lex + | None -> !lex +;; + +let cut_all_msg_src s = + let list = ref [] in + let i = ref 0 in + let regexp = Str.regexp "transl" in + try + while true do + i := Str.search_forward regexp s !i; + let start = String.index_from s !i '"' in + let stop = + let rec loop k = + let stop = String.index_from s k '"' in + if s.[stop - 1] = '\\' then loop (stop + 1) + else stop + in + loop (start + 1) + in + list := String.sub s (start + 1) (stop - start - 1) :: !list; + i := stop + 1 + done; + !list + with Not_found -> !list +;; + +let get_msg_src repo = + let msg = ref [] in + let regexp = Str.regexp "transl .* \"" in + List.iter + (fun src -> + match try Some (open_in src) with Sys_error _ -> None with + | Some ic -> + (try + while true do + let line = input_line ic in + let has_msg = + try + ignore (Str.search_forward regexp line 0); + true + with Not_found -> false + in + if has_msg then msg := line :: !msg + else () + done + with End_of_file -> ()); + close_in ic; + | None -> ()) + (get_ml_files repo); + List.fold_left + (fun accu msg -> List.rev_append (cut_all_msg_src msg) accu) + [] !msg +;; + +let cut_all_msg s = + let list = ref [] in + let i = ref 0 in + try + while true do + let start = String.index_from s !i '[' in + let stop = String.index_from s (start + 1) ']' in + let w = + if s.[start + 1] = '*' then + String.sub s (start + 2) (stop - start - 2) + else + String.sub s (start + 1) (stop - start - 1) + in + let w = + try + (* loop si msg contient ':' *) + let i = String.index w ':' in + if (i + 2) < String.length w && w.[i + 1] = ':' && w.[i + 2] = ':' + then String.sub w 0 i + else w + with Not_found -> w + in + let multi_msg w = + try + let i = String.index w ':' in + if (i + 1) < String.length w && w.[i + 1] = ':' then + list := (String.sub w 0 i) :: (String.sub w (i+2) (String.length w - i - 2)) :: !list + else list := w :: !list + with Not_found -> list := w :: !list + in + let not_msg = + List.exists + (fun x -> start_with w x) + ["type="; "value="; "name="; "id="] + in + if not_msg then () + else multi_msg w; + i := stop + 1 + done; + !list + with Not_found -> !list +;; + +let get_msg_tpl repo = + let msg = ref [] in + let regexp = Str.regexp "[*?[a-z]+]" in + List.iter + (fun tpl -> + match try Some (open_in tpl) with Sys_error _ -> None with + | Some ic -> + (try + while true do + let line = input_line ic in + let has_msg = + try + ignore (Str.search_forward regexp line 0); + true + with Not_found -> false + in + if has_msg then msg := line :: !msg + else () + done + with End_of_file -> ()); + close_in ic; + | None -> ()) + (get_tpl_files repo); + List.fold_left + (fun accu msg -> List.rev_append (cut_all_msg msg) accu) + [] !msg +;; + +module StringSet = Set.Make + (struct + type t = string + let compare = Pervasives.compare + end) +;; + +let sort_uniq cmp l = + let list = + List.fold_left + (fun accu e -> StringSet.add e accu) + StringSet.empty l + in + List.sort cmp (StringSet.elements list) +;; + +(* Essaie de chercher tous les identifiants de message du rĂ©pository et *) +(* recherche s'il ne sont plus utilisĂ©s pour au contraire non trdauit. *) +let missing_or_unused_msg lexicon repo log = + let lexicon = + if Filename.is_relative lexicon then + Filename.concat (Sys.getcwd ()) lexicon + else lexicon + in + let repo = + if Filename.is_relative repo then + Filename.concat (Sys.getcwd ()) repo + else repo + in + let repo_src = Filename.concat repo "src" in + let repo_tpl = + List.fold_left Filename.concat repo ["hd"; "etc"] + in + + let lex = get_lexicon_msg lexicon in + let msg_src = get_msg_src repo in + let msg_tpl = get_msg_tpl repo_tpl in + let msg = + sort_uniq + (fun x y -> Pervasives.compare (String.lowercase x) (String.lowercase y)) + (List.rev_append msg_src msg_tpl) + in + + if log then begin + (match try Some (open_out "log_lex") with Sys_error _ -> None with + | Some oc -> + List.iter (fun w -> Printf.fprintf oc "%s\n" w) lex; + close_out oc + | None -> ()); + (match try Some (open_out "log_msg") with Sys_error _ -> None with + | Some oc -> + List.iter (fun w -> Printf.fprintf oc "%s\n" w) msg; + close_out oc + | None -> ()); + print_endline + "View log_lex for lexicon msg and log_msg for src and tpl msg." + end + else begin + Printf.fprintf stdout + "\nMessage not used anymore in %s and %s :\n" repo_src repo_tpl; + flush stdout; + List.iter + (fun w -> + if List.mem w msg then () + else print_endline w) + lex; + + Printf.fprintf stdout + "\nMessage from %s and %s not in lexicon :\n" repo_src repo_tpl; + flush stdout; + List.iter + (fun w -> + if List.mem w lex then () + else print_endline w) + msg + end +;; + + (**/**) (* Missing translation. *) let lang_gw = @@ -60,79 +316,80 @@ let missing_translation lexicon languages = match try Some (open_in lexicon) with Sys_error _ -> None with | Some ic -> - begin - try - while true do - let msg = skip_to_next_message ic in - let list = get_all_versions ic in - let list' = missing_languages list languages in - if list' <> [] then - begin - print_endline msg; - print_transl_en_fr list; - List.iter - (fun lang -> print_endline (lang ^ ":")) (List.rev list'); - print_string "\n" - end - done - with End_of_file -> (); - close_in ic - end - | None -> let _ = print_endline "ko" in () + (try + while true do + let msg = skip_to_next_message ic in + let list = get_all_versions ic in + let list' = missing_languages list languages in + if list' <> [] then + begin + print_endline msg; + print_transl_en_fr list; + List.iter + (fun lang -> print_endline (lang ^ ":")) (List.rev list'); + print_string "\n" + end + done + with End_of_file -> ()); + close_in ic + | None -> () ;; (**/**) (* Sorting. *) -module Lex_map = Map.Make - (struct - type t = string +module Lex_map = Map.Make + (struct + type t = string let compare x y = compare (String.lowercase x) (String.lowercase y) - end) + end) ;; let sort_lexicon lexicon = let lex_sort = ref Lex_map.empty in (match try Some (open_in lexicon) with Sys_error _ -> None with | Some ic -> - begin - try - while true do - let msg = skip_to_next_message ic in - let list = get_all_versions ic in - let list' = List.sort (fun (x, _) (y, _) -> compare x y) list in - lex_sort := Lex_map.add msg list' !lex_sort - done - with End_of_file -> (); - close_in ic - end + (try + while true do + let msg = skip_to_next_message ic in + let list = get_all_versions ic in + let list' = List.sort (fun (x, _) (y, _) -> compare x y) list in + lex_sort := Lex_map.add msg list' !lex_sort + done + with End_of_file -> ()); + close_in ic | None -> ()); - Lex_map.iter + Lex_map.iter (fun msg list -> print_endline msg; - List.iter + List.iter (fun (lang, transl) -> print_endline (lang ^ ":" ^ transl)) list; print_string "\n") !lex_sort ;; - (**/**) (* Main. *) let lexicon = ref "" ;; let lex_sort = ref false ;; let missing_gw = ref false ;; let missing_gnt = ref false ;; +let repo = ref "" ;; +let log = ref false ;; let speclist = - [("-sort", Arg.Set lex_sort, ": sort the lexicon (both key and content)."); - ("-missing_gw", Arg.Set missing_gw, + [("-sort", Arg.Set lex_sort, ": sort the lexicon (both key and content)."); + ("-missing_gw", Arg.Set missing_gw, ": print missing translation managed by gw."); - ("-missing_gnt", Arg.Set missing_gnt, + ("-missing_gnt", Arg.Set missing_gnt, ": print missing translation managed by gnt."); ("-missing_one", Arg.String (fun x -> lang_cust := x :: !lang_cust), - ": print missing translation for these languages.")] + ": print missing translation for these languages."); + ("-repo", Arg.String (fun x -> repo := x), + ": check missing or unused key word."); + ("-log", Arg.Set log, + ": option for repo. Print in log files instead of stdout.")]; ;; let anonfun s = lexicon := s ;; @@ -145,6 +402,7 @@ else if !missing_gw then missing_translation !lexicon lang_gw else if !missing_gnt then missing_translation !lexicon lang_gnt else if !lang_cust <> [] then missing_translation !lexicon !lang_cust + else if !repo <> "" then missing_or_unused_msg !lexicon !repo !log else () ;; diff -Nru geneweb-6.08dfsg/contrib/lex/Makefile geneweb-6.08+git20160228+dfsg/contrib/lex/Makefile --- geneweb-6.08dfsg/contrib/lex/Makefile 1970-01-01 00:00:00.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/contrib/lex/Makefile 2016-02-28 10:10:47.000000000 +0000 @@ -0,0 +1,32 @@ +# $Id: Makefile.lex, v 0.1 2014-10-10 23:25:31 ipfix Exp $ + +EXEC = lex_utils + +CAMLOPT = ocamlopt.opt +CAMLDEP = ocamldep + +LIBS=str.cma + +SOURCES = lex_utils.ml + +all: depend $(EXEC).opt + +OPTOBJS = $(SOURCES:.ml=.cmx) + +$(EXEC).opt: $(OPTOBJS) + $(CAMLOPT) $(LIBS:.cma=.cmxa) $(OPTOBJS) -o $(EXEC) + +.SUFFIXES: .ml .mli .cmo .cmi .cmx + +.ml.cmx: + $(CAMLOPT) -c $< + +clean: + rm -f *.cm[iox] *~ .*~ *.o *.annot #*# + rm -f $(EXEC) + rm -f $(EXEC).opt + +depend: + $(CAMLDEP) *.mli *.ml > .depend + +include .depend diff -Nru geneweb-6.08dfsg/dag2html/dag2html.ml geneweb-6.08+git20160228+dfsg/dag2html/dag2html.ml --- geneweb-6.08dfsg/dag2html/dag2html.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/dag2html/dag2html.ml 2016-02-28 10:10:47.000000000 +0000 @@ -377,11 +377,11 @@ value copy_data d = {elem = d.elem; span = d.span}; value insert_columns t nb j = - let t1 = Array.create (Array.length t.table) [| |] in + let t1 = Array.make (Array.length t.table) [| |] in do { for i = 0 to Array.length t.table - 1 do { let line = t.table.(i) in - let line1 = Array.create (Array.length line + nb) line.(0) in + let line1 = Array.make (Array.length line + nb) line.(0) in t1.(i) := line1; let rec loop k = if k = Array.length line then () diff -Nru geneweb-6.08dfsg/debian/changelog geneweb-6.08+git20160228+dfsg/debian/changelog --- geneweb-6.08dfsg/debian/changelog 2016-02-14 15:02:14.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/debian/changelog 2016-03-20 11:09:03.000000000 +0000 @@ -1,3 +1,26 @@ +geneweb (6.08+git20160228+dfsg-1) unstable; urgency=medium + + * Team upload + + [ Guillaume Brochu ] + * New upstream release to fix compatibility problems with OCAML >=4.02 + https://github.com/geneweb/geneweb/archive/f658e5836554624435b9e46b75c9b2ac0ac61029.tar.gz + https://github.com/geneweb/geneweb/commits/distrib-6-08-ocaml-4-xx + (Last commit : 2016-02-28) + https://github.com/geneweb/geneweb/issues/9 + Thanks to Fabien/Ipfix for the preparation of this special version. + Closes: #815485 + Closes: #815528 + * Add ocaml-findlib to Build-Depends to benefit from changes in configure + + [ Christian Perrier ] + * Bump debhelper compatibility level to 9 (no real change) + * Bump Standards to 3.9.7 (checked, no change needed) + * Do not define GPL-2 twice in debian/copyright + * Adapt copyright lines for debian/* + + -- Guillaume Brochu (LĂ©vis,QuĂ©bec,Canada) Sun, 13 Mar 2016 11:37:55 -0400 + geneweb (6.08dfsg-5) unstable; urgency=medium * Fix output_hashtbl in db2out by backporting upstream's git fix diff -Nru geneweb-6.08dfsg/debian/compat geneweb-6.08+git20160228+dfsg/debian/compat --- geneweb-6.08dfsg/debian/compat 2015-04-04 10:37:37.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/debian/compat 2016-03-20 11:09:03.000000000 +0000 @@ -1 +1 @@ -7 +9 diff -Nru geneweb-6.08dfsg/debian/control geneweb-6.08+git20160228+dfsg/debian/control --- geneweb-6.08dfsg/debian/control 2015-12-22 05:48:43.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/debian/control 2016-03-20 11:09:03.000000000 +0000 @@ -2,8 +2,8 @@ Section: misc Priority: optional Maintainer: Christian Perrier -Standards-Version: 3.9.6 -Build-Depends: debhelper (>= 7.0.50~), ocaml-best-compilers, ocaml (>= 3.04), camlp5, doc-base, dh-buildinfo, iso-codes, isoquery, po-debconf, liblablgtk2-ocaml-dev +Standards-Version: 3.9.7 +Build-Depends: debhelper (>= 9~), ocaml-best-compilers, ocaml (>= 3.04), camlp5, doc-base, dh-buildinfo, iso-codes, isoquery, po-debconf, liblablgtk2-ocaml-dev, ocaml-findlib Homepage: http://www.geneweb.org/ Vcs-Git: git://anonscm.debian.org/collab-maint/geneweb.git Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/geneweb.git;a=summary diff -Nru geneweb-6.08dfsg/debian/copyright geneweb-6.08+git20160228+dfsg/debian/copyright --- geneweb-6.08dfsg/debian/copyright 2015-04-04 10:37:37.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/debian/copyright 2016-03-20 19:32:37.000000000 +0000 @@ -3,27 +3,13 @@ Source: http://opensource.geneanet.org/projects/geneweb/files Files: * -Copyright: Copyright © 1998-2007 INRIA +Copyright: Copyright © 1998-2008 INRIA License: GPL-2 - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; version 2. - . - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - . - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301, USA.License: GPL-2+ - . - On Debian systems, the complete text of the GNU General - Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". Files: debian/* -Copyright: (C) 2000-2014 Christian Perrier +Copyright: (C) 2000-2016 Christian Perrier , 2016 Guillaume Brochu (LĂ©vis,QuĂ©bec,Canada) +License: GPL-2 + License: GPL-2 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff -Nru geneweb-6.08dfsg/debian/patches/004_gwd.ml-readauth geneweb-6.08+git20160228+dfsg/debian/patches/004_gwd.ml-readauth --- geneweb-6.08dfsg/debian/patches/004_gwd.ml-readauth 2015-04-04 10:37:37.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/debian/patches/004_gwd.ml-readauth 2016-03-20 11:09:03.000000000 +0000 @@ -4,11 +4,9 @@ Status wrt upstream: will not be applied because of upstream design choices -Index: b/src/gwd.ml -=================================================================== ---- a/src/gwd.ml 2009-11-08 17:26:10.000000000 +0100 -+++ b/src/gwd.ml 2009-11-08 17:26:27.000000000 +0100 -@@ -1366,7 +1366,7 @@ +--- a/src/gwd.ml ++++ b/src/gwd.ml +@@ -1388,7 +1388,7 @@ let auth = Wserver.extract_param "authorization: " '\r' request in if auth <> "" then match diff -Nru geneweb-6.08dfsg/debian/patches/010_gwsetup-fhs geneweb-6.08+git20160228+dfsg/debian/patches/010_gwsetup-fhs --- geneweb-6.08dfsg/debian/patches/010_gwsetup-fhs 2015-04-04 10:37:37.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/debian/patches/010_gwsetup-fhs 2016-03-20 11:09:03.000000000 +0000 @@ -2,10 +2,8 @@ Status wrt upstream: Forwarded in the Geneweb ML -Index: b/setup/setup.ml -=================================================================== ---- a/setup/setup.ml 2009-11-08 17:26:10.000000000 +0100 -+++ b/setup/setup.ml 2009-11-08 17:26:27.000000000 +0100 +--- a/setup/setup.ml ++++ b/setup/setup.ml @@ -6,6 +6,8 @@ value port = ref 2316; value default_lang = ref "en"; @@ -15,7 +13,7 @@ value bin_dir = ref ""; value lang_param = ref ""; value only_file = ref ""; -@@ -319,7 +321,7 @@ +@@ -315,7 +317,7 @@ ; value only_file_name () = @@ -24,7 +22,7 @@ else only_file.val ; -@@ -710,7 +712,7 @@ +@@ -706,7 +708,7 @@ ; value exec_f comm = @@ -33,7 +31,7 @@ do { eprintf "$ cd \"%s\"\n" (Sys.getcwd ()); flush stderr; -@@ -835,7 +837,7 @@ +@@ -929,7 +931,7 @@ value gwc conf = let rc = @@ -42,7 +40,7 @@ exec_f (comm ^ parameters conf.env) in let rc = IFDEF WIN95 THEN infer_rc conf rc ELSE rc END in -@@ -1055,7 +1057,7 @@ +@@ -1181,7 +1183,7 @@ Sys.chdir dir; let c = Filename.concat bin_dir.val src_to_new ^ " " ^ tmp ^ " -f -o " ^ @@ -51,25 +49,25 @@ in eprintf "$ %s\n" c; flush stderr; -@@ -1138,7 +1140,7 @@ +@@ -1274,7 +1276,7 @@ Sys.rename in_base_dir (Filename.concat "old" in_base_dir); let c = Filename.concat bin_dir.val "gwc" ^ " tmp.gw -nofail -o " ^ in_base ^ -- " > comm.log " -+ " > " ^ comm_log.val +- " > comm.log 2>&1" ++ " > " ^ comm_log.val ^ " 2>&1" in eprintf "$ %s\n" c; flush stderr; -@@ -1262,7 +1264,7 @@ +@@ -1398,7 +1400,7 @@ (fun s b -> if s = "" then " " ^ b ^ ".gw" else s ^ " -sep " ^ b ^ ".gw") "" bases ^ -- " -f -o " ^ out_file ^ " > comm.log" -+ " -f -o " ^ out_file ^ " > " ^ comm_log.val +- " -f -o " ^ out_file ^ " > comm.log 2>&1" ++ " -f -o " ^ out_file ^ " > " ^ comm_log.val ^ " 2>&1" in eprintf "$ %s\n" c; flush stderr; -@@ -1783,8 +1785,12 @@ +@@ -1967,8 +1969,12 @@ string_of_int port.val ^ "); > 1024 for normal users."); ("-only", Arg.String (fun s -> only_file.val := s), ": File containing the only authorized address"); diff -Nru geneweb-6.08dfsg/debian/patches/012_gwc2.1-syntax geneweb-6.08+git20160228+dfsg/debian/patches/012_gwc2.1-syntax --- geneweb-6.08dfsg/debian/patches/012_gwc2.1-syntax 2015-04-04 10:37:37.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/debian/patches/012_gwc2.1-syntax 1970-01-01 00:00:00.000000000 +0000 @@ -1,13 +0,0 @@ -Index: experimental/man/gwc2.1 -=================================================================== ---- experimental.orig/man/gwc2.1 -+++ experimental/man/gwc2.1 -@@ -44,7 +44,7 @@ - .BI \-sep - Separate all persons in next file - .TP --.BI \-sh \f\\f -+.B \-sh - Shift all persons numbers in next files - .TP - .BI \-ds diff -Nru geneweb-6.08dfsg/debian/patches/014_no-warn-error geneweb-6.08+git20160228+dfsg/debian/patches/014_no-warn-error --- geneweb-6.08dfsg/debian/patches/014_no-warn-error 2015-04-04 10:37:37.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/debian/patches/014_no-warn-error 2016-03-20 11:09:03.000000000 +0000 @@ -4,10 +4,8 @@ Remove "-warn-error A" to work around FTBFS (Closes: #521674) -Index: trunk/tools/Makefile.inc.opt -=================================================================== ---- trunk.orig/tools/Makefile.inc.opt -+++ trunk/tools/Makefile.inc.opt +--- a/tools/Makefile.inc.opt ++++ b/tools/Makefile.inc.opt @@ -5,8 +5,8 @@ CAMLP5F=-DUNIX CAMLP5D=+camlp5 @@ -19,10 +17,8 @@ OCAMLI= OCAMLD= STRIP=strip -Index: trunk/tools/Makefile.inc.out -=================================================================== ---- trunk.orig/tools/Makefile.inc.out -+++ trunk/tools/Makefile.inc.out +--- a/tools/Makefile.inc.out ++++ b/tools/Makefile.inc.out @@ -5,8 +5,8 @@ CAMLP5F=-DUNIX CAMLP5D=+camlp5 @@ -34,11 +30,9 @@ OCAMLI= OCAMLD= STRIP=strip -Index: trunk/tools/Makefile.inc.win -=================================================================== ---- trunk.orig/tools/Makefile.inc.win -+++ trunk/tools/Makefile.inc.win -@@ -5,8 +5,8 @@ +--- a/tools/Makefile.inc.win ++++ b/tools/Makefile.inc.win +@@ -6,8 +6,8 @@ CAMLP5F=-DWIN95 CAMLP5D=+camlp5 LIBUNIX=-cclib -lunix diff -Nru geneweb-6.08dfsg/debian/patches/017_fix-output_hashtbl geneweb-6.08+git20160228+dfsg/debian/patches/017_fix-output_hashtbl --- geneweb-6.08dfsg/debian/patches/017_fix-output_hashtbl 2016-02-14 13:38:16.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/debian/patches/017_fix-output_hashtbl 1970-01-01 00:00:00.000000000 +0000 @@ -1,40 +0,0 @@ -Index: git/src/db2out.ml -=================================================================== ---- git.orig/src/db2out.ml -+++ git/src/db2out.ml -@@ -122,7 +122,8 @@ - type hashtbl_t 'a 'b = - { size: mutable int; - data: mutable array (bucketlist 'a 'b); -- seed: mutable int } -+ seed: mutable int; -+ initial_size: int } - and bucketlist 'a 'b = - [ Empty - | Cons of 'a and 'b and bucketlist 'a 'b ] -@@ -135,10 +136,12 @@ - (* check compatibility with version of Hashtbl of OCaml *) - assert (Obj.is_block (Obj.repr ht)); - assert (Obj.tag (Obj.repr ht) = 0); -- assert (Obj.size (Obj.repr ht) = 2 || Obj.size (Obj.repr (ht)) = 3); -+ assert (Obj.size (Obj.repr ht) >= 2 && Obj.size (Obj.repr (ht)) <= 4); - assert (Obj.is_int (Obj.repr ht.size)); - assert (Obj.is_block (Obj.repr ht.data)); -- if Obj.size (Obj.repr ht) = 3 then assert (Obj.is_int (Obj.repr ht.seed)) -+ if Obj.size (Obj.repr ht) >= 3 then assert (Obj.is_int (Obj.repr ht.seed)) -+ else (); -+ if Obj.size (Obj.repr ht) >= 4 then assert (Obj.is_int (Obj.repr ht.initial_size)) - else (); - output_binary_int oc_hta (Array.length ht.data); - -@@ -156,7 +159,9 @@ - output_binary_int oc_hta (pos_out oc_ht); - Iovalue.output oc_ht ht.data.(i); - }; -- if Obj.size (Obj.repr ht) = 3 then Iovalue.output oc_ht ht.seed -+ if Obj.size (Obj.repr ht) >= 3 then Iovalue.output oc_ht ht.seed -+ else (); -+ if Obj.size (Obj.repr ht) >= 4 then Iovalue.output oc_ht ht.initial_size - else (); - let _ : int = Iovalue.patch_output_value_header oc_ht pos_start in - diff -Nru geneweb-6.08dfsg/debian/patches/series geneweb-6.08+git20160228+dfsg/debian/patches/series --- geneweb-6.08dfsg/debian/patches/series 2016-02-14 13:38:01.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/debian/patches/series 2016-03-20 11:09:03.000000000 +0000 @@ -7,4 +7,3 @@ 014_no-warn-error 015_compile-gui 016_fix-ocaml -017_fix-output_hashtbl diff -Nru geneweb-6.08dfsg/ged2gwb/ged2gwb2.ml geneweb-6.08+git20160228+dfsg/ged2gwb/ged2gwb2.ml --- geneweb-6.08dfsg/ged2gwb/ged2gwb2.ml 2014-09-04 09:34:14.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/ged2gwb/ged2gwb2.ml 2016-02-28 10:10:47.000000000 +0000 @@ -156,7 +156,7 @@ ; value ascii_of_msdos s = - let s' = String.create (String.length s) in + let s' = Bytes.create (String.length s) in do { for i = 0 to String.length s - 1 do { let cc = @@ -214,14 +214,14 @@ | 0o375 -> 0o262 | c -> c ] in - s'.[i] := Char.chr cc + Bytes.set s' i (Char.chr cc) }; s' } ; value ascii_of_macintosh s = - let s' = String.create (String.length s) in + let s' = Bytes.create (String.length s) in do { for i = 0 to String.length s - 1 do { let cc = @@ -300,7 +300,7 @@ | 0o364 -> 0o331 | c -> c ] in - s'.[i] := Char.chr cc + Bytes.set s' i (Char.chr cc) }; s' } @@ -797,7 +797,7 @@ value assume_tab name tab none = if tab.tlen = Array.length tab.arr then do { let new_len = 2 * Array.length tab.arr + 1 in - let new_arr = Array.create new_len none in + let new_arr = Array.make new_len none in Array.blit tab.arr 0 new_arr 0 (Array.length tab.arr); tab.arr := new_arr } @@ -1054,12 +1054,12 @@ let l = list_of_encodings new_encoding in (l, List.length l) in - let s = String.create len in + let s = Bytes.create len in loop 0 el s where rec loop i el s = match el with [ [] -> s | [e :: ell] -> - let _s = String.set s i (Char.chr e) in + let _s = Bytes.set s i (Char.chr e) in loop (i + 1) ell s ] with [ Not_found -> s ] ; @@ -1068,7 +1068,7 @@ value uppercase_utf8_letter = gen_lowercase_uppercase_utf8_letter False; value capitalize_word s = - let s = String.copy s in + let s = Bytes.copy s in copy False 0 0 (particle s 0) where rec copy special i len uncap = if i = String.length s then Buff.get len else @@ -1103,7 +1103,7 @@ ; value uppercase_word s = - let s = String.copy s in + let s = Bytes.copy s in copy False 0 0 (particle s 0) where rec copy special i len uncap = if i = String.length s then Buff.get len else @@ -1134,7 +1134,7 @@ copy False j (Buff.mstore len t) False ] ; -module Buff2 = Buff.Make (struct value buff = ref (String.create 80); end); +module Buff2 = Buff.Make (struct value buff = ref (Bytes.create 80); end); value capitalize_name s = (* On initialise le buffer Ă  la valeur de s. *) @@ -2093,9 +2093,9 @@ | None -> NotDivorced ] in let comment = - match find_field "NOTE" r.rsons with - [ Some r -> if r.rval <> "" && r.rval.[0] = '@' then "" else r.rval - | None -> "" ] + match find_all_fields "NOTE" r.rsons with + [ [] -> "" + | rl -> treat_notes gen rl ] in let (fsources, fsources_nt) = let (s, s_nt) = source gen r in @@ -2349,12 +2349,14 @@ [get_father cpl :: get_related p] in gen.g_per.arr.(Adef.int_of_iper ip) := Right3 p a u; - let fam = - family_of_gen_family - {(gen_family_of_family fam) with - witnesses = Array.append (get_witnesses fam) [| ip |]} - in - gen.g_fam.arr.(Adef.int_of_ifam ifam) := Right3 fam cpl des + if List.mem ip (Array.to_list (get_witnesses fam)) then () + else + let fam = + family_of_gen_family + {(gen_family_of_family fam) with + witnesses = Array.append (get_witnesses fam) [| ip |]} + in + gen.g_fam.arr.(Adef.int_of_ifam ifam) := Right3 fam cpl des } | _ -> () ] | _ -> () ]) @@ -2457,9 +2459,9 @@ value make_subarrays (g_per, g_fam, g_str, g_bnot) = let persons = - let pa = Array.create g_per.tlen (Obj.magic 0) in - let aa = Array.create g_per.tlen (Obj.magic 0) in - let ua = Array.create g_per.tlen (Obj.magic 0) in + let pa = Array.make g_per.tlen (Obj.magic 0) in + let aa = Array.make g_per.tlen (Obj.magic 0) in + let ua = Array.make g_per.tlen (Obj.magic 0) in do { for i = 0 to g_per.tlen - 1 do { match g_per.arr.(i) with @@ -2470,9 +2472,9 @@ } in let families = - let fa = Array.create g_fam.tlen (Obj.magic 0) in - let ca = Array.create g_fam.tlen (Obj.magic 0) in - let da = Array.create g_fam.tlen (Obj.magic 0) in + let fa = Array.make g_fam.tlen (Obj.magic 0) in + let ca = Array.make g_fam.tlen (Obj.magic 0) in + let da = Array.make g_fam.tlen (Obj.magic 0) in do { for i = 0 to g_fam.tlen - 1 do { match g_fam.arr.(i) with @@ -2519,7 +2521,7 @@ value make_gwsyntax ((pa, aa, ua), (fa, ca, da), sa, g_bnot) = do { let rev_list = ref [] in - let def = Array.create (Array.length pa) False in + let def = Array.make (Array.length pa) False in for ifam = 0 to Array.length fa - 1 do { let des = da.(ifam) in for i = 0 to Array.length des.children - 1 do { diff -Nru geneweb-6.08dfsg/ged2gwb/ged2gwb.ml geneweb-6.08+git20160228+dfsg/ged2gwb/ged2gwb.ml --- geneweb-6.08dfsg/ged2gwb/ged2gwb.ml 2014-09-04 09:34:14.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/ged2gwb/ged2gwb.ml 2016-02-28 10:10:47.000000000 +0000 @@ -223,7 +223,7 @@ ; value ascii_of_msdos s = - let s' = String.create (String.length s) in + let s' = Bytes.create (String.length s) in do { for i = 0 to String.length s - 1 do { let cc = @@ -281,14 +281,14 @@ | 0o375 -> 0o262 | c -> c ] in - s'.[i] := Char.chr cc + Bytes.set s' i (Char.chr cc) }; s' } ; value ascii_of_macintosh s = - let s' = String.create (String.length s) in + let s' = Bytes.create (String.length s) in do { for i = 0 to String.length s - 1 do { let cc = @@ -367,7 +367,7 @@ | 0o364 -> 0o331 | c -> c ] in - s'.[i] := Char.chr cc + Bytes.set s' i (Char.chr cc) }; s' } @@ -510,14 +510,14 @@ match s.[i] with [ '<' -> do { String.blit "<" 0 s1 i1 4; i1 + 4 } | '>' -> do { String.blit ">" 0 s1 i1 4; i1 + 4 } - | c -> do { s1.[i1] := c; succ i1 } ] + | c -> do { Bytes.set s1 i1 c; succ i1 } ] in copy_code_in s1 (succ i) i1 else s1 in if need_code 0 then let len = compute_len 0 0 in - copy_code_in (String.create len) 0 0 + copy_code_in (Bytes.create len) 0 0 else s ; @@ -900,7 +900,7 @@ value assume_tab name tab none = if tab.tlen = Array.length tab.arr then do { let new_len = 2 * Array.length tab.arr + 1 in - let new_arr = Array.create new_len none in + let new_arr = Array.make new_len none in Array.blit tab.arr 0 new_arr 0 (Array.length tab.arr); tab.arr := new_arr } @@ -1157,12 +1157,12 @@ let l = list_of_encodings new_encoding in (l, List.length l) in - let s = String.create len in + let s = Bytes.create len in loop 0 el s where rec loop i el s = match el with [ [] -> s | [e :: ell] -> - let _s = String.set s i (Char.chr e) in + let _s = Bytes.set s i (Char.chr e) in loop (i + 1) ell s ] with [ Not_found -> s ] ; @@ -1171,7 +1171,7 @@ value uppercase_utf8_letter = gen_lowercase_uppercase_utf8_letter False; value capitalize_word s = - let s = String.copy s in + let s = Bytes.copy s in copy False 0 0 (particle s 0) where rec copy special i len uncap = if i = String.length s then Buff.get len else @@ -1206,7 +1206,7 @@ ; value uppercase_word s = - let s = String.copy s in + let s = Bytes.copy s in copy False 0 0 (particle s 0) where rec copy special i len uncap = if i = String.length s then Buff.get len else @@ -1237,7 +1237,7 @@ copy False j (Buff.mstore len t) False ] ; -module Buff2 = Buff.Make (struct value buff = ref (String.create 80); end); +module Buff2 = Buff.Make (struct value buff = ref (Bytes.create 80); end); value capitalize_name s = (* On initialise le buffer Ă  la valeur de s. *) @@ -1398,23 +1398,33 @@ value treat_notes gen rl = let lines = extract_notes gen rl in - let notes = - List.fold_left - (fun s (lab, n) -> + let buf = Buffer.create (List.length lines) in + let () = + List.iter + (fun (lab, n) -> let spc = String.length n > 0 && n.[0] = ' ' in let end_spc = String.length n > 1 && n.[String.length n - 1] = ' ' in let n = strip_spaces n in - if s = "" then n ^ (if end_spc then " " else "") - else if lab = "CONT" || lab = "NOTE" then - s ^ "
\n" ^ n ^ (if end_spc then " " else "") - else if n = "" then s - else - s ^ (if spc then "\n" else "") ^ n ^ (if end_spc then " " else "")) - "" lines + if Buffer.length buf = 0 then do { + Buffer.add_string buf n; + Buffer.add_string buf (if end_spc then " " else "") + } + else if lab = "CONT" || lab = "NOTE" then do { + Buffer.add_string buf "
\n"; + Buffer.add_string buf n; + Buffer.add_string buf (if end_spc then " " else "") + } + else if n = "" then () + else do { + Buffer.add_string buf (if spc then "\n" else ""); + Buffer.add_string buf n; + Buffer.add_string buf (if end_spc then " " else "") + }) + lines in - strip_newlines notes + strip_newlines (Buffer.contents buf) ; value source gen r = @@ -2211,9 +2221,9 @@ | None -> NotDivorced ] in let comment = - match find_field "NOTE" r.rsons with - [ Some r -> if r.rval <> "" && r.rval.[0] = '@' then "" else r.rval - | None -> "" ] + match find_all_fields "NOTE" r.rsons with + [ [] -> "" + | rl -> treat_notes gen rl ] in let (fsources, fsources_nt) = let (s, s_nt) = source gen r in @@ -2487,12 +2497,14 @@ [get_father cpl :: get_related p] in gen.g_per.arr.(Adef.int_of_iper ip) := Right3 p a u; - let fam = - family_of_gen_family - {(gen_family_of_family fam) with - witnesses = Array.append (get_witnesses fam) [| ip |]} - in - gen.g_fam.arr.(Adef.int_of_ifam ifam) := Right3 fam cpl des + if List.mem ip (Array.to_list (get_witnesses fam)) then () + else + let fam = + family_of_gen_family + {(gen_family_of_family fam) with + witnesses = Array.append (get_witnesses fam) [| ip |]} + in + gen.g_fam.arr.(Adef.int_of_ifam ifam) := Right3 fam cpl des } | _ -> () ] | _ -> () ]) @@ -2527,12 +2539,31 @@ ; value add_parents_to_isolated gen = + let ht_missing_children = Hashtbl.create 1001 in + (* Parfois, l'enfant n'a pas de tag FAMC, mais il est bien présent + dans la famille. Du coup, si on lui ajoute des parents tout de + suite, lors du finish base, on va se rendre compte qu'il est en + trop dans sa "vraie" famille et on va le supprimer, alors qu'on + veut re-créer la liaison. *) + let () = + loop 0 where rec loop i = + if i = gen.g_fam.tlen then () + else + match gen.g_fam.arr.(i) with + [ Right3 _ _ des -> do { + Array.iter + (fun ip -> Hashtbl.add ht_missing_children ip True) + des.children; + loop (i + 1) } + | Left3 _ -> loop (i + 1) ] + in for i = 0 to gen.g_per.tlen - 1 do { match gen.g_per.arr.(i) with [ Right3 p a u -> if get_parents a = None && Array.length (get_family u) = 0 && get_rparents p = [] && - get_related p = [] + get_related p = [] && + not (Hashtbl.mem ht_missing_children (get_key_index p)) then let fn = gen.g_str.arr.(Adef.int_of_istr (get_first_name p)) in let sn = gen.g_str.arr.(Adef.int_of_istr (get_surname p)) in @@ -2595,9 +2626,9 @@ value make_subarrays (g_per, g_fam, g_str, g_bnot) = let persons = - let pa = Array.create g_per.tlen (Obj.magic 0) in - let aa = Array.create g_per.tlen (Obj.magic 0) in - let ua = Array.create g_per.tlen (Obj.magic 0) in + let pa = Array.make g_per.tlen (Obj.magic 0) in + let aa = Array.make g_per.tlen (Obj.magic 0) in + let ua = Array.make g_per.tlen (Obj.magic 0) in do { for i = 0 to g_per.tlen - 1 do { match g_per.arr.(i) with @@ -2608,9 +2639,9 @@ } in let families = - let fa = Array.create g_fam.tlen (Obj.magic 0) in - let ca = Array.create g_fam.tlen (Obj.magic 0) in - let da = Array.create g_fam.tlen (Obj.magic 0) in + let fa = Array.make g_fam.tlen (Obj.magic 0) in + let ca = Array.make g_fam.tlen (Obj.magic 0) in + let da = Array.make g_fam.tlen (Obj.magic 0) in do { for i = 0 to g_fam.tlen - 1 do { match g_fam.arr.(i) with diff -Nru geneweb-6.08dfsg/ged2gwb/utf8.ml geneweb-6.08+git20160228+dfsg/ged2gwb/utf8.ml --- geneweb-6.08dfsg/ged2gwb/utf8.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/ged2gwb/utf8.ml 2016-02-28 10:10:47.000000000 +0000 @@ -1,9 +1,9 @@ (* camlp5r *) (* $Id: utf8.ml,v 0.1 2012-01-17 17:58:44 flh Exp $ *) -(* - This is a huge utf-8 table converted as (encoding, name) list. For sure, - this is not an optimal solution but it's only used in the process of +(* + This is a huge utf-8 table converted as (encoding, name) list. For sure, + this is not an optimal solution but it's only used in the process of converting "first name" and "surname" from a Gedcom file (-lf -ls -us). *) diff -Nru geneweb-6.08dfsg/.gitignore geneweb-6.08+git20160228+dfsg/.gitignore --- geneweb-6.08dfsg/.gitignore 2014-08-27 13:47:07.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/.gitignore 2016-02-28 10:10:47.000000000 +0000 @@ -44,3 +44,4 @@ src/update_nldb.opt tools/Makefile.inc +tools/Makefile.ocaml diff -Nru geneweb-6.08dfsg/gui/gui.ml geneweb-6.08+git20160228+dfsg/gui/gui.ml --- geneweb-6.08dfsg/gui/gui.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/gui/gui.ml 2016-02-28 10:10:47.000000000 +0000 @@ -85,14 +85,14 @@ Unix.dup2 cin channel ; let chan = GMain.Io.channel_of_descr cout in let len = 80 in - let buf = String.create len in + let buf = Bytes.create len in GMain.Io.add_watch chan ~prio:0 ~cond:[`IN; `HUP; `ERR] ~callback: - do { fun cond -> - try + do { fun cond -> + try if List.mem `IN cond then do { (* On Windows, you must use Io.read *) let len = GMain.Io.read chan ~buf ~pos:0 ~len in - len >= 1 && (callback (String.sub buf 0 len)) + len >= 1 && (callback (String.sub buf 0 len)) } else False with [ _ -> False ] @@ -106,12 +106,12 @@ value exec_wait conf prog args = do { - let wnd = GWindow.window + let wnd = GWindow.window ~title:(capitale (transl "Processing")) - ~position:`CENTER - ~resizable:True - ~width:600 ~height:300 () - in + ~position:`CENTER + ~resizable:True + ~width:600 ~height:300 () + in ignore (wnd#connect#destroy ~callback:(fun _ -> ())); wnd#show(); let vbox = GPack.vbox @@ -120,11 +120,11 @@ in let scrolled_window = GBin.scrolled_window ~border_width: 10 ~hpolicy: `AUTOMATIC ~vpolicy: `AUTOMATIC - ~packing:vbox#add () + ~packing:vbox#add () in - let vvbox = GPack.hbox + let vvbox = GPack.hbox ~border_width: 10 - ~packing:scrolled_window#add_with_viewport () + ~packing:scrolled_window#add_with_viewport () in vvbox #focus#set_vadjustment (Some scrolled_window#vadjustment); let redirect channel = @@ -134,7 +134,7 @@ in ignore (redirect Unix.stderr); let pid = exec prog args Unix.stdout Unix.stderr in - (* On voudrait bien attendre la fin du process + (* On voudrait bien attendre la fin du process mais sinon wnd ne s'affiche pas ... *) let (_, _) = Unix.waitpid [] pid in () @@ -154,10 +154,10 @@ (* Récupère tous les fichiers et dossier d'un dossier *) (* et renvoie la liste des dossiers et la liste des fichiers. *) let read_files_folders fname = - let list = - List.map + let list = + List.map (fun file -> Filename.concat fname file) - (Array.to_list (Sys.readdir fname)) + (Array.to_list (Sys.readdir fname)) in List.partition Sys.is_directory list in @@ -175,9 +175,9 @@ (* Toute l'arborescence de dir *) let (folders, files) = loop [dir] [] [] in do { - List.iter Unix.unlink files; - List.iter Unix.rmdir folders; - Unix.rmdir dir + List.iter (fun f -> try Unix.unlink f with [ _ -> () ]) files; + List.iter (fun f -> try Unix.rmdir f with [ _ -> () ]) folders; + try Unix.rmdir dir with [ Unix.Unix_error _ _ _ -> () ] } ; @@ -189,12 +189,12 @@ [ Not_found -> (s, "") ] ; -value read_base_env conf bname = +value read_base_env conf bname = let fname = Filename.concat conf.bases_dir (bname ^ ".gwf") in match try Some (open_in fname) with [ Sys_error _ -> None] with [ Some ic -> let env = - loop [] where rec loop env = + loop [] where rec loop env = match try Some (input_line ic) with [End_of_file -> None] with [ Some s -> if s = "" || s.[0] = '#' then loop env @@ -208,7 +208,7 @@ value write_base_env conf bname env = let fname = Filename.concat conf.bases_dir (bname ^ ".gwf") in match try Some (open_out fname) with [ Sys_error _ -> None] with - [ Some oc -> + [ Some oc -> do { List.iter (fun (k, v) -> fprintf oc "%s=%s\n" k v) env; close_out oc @@ -268,12 +268,12 @@ List.filter (fun pid -> let (r, _) = Unix.waitpid [Unix.WNOHANG] pid in - let _ = - do { - if r = pid then - do { Printf.eprintf "--- pid ended %d\n" r; flush stderr } - else () - } + let _ = + do { + if r = pid then + do { Printf.eprintf "--- pid ended %d\n" r; flush stderr } + else () + } in r <> pid) conf.waiting_pids @@ -308,12 +308,12 @@ (**/**) (* Autres interfaces graphique ou utilitaires. *) value select_dir parent initial_dir = do { - let dialog = GWindow.file_chooser_dialog + let dialog = GWindow.file_chooser_dialog ~action:`SELECT_FOLDER ~parent () in dialog#add_button_stock `CANCEL `CANCEL ; dialog#add_select_button_stock `OPEN `OPEN ; - let new_dir = + let new_dir = if dialog#run () = `OPEN then match dialog#filename with [ Some dir -> dir @@ -325,12 +325,12 @@ }; value select_file parent initial_file = do { - let dialog = GWindow.file_chooser_dialog + let dialog = GWindow.file_chooser_dialog ~action:`OPEN ~parent () in dialog#add_button_stock `CANCEL `CANCEL ; dialog#add_select_button_stock `OPEN `OPEN ; - let new_file = + let new_file = if dialog#run () = `OPEN then match dialog#filename with [ Some file -> file @@ -342,11 +342,11 @@ }; value error_popup msg = do { - let wnd = GWindow.window + let wnd = GWindow.window ~title:(capitale (transl "error")) - ~position:`CENTER - ~resizable:True () - in + ~position:`CENTER + ~resizable:True () + in ignore (wnd#connect#destroy ~callback:(fun _ -> ())); let vbox = GPack.vbox ~spacing:5 @@ -363,19 +363,19 @@ in let btn_ok = GButton.button ~label:(transl "OK") - ~packing:bbox#pack () + ~packing:bbox#pack () in ignore (btn_ok#connect#clicked (fun () -> wnd#destroy ())); wnd#show (); }; value display_log conf = do { - let wnd = GWindow.window + let wnd = GWindow.window ~title:(capitale (transl "log")) - ~position:`CENTER - ~resizable:True - ~width:600 ~height:300 () - in + ~position:`CENTER + ~resizable:True + ~width:600 ~height:300 () + in ignore (wnd#connect#destroy ~callback:(fun _ -> ())); let vbox = GPack.vbox ~spacing:5 @@ -383,11 +383,11 @@ in let scrolled_window = GBin.scrolled_window ~border_width: 10 ~hpolicy: `AUTOMATIC ~vpolicy: `AUTOMATIC - ~packing:vbox#add () + ~packing:vbox#add () in - let vvbox = GPack.hbox + let vvbox = GPack.hbox ~border_width: 10 - ~packing:scrolled_window#add_with_viewport () + ~packing:scrolled_window#add_with_viewport () in vvbox #focus#set_vadjustment (Some scrolled_window#vadjustment); match try Some (open_in conf.log) with [Sys_error _ -> None] with @@ -395,12 +395,12 @@ do { let len = in_channel_length ic in (* TODO ! *) - if len > 0 then + if len > 0 then do { let buf = Buffer.create len in Buffer.add_channel buf ic len; let text = GText.view ~packing:vvbox#add () in - text#buffer#set_text (Buffer.contents buf) + text#buffer#set_text (Buffer.contents buf) } else (); close_in ic; @@ -413,19 +413,19 @@ in let btn_ok = GButton.button ~label:(transl "OK") - ~packing:bbox#pack () + ~packing:bbox#pack () in ignore (btn_ok#connect#clicked (fun () -> wnd#destroy ())); wnd#show(); }; value delete_base conf bname = do { - let wnd = GWindow.window + let wnd = GWindow.window ~title:(capitale (transl "Confirm")) - ~position:`CENTER + ~position:`CENTER ~resizable:True - ~width:300 ~height:50 () - in + ~width:300 ~height:50 () + in let vbox = GPack.vbox ~spacing:5 ~packing:wnd#add () @@ -442,11 +442,11 @@ ignore (btn_cancel#connect#clicked (fun () -> wnd#destroy ())); let btn_ok = GButton.button ~label:(transl "OK") - ~packing:bbox#pack () + ~packing:bbox#pack () in - ignore - (btn_ok#connect#clicked - (fun () -> + ignore + (btn_ok#connect#clicked + (fun () -> do { let base = Filename.concat conf.bases_dir (bname ^ ".gwb") in rmdir conf base; @@ -482,14 +482,14 @@ (**/**) (* Binaires GeneWeb. *) -(* +(* NB: Windows : let base = Filename.concat conf.bases_dir bname in - Plante car il n'interprète pas les chemins avec espaces. On se place + Plante car il n'interprète pas les chemins avec espaces. On se place donc toujours dans le répertoire des bases dans launch_server. *) -value gwc1 conf bname fname = +value gwc1 conf bname fname = (* Hack Windows, pas de Filename.concat mais juste bname *) let prog = Filename.concat bin_dir "gwc1" in let args = ["-v"; "-nc"; "-o"; bname] in @@ -497,21 +497,21 @@ exec_wait conf prog args ; -value gwc2 conf bname fname = +value gwc2 conf bname fname = let prog = Filename.concat bin_dir "gwc2" in let args = ["-v"; "-nc"; "-o"; bname] in let args = if fname <> "" then [fname :: args] else args in exec_wait conf prog args ; -value ged2gwb conf bname fname = +value ged2gwb conf bname fname = let prog = Filename.concat bin_dir "ged2gwb" in let args = ["-nc"; "-o"; bname] in let args = if fname <> "" then [fname :: args] else args in exec_wait conf prog args ; -value ged2gwb2 conf bname fname = +value ged2gwb2 conf bname fname = let prog = Filename.concat bin_dir "ged2gwb2" in let args = ["-nc"; "-o"; bname] in let args = if fname <> "" then [fname :: args] else args in @@ -525,7 +525,7 @@ exec_wait conf prog args ; -value gwu conf bname fname = +value gwu conf bname fname = let fname = fname ^ ".gw" in let prog = Filename.concat bin_dir "gwu" in let args = [bname; "-o"; fname] in @@ -538,7 +538,7 @@ exec_wait conf prog args ; -value update_nldb conf bname = +value update_nldb conf bname = let prog = Filename.concat bin_dir "update_nldb" in let args = [bname] in (* TODO il faut effacer le fichier avant de le re-créer *) @@ -546,7 +546,7 @@ exec_wait conf prog args ; -value check_base conf bname = +value check_base conf bname = let prog = Filename.concat bin_dir "check_base" in let args = [bname] in exec_wait conf prog args @@ -555,8 +555,8 @@ (**/**) (* Fonctions utilies pour les binaires GeneWeb. *) -value print_default_gwf_file conf bname = - let gwf = +value print_default_gwf_file conf bname = + let gwf = [ ("# File generated by GeneWeb", ""); ("access_by_key", "yes"); ("disable_forum", "yes"); @@ -583,7 +583,7 @@ else write_base_env conf bname gwf ; -value create_base conf bname src_file = +value create_base conf bname src_file = if bname = "" then () else do { if src_file = "" then gwc2 conf bname src_file @@ -599,16 +599,16 @@ else print_default_gwf_file conf bname }; -value rename_base conf bname new_name = +value rename_base conf bname new_name = let databases = List.sort compare (List.filter (fun fn -> Filename.check_suffix fn ".gwb") (Array.to_list (Sys.readdir conf.bases_dir))) in let databases = List.map Filename.chop_extension databases in - if List.mem new_name databases then + if List.mem new_name databases then error_popup (capitale (transl "database already exists")) - else + else let old_base = Filename.concat conf.bases_dir (bname ^ ".gwb") in let new_base = Filename.concat conf.bases_dir (new_name ^ ".gwb") in try Sys.rename old_base new_base with [ _ -> error_popup "error rename" ] @@ -617,7 +617,7 @@ value clean_database conf bname = do { gwu conf bname (bname ^ "_save"); rename_base conf bname (bname ^ "_old"); - let fname = Filename.concat conf.bases_dir (bname ^ "_save.gw") in + let fname = Filename.concat conf.bases_dir (bname ^ "_save.gw") in gwc2 conf bname fname; consang conf bname; update_nldb conf bname; @@ -628,22 +628,22 @@ List.iter (fun bname -> let bname = Filename.concat conf.bases_dir (bname ^ ".gwb") in - let c = + let c = Filename.concat bin_dir "gwu " ^ bname ^ " -o " ^ bname ^ ".gw" in let rc = Sys.command c in if rc > 1 then error_popup c else ()) bnames; - let old_bases = - List.fold_left - (fun accu bname -> accu ^ " -sep " ^ bname ^ ".gw") + let old_bases = + List.fold_left + (fun accu bname -> accu ^ " -sep " ^ bname ^ ".gw") "" bnames in let bname = Filename.concat conf.bases_dir bname in let c = Filename.concat bin_dir "gwc " ^ old_bases ^ " -f -o " ^ bname - in + in let rc = Sys.command c in if rc > 1 then error_popup c else (); @@ -653,7 +653,7 @@ (* exporte toutes les bases au formet GW: base_name_date_today.gw *) (* on copie toutes les base dans le nouveau dossier bases *) (* on cherche tous les fichiers GW, et on les importe base_name *) -value export_all_bases conf = +value export_all_bases conf = let databases = List.sort compare (List.filter (fun fn -> Filename.check_suffix fn ".gwb") @@ -670,11 +670,11 @@ (**/**) (* UI pratique *) value tmp_wnd conf bname f = do { - let wnd = GWindow.window + let wnd = GWindow.window ~title:(capitale (transl "confirm")) - ~position:`CENTER - ~resizable:True () - in + ~position:`CENTER + ~resizable:True () + in ignore (wnd#connect#destroy ~callback:(fun _ -> ())); let vbox = GPack.vbox ~spacing:5 @@ -689,9 +689,9 @@ ~packing:hbox#pack () in let fname = ref "" in - let entry = GEdit.entry + let entry = GEdit.entry ~text:"" - ~packing:(hbox#pack ~expand:False ~fill:False ~padding:5) () + ~packing:(hbox#pack ~expand:False ~fill:False ~padding:5) () in ignore (entry#connect#changed (fun () -> fname.val := entry#text)); let bbox = GPack.button_box `HORIZONTAL @@ -706,10 +706,10 @@ ignore (btn_cancel#connect#clicked (fun () -> wnd#destroy ())); let btn_ok = GButton.button ~label:(transl "OK") - ~packing:bbox#pack () + ~packing:bbox#pack () in ignore (btn_ok#connect#clicked (fun () -> do { - wnd#destroy (); + wnd#destroy (); let fname = if fname.val = "" then "a" else fname.val in f conf bname fname })); wnd#show (); @@ -720,20 +720,20 @@ value main_window = do { ignore (GMain.init ()); - let wnd = GWindow.window + let wnd = GWindow.window ~title:("GeneWeb - " ^ Version.txt) - ~position:`CENTER - ~resizable:True - ~width:640 ~height:480 () - in + ~position:`CENTER + ~resizable:True + ~width:640 ~height:480 () + in (* TODO : faire un close_server *) ignore (wnd#connect#destroy ~callback:GMain.quit); - wnd + wnd }; value rec show_main conf = do { - ignore - (main_window#connect#destroy + ignore + (main_window#connect#destroy ~callback:(fun () -> do {close_server conf; GMain.quit ()})); main_window#show (); clean_waiting_pids conf; @@ -747,9 +747,9 @@ ~packing:main_window#add () in let toolbar = GButton.toolbar - ~orientation:`HORIZONTAL + ~orientation:`HORIZONTAL ~style:`BOTH - ~packing:vbox#pack () + ~packing:vbox#pack () in let icon name = let file = @@ -767,49 +767,49 @@ ~callback:callback () in ignore - (inser_toolbar - (capitale (transl "create")) (capitale (transl "create a database")) + (inser_toolbar + (capitale (transl "create")) (capitale (transl "create a database")) "gui_create.png" (fun () -> do { vbox#destroy (); new_database conf; })); toolbar#insert_space (); ignore - (inser_toolbar - (capitale (transl "log")) (capitale (transl "view log")) "gui_log.png" + (inser_toolbar + (capitale (transl "log")) (capitale (transl "view log")) "gui_log.png" (fun () -> display_log conf) ); toolbar#insert_space (); ignore - (inser_toolbar - (capitale (transl "doc")) (capitale (transl "view doc")) "gui_doc.png" - (fun () -> + (inser_toolbar + (capitale (transl "doc")) (capitale (transl "view doc")) "gui_doc.png" + (fun () -> let url = "http://opensource.geneanet.org/projects/geneweb/wiki" in ignore (browse conf url)) ); toolbar#insert_space (); (* TOTO : gérer le restart ignore - (inser_toolbar - (capitale (transl "setup")) (capitale (transl "setup GeneWeb")) + (inser_toolbar + (capitale (transl "setup")) (capitale (transl "setup GeneWeb")) "gui_setup.png" (fun () -> do { vbox#destroy (); setup_gui conf })); toolbar#insert_space (); *) (* - inser_toolbar - (capitale (transl "restart")) (capitale (transl "restart GeneWeb")) - "gtk.xpm" + inser_toolbar + (capitale (transl "restart")) (capitale (transl "restart GeneWeb")) + "gtk.xpm" (fun () -> do { vbox#destroy (); close_server conf; launch_server conf }); toolbar#insert_space (); *) ignore - (inser_toolbar - (capitale (transl "quit")) (capitale (transl "quit GeneWeb")) - "gui_quit.png" + (inser_toolbar + (capitale (transl "quit")) (capitale (transl "quit GeneWeb")) + "gui_quit.png" (fun () -> do { vbox#destroy (); close_server conf; GMain.quit () })); - if databases = [] then - ignore - (GMisc.label - ~text:(capitale (transl "no databases.")) + if databases = [] then + ignore + (GMisc.label + ~text:(capitale (transl "no databases.")) ~packing:vbox#pack ()) else do { let _label = GMisc.label - ~text:((capitale (transl "available databases")) ^ + ~text:((capitale (transl "available databases")) ^ " (" ^ (string_of_int (List.length databases) ^ "):")) ~packing:vbox#pack () in @@ -839,19 +839,19 @@ ~label:(capitale (transl "browse")) ~packing:(table#attach ~left:1 ~top:i) () in - ignore - (bbut#connect#clicked - (fun () -> - let url = - Printf.sprintf "http://localhost:%d/%s" conf.port bn + ignore + (bbut#connect#clicked + (fun () -> + let url = + Printf.sprintf "http://localhost:%d/%s" conf.port bn in ignore (browse conf url))); let bbut = GButton.button ~label:(capitale (transl "tools")) ~packing:(table#attach ~left:2 ~top:i) () in - ignore - (bbut#connect#clicked + ignore + (bbut#connect#clicked (fun () -> do { vbox#destroy (); tools conf bn })); loop (i+1) l }] } @@ -873,7 +873,7 @@ ~text:(capitale (transl "name of the database:")) ~packing:(table#attach ~left:0 ~top:0) () in - let entry = GEdit.entry + let entry = GEdit.entry ~text:"" ~packing:(table#attach ~left:1 ~top:0) () in @@ -886,12 +886,12 @@ ~layout: `SPREAD ~packing: (table#attach ~left:1 ~top:1) () in - let select = GButton.button - ~stock:`OPEN + let select = GButton.button + ~stock:`OPEN ~packing:bbox#pack () in let file = ref "" in - ignore + ignore (select#connect#clicked (fun () -> file.val := select_file main_window "")); let bbox = GPack.button_box `HORIZONTAL @@ -903,16 +903,16 @@ ~label:(capitale (transl "cancel")) ~packing:bbox#pack () in - ignore - (btn_cancel#connect#clicked + ignore + (btn_cancel#connect#clicked (fun () -> do { vbox#destroy (); show_main conf } ) ); let btn_ok = GButton.button ~label:(transl "OK") - ~packing:bbox#pack () + ~packing:bbox#pack () in - ignore - (btn_ok#connect#clicked - (fun () -> + ignore + (btn_ok#connect#clicked + (fun () -> do { create_base conf entry#text file.val; vbox#destroy (); @@ -921,10 +921,10 @@ } and setup_gui conf = do { - let old_conf = + let old_conf = { bases_dir = conf.bases_dir; port = conf.port; - browser = conf.browser; log = conf.log; gui_arg = []; - gwd_arg = [] ; only_arg = []; + browser = conf.browser; log = conf.log; gui_arg = []; + gwd_arg = [] ; only_arg = []; server_running = conf.server_running; waiting_pids = conf.waiting_pids } in @@ -936,56 +936,56 @@ ~text:(transl "setup GeneWeb") ~packing:vbox#pack () in - let hbox = GPack.hbox - ~spacing:5 - ~packing:vbox#pack () + let hbox = GPack.hbox + ~spacing:5 + ~packing:vbox#pack () in let _label = GMisc.label ~text:("Bases dir : " ^ conf.bases_dir) ~packing:hbox#pack () in - let select = GButton.button - ~stock:`OPEN - ~packing:(hbox#pack ~expand:False) () + let select = GButton.button + ~stock:`OPEN + ~packing:(hbox#pack ~expand:False) () in - ignore + ignore (select#connect#clicked (fun () -> conf.bases_dir := select_dir main_window conf.bases_dir)) ; - let hbox = GPack.hbox - ~spacing:5 - ~packing:vbox#pack () + let hbox = GPack.hbox + ~spacing:5 + ~packing:vbox#pack () in - let _label = GMisc.label - ~text:"Port :" + let _label = GMisc.label + ~text:"Port :" ~packing:(hbox#pack ~expand:False ~fill:False ~padding:5) () in - let entry = GEdit.entry + let entry = GEdit.entry ~text:(string_of_int conf.port) - ~packing:(hbox#pack ~expand:False ~fill:False ~padding:5) () + ~packing:(hbox#pack ~expand:False ~fill:False ~padding:5) () in ignore (entry#connect#changed (fun () -> conf.port := int_of_string entry#text)); - let browser = + let browser = match conf.browser with [ Some browser -> browser - | None -> "" ] + | None -> "" ] in - let hbox = GPack.hbox - ~spacing:5 - ~packing:vbox#pack () + let hbox = GPack.hbox + ~spacing:5 + ~packing:vbox#pack () in let _label = GMisc.label ~text:("Browser : " ^ browser) ~packing:hbox#pack () in - let select = GButton.button - ~stock:`OPEN - ~packing:(hbox#pack ~expand:False) () + let select = GButton.button + ~stock:`OPEN + ~packing:(hbox#pack ~expand:False) () in - ignore + ignore (select#connect#clicked - (fun () -> + (fun () -> let browser = select_file main_window bin_dir in let browser = if browser = "" then None else Some browser in conf.browser := browser)) ; @@ -998,24 +998,24 @@ ~label:(transl "Cancel") ~packing:bbox#pack () in - ignore - (btn_cancel#connect#clicked + ignore + (btn_cancel#connect#clicked (fun () -> do { vbox#destroy (); show_main old_conf } ) ) ; let btn_ok = GButton.button ~label:(transl "OK") - ~packing:bbox#pack () + ~packing:bbox#pack () in - ignore - (btn_ok#connect#clicked - (fun () -> do { - vbox#destroy (); - let browser = + ignore + (btn_ok#connect#clicked + (fun () -> do { + vbox#destroy (); + let browser = match conf.browser with [ Some b -> b | None -> "" ] in - let gui_arg = - [("bd", conf.bases_dir); ("port", string_of_int conf.port); + let gui_arg = + [("bd", conf.bases_dir); ("port", string_of_int conf.port); ("browser", browser)] in let conf = {(conf) with gui_arg = gui_arg} in @@ -1050,11 +1050,11 @@ let benv = read_base_env conf bname in let benv_new = ref (List.map (fun (k, v) -> (k, ref v)) benv) in List.iter - (fun (k, v) -> + (fun (k, v) -> do { let hbox = GPack.hbox - ~spacing:5 - ~packing:vbox_list#pack () + ~spacing:5 + ~packing:vbox_list#pack () in let _label = GMisc.label ~text: (k ^ " : ") @@ -1062,16 +1062,16 @@ ~packing:hbox#pack () in (* - TODO : + TODO : si la valeur vaut "yes" ou "no", on ajoute un bouton radio sinon on ajoute un champ texte if v.val = *) - let entry = - GEdit.entry + let entry = + GEdit.entry ~text: v.val ~packing:(hbox#pack ~expand:False ~fill:False ~padding:5) () - in + in ignore (entry#connect#changed (fun () -> v.val := entry#text)) } ) benv_new.val; @@ -1084,19 +1084,19 @@ ~label:(transl "Cancel") ~packing:bbox#pack () in - ignore - (btn_cancel#connect#clicked + ignore + (btn_cancel#connect#clicked (fun () -> do { vbox#destroy (); show_main conf } ) ); let btn_ok = GButton.button ~label:(transl "OK") - ~packing:bbox#pack () + ~packing:bbox#pack () in - ignore - (btn_ok#connect#clicked - (fun () -> do { + ignore + (btn_ok#connect#clicked + (fun () -> do { let new_benv = List.map (fun (k, v) -> (k, v.val)) benv_new.val in write_base_env conf bname new_benv; - vbox#destroy (); + vbox#destroy (); show_main conf } ) ) } @@ -1128,7 +1128,7 @@ in let bbut = GButton.button ~label:(transl "Extract GW") - ~packing:(table#attach ~left:1 ~top:0) () + ~packing:(table#attach ~left:1 ~top:0) () in ignore (bbut#connect#clicked (fun () -> tmp_wnd conf bname gwu)); let _label = GMisc.label @@ -1137,7 +1137,7 @@ in let bbut = GButton.button ~label:(transl "Extract GED") - ~packing:(table#attach ~left:1 ~top:1) () + ~packing:(table#attach ~left:1 ~top:1) () in ignore (bbut#connect#clicked (fun () -> tmp_wnd conf bname gwb2ged)); let _label = GMisc.label @@ -1146,10 +1146,10 @@ in let bbut = GButton.button ~label:(transl "setup gwf file") - ~packing:(table#attach ~left:1 ~top:2) () + ~packing:(table#attach ~left:1 ~top:2) () in - ignore - (bbut#connect#clicked + ignore + (bbut#connect#clicked (fun () -> do { vbox#destroy (); config_gwf conf bname })) ; let _label = GMisc.label ~text:(transl "Clean database") @@ -1157,7 +1157,7 @@ in let bbut = GButton.button ~label:(transl "Clean") - ~packing:(table#attach ~left:1 ~top:3) () + ~packing:(table#attach ~left:1 ~top:3) () in ignore (bbut#connect#clicked (fun () -> clean_database conf bname)); let _label = GMisc.label @@ -1166,13 +1166,13 @@ in let bbut = GButton.button ~label:(transl "Rename") - ~packing:(table#attach ~left:1 ~top:4) () + ~packing:(table#attach ~left:1 ~top:4) () in - ignore - (bbut#connect#clicked + ignore + (bbut#connect#clicked (fun () -> do { - tmp_wnd conf bname rename_base; - vbox#destroy (); + tmp_wnd conf bname rename_base; + vbox#destroy (); show_main conf})); let _label = GMisc.label ~text:(transl "Delete") @@ -1180,7 +1180,7 @@ in let bbut = GButton.button ~label:(transl "Delete") - ~packing:(table#attach ~left:1 ~top:5) () + ~packing:(table#attach ~left:1 ~top:5) () in ignore (bbut#connect#clicked (fun () -> delete_base conf bname)); (* TODO @@ -1189,10 +1189,10 @@ ~packing:(table#attach ~left:0 ~top:0) (); let bbut = GButton.button ~label:(transl "Merge") - ~packing:(table#attach ~left:1 ~top:0) () + ~packing:(table#attach ~left:1 ~top:0) () in - ignore - (bbut#connect#clicked + ignore + (bbut#connect#clicked (fun () -> ())); *) let _label = GMisc.label @@ -1201,7 +1201,7 @@ in let bbut = GButton.button ~label:(transl "Consang") - ~packing:(table#attach ~left:1 ~top:6) () + ~packing:(table#attach ~left:1 ~top:6) () in ignore (bbut#connect#clicked (fun () -> consang conf bname)); let _label = GMisc.label @@ -1210,7 +1210,7 @@ in let bbut = GButton.button ~label:(transl "Update_nldb") - ~packing:(table#attach ~left:1 ~top:7) () + ~packing:(table#attach ~left:1 ~top:7) () in ignore (bbut#connect#clicked (fun () -> update_nldb conf bname)); let bbox = GPack.button_box `HORIZONTAL @@ -1220,10 +1220,10 @@ in let btn_cancel = GButton.button ~label:(transl "Home") - ~packing:bbox#pack () + ~packing:bbox#pack () in - ignore - (btn_cancel#connect#clicked + ignore + (btn_cancel#connect#clicked (fun () -> do { vbox#destroy (); show_main conf } ) ); } @@ -1273,7 +1273,7 @@ let browser = Some (List.assoc "browser" gui_arg) in let log = Filename.concat bases_dir "comm.log" in let conf = - { bases_dir = bases_dir; + { bases_dir = bases_dir; port = port; browser = browser; log = log; gui_arg = gui_arg; gwd_arg = []; only_arg = []; server_running = None; waiting_pids = [] } @@ -1283,7 +1283,7 @@ let assistant = GAssistant.assistant () in assistant#misc#set_size_request ~width:450 ~height:300 (); assistant#set_title (transl "Setup GeneWeb"); - let page_0 = GMisc.label + let page_0 = GMisc.label ~text:(transl "This assistant will help you to setup GeneWeb") () in let bases_dir = ref "" in @@ -1297,11 +1297,11 @@ ~layout: `SPREAD ~packing:(page_1#pack ~expand:False ~fill:False ~padding:5) () in - let select = GButton.button - ~stock:`OPEN + let select = GButton.button + ~stock:`OPEN ~packing:(bbox#pack ~expand:False ~fill:False ~padding:5) () in - ignore + ignore (select#connect#clicked (fun () -> do { bases_dir.val := select_dir assistant bases_dir.val; @@ -1318,9 +1318,9 @@ ~text:(string_of_int port.val) ~packing:(page_2#pack ~expand:False ~fill:False ~padding:5) () in - ignore + ignore (entry#connect#changed - (fun () -> do { + (fun () -> do { let txt = entry#text in port.val := int_of_string txt; let num = assistant#current_page in @@ -1337,11 +1337,11 @@ ~layout: `SPREAD ~packing:(page_3#pack ~expand:False ~fill:False ~padding:5) () in - let select = GButton.button - ~stock:`OPEN + let select = GButton.button + ~stock:`OPEN ~packing:(bbox#pack ~expand:False ~fill:False ~padding:5) () in - ignore + ignore (select#connect#clicked (fun () -> do { browser.val := select_file assistant browser.val; @@ -1350,42 +1350,42 @@ assistant#set_page_complete page (browser.val <> "") })); match config_browser () with [ Some b -> - let btn = GButton.check_button - ~label:b + let btn = GButton.check_button + ~label:b ~packing:(page_3#pack ~expand:False ~fill:False ~padding:5) () in ignore - (btn#connect#toggled - ~callback:(fun () -> do { + (btn#connect#toggled + ~callback:(fun () -> do { browser.val := b; let num = assistant#current_page in let page = assistant#nth_page num in assistant#set_page_complete page btn#active })) | None -> () ]; - let page_4 = GMisc.label + let page_4 = GMisc.label ~text:(transl "save preferences") () in ignore - (assistant#append_page + (assistant#append_page ~title:(transl "Introduction") - ~page_type:`INTRO + ~page_type:`INTRO ~complete:True page_0#as_widget); ignore - (assistant#append_page + (assistant#append_page ~title:(transl "Setup bases directory") - ~page_type:`CONTENT + ~page_type:`CONTENT page_1#as_widget); ignore - (assistant#append_page + (assistant#append_page ~title:(transl "Setup port") - ~page_type:`CONTENT + ~page_type:`CONTENT ~complete:True page_2#as_widget); ignore - (assistant#append_page + (assistant#append_page ~title:(transl "Setup browser") - ~page_type:`CONTENT + ~page_type:`CONTENT page_3#as_widget); ignore (assistant#append_page @@ -1394,17 +1394,17 @@ ~complete:True page_4#as_widget); let save_config () = do { - let gui_arg = - [("bd", bases_dir.val); ("port", string_of_int port.val); + let gui_arg = + [("bd", bases_dir.val); ("port", string_of_int port.val); ("browser", browser.val)] in let conf = - { bases_dir = bases_dir.val; + { bases_dir = bases_dir.val; port = port.val; browser = Some browser.val; log = Filename.concat bases_dir.val "comm.log"; gui_arg = gui_arg; gwd_arg = []; only_arg = []; server_running = None; waiting_pids = [] } - in + in (* TODO : On en a besoin avant ... *) (* mkdir_p conf.bases_dir; *) write_config_file conf; diff -Nru geneweb-6.08dfsg/gwb2ged/gwb2ged.ml geneweb-6.08+git20160228+dfsg/gwb2ged/gwb2ged.ml --- geneweb-6.08dfsg/gwb2ged/gwb2ged.ml 2014-09-04 09:34:14.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/gwb2ged/gwb2ged.ml 2016-02-28 10:10:47.000000000 +0000 @@ -71,11 +71,26 @@ ; value br = "
"; +value find_br s ini_i = + let ini = "= 0 then do { - let buff = String.create len in really_input stdin buff 0 len; buff + let buff = Bytes.create len in really_input stdin buff 0 len; buff } else do { let buff = ref "" in @@ -109,13 +109,13 @@ | '&' -> do { String.blit "&" 0 s1 i1 5; i1 + 5 } | '<' -> do { String.blit "<" 0 s1 i1 4; i1 + 4 } | '>' -> do { String.blit ">" 0 s1 i1 4; i1 + 4 } - | c -> do { s1.[i1] := c; succ i1 } ] + | c -> do { Bytes.set s1 i1 c; succ i1 } ] in copy_code_in s1 (succ i) i1 else s1 in if need_code 0 then - let len = compute_len 0 0 in copy_code_in (String.create len) 0 0 + let len = compute_len 0 0 in copy_code_in (Bytes.create len) 0 0 else s ; @@ -818,7 +818,7 @@ close_in ic; printf_link_to_main env b tok; printf "\n"; - } + } ; value gwtp_print_accesses of_wizards str env b tok = @@ -864,7 +864,7 @@ printf "\n"; printf_link_to_main env b tok; printf "\n"; - } + } ; (* Actions *) diff -Nru geneweb-6.08dfsg/gwtp/httpEnv.ml geneweb-6.08+git20160228+dfsg/gwtp/httpEnv.ml --- geneweb-6.08dfsg/gwtp/httpEnv.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/gwtp/httpEnv.ml 2016-02-28 10:10:47.000000000 +0000 @@ -36,9 +36,9 @@ match s.[i] with [ '%' when i + 2 < String.length s -> let v = hexa_val s.[i + 1] * 16 + hexa_val s.[i + 2] in - do { s1.[i1] := Char.chr v; i + 3 } - | '+' -> do { s1.[i1] := ' '; succ i } - | x -> do { s1.[i1] := x; succ i } ] + do { Bytes.set s1 i1 (Char.chr v); i + 3 } + | '+' -> do { Bytes.set s1 i1 ' '; succ i } + | x -> do { Bytes.set s1 i1 x; succ i } ] in copy_decode_in s1 i (succ i1) else s1 @@ -56,7 +56,7 @@ in if need_decode 0 then let len = compute_len 0 0 in - let s1 = String.create len in + let s1 = Bytes.create len in strip_heading_and_trailing_spaces (copy_decode_in s1 0 0) else s ; @@ -93,21 +93,21 @@ if i < String.length s then let i1 = match s.[i] with - [ ' ' -> do { s1.[i1] := '+'; succ i1 } + [ ' ' -> do { Bytes.set s1 i1 '+'; succ i1 } | c -> if special c then do { - s1.[i1] := '%'; - s1.[i1 + 1] := hexa_digit (Char.code c / 16); - s1.[i1 + 2] := hexa_digit (Char.code c mod 16); + Bytes.set s1 i1 '%'; + Bytes.set s1 (i1 + 1) (hexa_digit (Char.code c / 16)); + Bytes.set s1 (i1 + 2) (hexa_digit (Char.code c mod 16)); i1 + 3 } - else do { s1.[i1] := c; succ i1 } ] + else do { Bytes.set s1 i1 c; succ i1 } ] in copy_code_in s1 (succ i) i1 else s1 in if need_code 0 then - let len = compute_len 0 0 in copy_code_in (String.create len) 0 0 + let len = compute_len 0 0 in copy_code_in (Bytes.create len) 0 0 else s ; diff -Nru geneweb-6.08dfsg/gwtp/iolight.ml geneweb-6.08+git20160228+dfsg/gwtp/iolight.ml --- geneweb-6.08dfsg/gwtp/iolight.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/gwtp/iolight.ml 2016-02-28 10:10:47.000000000 +0000 @@ -14,7 +14,7 @@ value magic_gwb = "GnWb0020"; value check_magic = - let b = String.create (String.length magic_gwb) in + let b = Bytes.create (String.length magic_gwb) in fun ic -> do { really_input ic b 0 (String.length b); @@ -49,7 +49,7 @@ else do { let new_tab = if plen > Array.length tab then do { - let new_tab = Array.create plen (Obj.magic 0) in + let new_tab = Array.make plen (Obj.magic 0) in Array.blit tab 0 new_tab 0 (Array.length tab); new_tab } diff -Nru geneweb-6.08dfsg/hd/etc/css.txt geneweb-6.08+git20160228+dfsg/hd/etc/css.txt --- geneweb-6.08dfsg/hd/etc/css.txt 2014-09-04 09:34:14.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/hd/etc/css.txt 2016-02-28 10:10:47.000000000 +0000 @@ -1364,6 +1364,12 @@ /* ---------------------- Ascendants and Descendants ---------------------- */ +/* -- short dates text: IE11, il faut specifier le display inline-block. -- */ +.inline-short-dates-text +{ + display:inline-block; +} + /* --- Ascendants/Descendants menu --- */ .ascends_menu_list, .ascends_menu_tree, .ascends_menu_other, .descends_menu_list, .descends_menu_tree, .descends_menu_other diff -Nru geneweb-6.08dfsg/hd/etc/perso_module/arbre_3gen_v_photo.txt geneweb-6.08+git20160228+dfsg/hd/etc/perso_module/arbre_3gen_v_photo.txt --- geneweb-6.08dfsg/hd/etc/perso_module/arbre_3gen_v_photo.txt 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/hd/etc/perso_module/arbre_3gen_v_photo.txt 2016-02-28 10:10:47.000000000 +0000 @@ -6,7 +6,7 @@ - %if;(max_anc_level>2) + %if;has_parents; %if;father.has_parents;
%nn; diff -Nru geneweb-6.08dfsg/hd/etc/perso_module/arbre_3gen_v.txt geneweb-6.08+git20160228+dfsg/hd/etc/perso_module/arbre_3gen_v.txt --- geneweb-6.08dfsg/hd/etc/perso_module/arbre_3gen_v.txt 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/hd/etc/perso_module/arbre_3gen_v.txt 2016-02-28 10:10:47.000000000 +0000 @@ -6,7 +6,7 @@
- %if;(max_anc_level>2) + %if;has_parents; %if;father.has_parents;
%nn; diff -Nru geneweb-6.08dfsg/hd/etc/perso_module/arbre_4gen_v.txt geneweb-6.08+git20160228+dfsg/hd/etc/perso_module/arbre_4gen_v.txt --- geneweb-6.08dfsg/hd/etc/perso_module/arbre_4gen_v.txt 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/hd/etc/perso_module/arbre_4gen_v.txt 2016-02-28 10:10:47.000000000 +0000 @@ -7,7 +7,7 @@ - %if;(max_anc_level>3) + %if;(has_parents and (father.has_parents or mother.has_parents)) %( line 1 : up to 8 great-grandparents %) %if;(father.has_parents and father.father.has_parents) @@ -132,7 +132,7 @@ %end; - %if;(max_anc_level>2) + %if;has_parents; %( line 5 : up to 4 grandparents %) %if;father.has_parents; diff -Nru geneweb-6.08dfsg/hd/etc/updind.txt geneweb-6.08+git20160228+dfsg/hd/etc/updind.txt --- geneweb-6.08dfsg/hd/etc/updind.txt 2014-09-04 09:34:14.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/hd/etc/updind.txt 2016-02-28 10:10:47.000000000 +0000 @@ -252,12 +252,12 @@ %if;(evar_m = "MRG_IND_OK" or evar_m = "MRG_MOD_IND_OK") [*merge::person/persons]1 : %first_name; %surname; %if;(first_name != "?" and surname != "?") - %sp;([reference key]: %first_name;.%occ; %surname) + %sp;([reference key]: %first_name;.%if;(occ = "")0%else;%occ;%end; %surname) %end; %elseif;(evar_m = "MOD_IND" or evar_m = "MOD_IND_OK") [*modify::person/persons]0 : %first_name; %surname; %if;(first_name != "?" and surname != "?") - %sp;([reference key]: %first_name;.%occ; %surname) + %sp;([reference key]: %first_name;.%if;(occ = "")0%else;%occ;%end; %surname) %end; %else; [*add::person/persons]0%end; Binary files /tmp/tmpsXtMTX/Jvm551_K61/geneweb-6.08dfsg/hd/images/flags/l-oc.jpg and /tmp/tmpsXtMTX/uH4GqHfGSi/geneweb-6.08+git20160228+dfsg/hd/images/flags/l-oc.jpg differ Binary files /tmp/tmpsXtMTX/Jvm551_K61/geneweb-6.08dfsg/hd/images/flags/t-oc.png and /tmp/tmpsXtMTX/uH4GqHfGSi/geneweb-6.08+git20160228+dfsg/hd/images/flags/t-oc.png differ diff -Nru geneweb-6.08dfsg/hd/lang/lex_utf8.txt geneweb-6.08+git20160228+dfsg/hd/lang/lex_utf8.txt --- geneweb-6.08dfsg/hd/lang/lex_utf8.txt 2014-09-04 09:39:41.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/hd/lang/lex_utf8.txt 2016-02-28 10:10:47.000000000 +0000 @@ -19,6 +19,7 @@ lv: ddmmyyyy nl: ddmmyyyy no: ddmmyyyy +oc: ddmmyyyy pl: ddmmyyyy pt: ddmmyyyy ro: ddmmyyyy @@ -32,34 +33,35 @@ he: rtl !languages -af: af=Afrikaans/ca=Catalan/cs=Czeck/da=Deens/de=Duits/en=Engels/eo=Esperanto/es=Spaans/fi=Fins/fr=Frans/he=Hibreeus/is=Yslandies/it=Italiaans/nl=Nederlands/no=Noorweegs/pl=Pools/pt=Portugees/pt-br=Portugees-in-BraziliĂ«/ru=Russies/sv=Sweeds/zh=Chinees -bg: af=бŃŃ€Ńки/bg=българŃки/br=бретонŃки/ca=каталонŃки/cs=чеŃки/da=Đ´Đ°Ń‚Ńки/de=немŃки/en=английŃки/eo=еŃперанто/es=иŃпанŃки/et=еŃтонŃки/fi=финландŃки/fr=френŃки/he=иврит/is=иŃландŃки/it=италианŃки/lv=латвийŃки/nl=холандŃки/no=норвежки/pl=полŃки/pt=портŃгалŃки/pt-br=бразилŃко-портŃгалŃки/ro=Ń€ŃĐĽŃŠĐ˝Ńки/ru=Ń€ŃŃки/sl=ŃловенŃки/sv=ŃведŃки/zh=китайŃки -br: af=afrikaaneg/bg=bulgareg/br=brezhoneg/ca=katalaneg/cs=tchekeg/da=daneg/de=alamaneg/en=saozneg/eo=esperanteg/es=spagnoleg/et=estonieg/fi=finneg/fr=galleg/he=hebreeg/is=islandeg/it=italianeg/lv=letoneg/nl=izelvroeg/no=norvegieg/pl=poloneg/pt=portugaleg/pt-br=portugaleg bro-Vrazil/ro=roumaneg/ru=rusianeg/sl=sloveneg/sv=svedeg/zh=sinaeg -ca: af=africĂ /ca=catalĂ /cs=xec/da=danès/de=alemany/en=anglès/eo=esperanto/es=castellĂ /et=estĂł/fi=finlandès/fr=francès/he=hebreu/is=islandès/it=italiĂ /lv=letĂł/nl=holandès/no=norueg/pl=polac/pt=portuguès/pt-br=brasiler/ru=rus/sl=eslovè/sv=suec/zh=Xinès -cs: af=afrikánština/bg=bulharština/cs=ÄŤeština/da=dánština/de=nÄ›mÄŤina/en=angliÄŤtina/eo=esperanto/es=španÄ›lština/fi=finština/fr=francouzština/he=hebrejština/is=islandština/it=italština/lv=lotyšština/nl=holandština/no=norština/pt=portugalština/pt-br=brasilština/ru=ruština/sv=švĂ©dština/zh=ÄŤĂ­nština -da: af=afrikaans/bg=bulgarsk/br=bretonsk/ca=katalansk/cs=tjekkisk/da=dansk/de=tysk/en=engelsk/eo=esperanto/es=spansk/et=estisk/fi=finsk/fr=fransk/he=hebraisk/is=islandsk/it=italiensk/lv=lettisk/nl=hollandsk/no=norsk/pl=polsk/pt=portugisisk/pt-br=brasiliansk-portugisisk/ro=rumænsk/ru=russisk/sl=slovensk/sv=svensk/zh=kinesisk -de: af=Afrikaans/bg=Bulgarish/br=Bretonisch/ca=Katalanisch/cs=Tschechisch/da=Dänisch/de=Deutsch/en=Englisch/eo=Esperanto/es=Spanisch/et=Estnisch/fi=Finnisch/fr=Französisch/he=Hebräisch/is=Isländisch/it=Italienisch/lv=Litauisch/nl=Holländisch/no=Norwegisch/pl=Polnisch/pt=Portugiesisch/pt-br=Brasil-Portugiesisch/ro=Rumänisch/ru=Russisch/sl=Slovenisch/sv=Schwedisch/zh=Chinesisch -en: af=Afrikaans/bg=Bulgarian/br=Breton/ca=Catalan/cs=Czech/da=Danish/de=German/en=English/eo=Esperanto/es=Spanish/et=Estonian/fi=Finnish/fr=French/he=Hebrew/is=Icelandic/it=Italian/lv=Latvian/nl=Dutch/no=Norwegian/pl=Polish/pt=Portuguese/pt-br=Brazilian-Portuguese/ro=Romanian/ru=Russian/sl=Slovenian/sv=Swedish/zh=Chinese +af: af=Afrikaans/ca=Catalan/cs=Czeck/da=Deens/de=Duits/en=Engels/eo=Esperanto/es=Spaans/fi=Fins/fr=Frans/he=Hibreeus/is=Yslandies/it=Italiaans/nl=Nederlands/no=Noorweegs/oc=Oksitaans/pl=Pools/pt=Portugees/pt-br=Portugees-in-BraziliĂ«/ru=Russies/sv=Sweeds/zh=Chinees +bg: af=бŃŃ€Ńки/bg=българŃки/br=бретонŃки/ca=каталонŃки/cs=чеŃки/da=Đ´Đ°Ń‚Ńки/de=немŃки/en=английŃки/eo=еŃперанто/es=иŃпанŃки/et=еŃтонŃки/fi=финландŃки/fr=френŃки/he=иврит/is=иŃландŃки/it=италианŃки/lv=латвийŃки/nl=холандŃки/no=норвежки/oc=окŃитанŃки/pl=полŃки/pt=портŃгалŃки/pt-br=бразилŃко-портŃгалŃки/ro=Ń€ŃĐĽŃŠĐ˝Ńки/ru=Ń€ŃŃки/sl=ŃловенŃки/sv=ŃведŃки/zh=китайŃки +br: af=afrikaaneg/bg=bulgareg/br=brezhoneg/ca=katalaneg/cs=tchekeg/da=daneg/de=alamaneg/en=saozneg/eo=esperanteg/es=spagnoleg/et=estonieg/fi=finneg/fr=galleg/he=hebreeg/is=islandeg/it=italianeg/lv=letoneg/nl=izelvroeg/no=norvegieg/oc=okitaneg/pl=poloneg/pt=portugaleg/pt-br=portugaleg bro-Vrazil/ro=roumaneg/ru=rusianeg/sl=sloveneg/sv=svedeg/zh=sinaeg +ca: af=africĂ /ca=catalĂ /cs=xec/da=danès/de=alemany/en=anglès/eo=esperanto/es=castellĂ /et=estĂł/fi=finlandès/fr=francès/he=hebreu/is=islandès/it=italiĂ /lv=letĂł/nl=holandès/no=norueg/oc=occitĂ /pl=polac/pt=portuguès/pt-br=brasiler/ru=rus/sl=eslovè/sv=suec/zh=Xinès +cs: af=afrikánština/bg=bulharština/cs=ÄŤeština/da=dánština/de=nÄ›mÄŤina/en=angliÄŤtina/eo=esperanto/es=španÄ›lština/fi=finština/fr=francouzština/he=hebrejština/is=islandština/it=italština/lv=lotyšština/nl=holandština/no=norština/oc=okcitánština/pt=portugalština/pt-br=brasilština/ru=ruština/sv=švĂ©dština/zh=ÄŤĂ­nština +da: af=afrikaans/bg=bulgarsk/br=bretonsk/ca=katalansk/cs=tjekkisk/da=dansk/de=tysk/en=engelsk/eo=esperanto/es=spansk/et=estisk/fi=finsk/fr=fransk/he=hebraisk/is=islandsk/it=italiensk/lv=lettisk/nl=hollandsk/no=norsk/oc=occitansk/pl=polsk/pt=portugisisk/pt-br=brasiliansk-portugisisk/ro=rumænsk/ru=russisk/sl=slovensk/sv=svensk/zh=kinesisk +de: af=Afrikaans/bg=Bulgarish/br=Bretonisch/ca=Katalanisch/cs=Tschechisch/da=Dänisch/de=Deutsch/en=Englisch/eo=Esperanto/es=Spanisch/et=Estnisch/fi=Finnisch/fr=Französisch/he=Hebräisch/is=Isländisch/it=Italienisch/lv=Litauisch/nl=Holländisch/no=Norwegisch/oc=Okzitanisch/pl=Polnisch/pt=Portugiesisch/pt-br=Brasil-Portugiesisch/ro=Rumänisch/ru=Russisch/sl=Slovenisch/sv=Schwedisch/zh=Chinesisch +en: af=Afrikaans/bg=Bulgarian/br=Breton/ca=Catalan/cs=Czech/da=Danish/de=German/en=English/eo=Esperanto/es=Spanish/et=Estonian/fi=Finnish/fr=French/he=Hebrew/is=Icelandic/it=Italian/lv=Latvian/nl=Dutch/no=Norwegian/oc=Occitan/pl=Polish/pt=Portuguese/pt-br=Brazilian-Portuguese/ro=Romanian/ru=Russian/sl=Slovenian/sv=Swedish/zh=Chinese eo: bg=bulgara/en=anglo/eo=esperanto/fr=franco -es: af=Afrikaans/bg=BĂşlgaro/br=BretĂłn/ca=Catalán/cs=Checo/da=DanĂ©s/de=Alemán/en=InglĂ©s/eo=Esperanto/es=Español/et=Estonio/fi=FinĂ©s/fr=FrancĂ©s/he=Hebreo/is=IslandĂ©s/it=Italiano/lv=Lituano/nl=NeerlandĂ©s/no=Noruego/pl=Polaco/pt=PortugĂ©s/pt-br=PortugĂ©s de Brasil/ro=Rumano/ru=Ruso/sl=Esloveno/sv=Sueco/zh=Chino -et: af=afrikaani/bg=bulgaaria/br=bretooni/ca=katalaani/cs=tšehhi/da=taani/de=saksa/en=inglise/eo=esperanto/es=hispaania/et=eesti/fi=soome/fr=prantsuse/he=heebrea/is=islandi/it=itaalia/lv=läti/nl=hollandi/no=norra/pl=poola/pt=portugali/pt-br=brasiilia-portugali/ro=rumeenia/ru=vene/sl=sloveenia/sv=rootsi/zh=hiina -fi: af=afrikaans/ca=katalaani/cs=tsekki/da=tanska/de=saksa/en=englanti/eo=esperanto/es=espanja/et=eesti/fi=suomi/fr=ranska/he=heprea/is=islanti/it=italia/lv=latvia/nl=hollanti/no=norja/pl=puola/pt=portugali/pt-br=brasilianportugali/ru=venäjä/sv=ruotsi/zh=kiina -fr: af=afrikaans/bg=bulgare/br=breton/ca=catalan/cs=tchèque/da=danois/de=allemand/en=anglais/eo=espĂ©ranto/es=espagnol/et=estonien/fi=finnois/fr=français/he=hĂ©breu/is=islandais/it=italien/lv=letton/nl=nĂ©erlandais/no=norvĂ©gien/pl=polonais/pt=portugais/pt-br=portugais du BrĂ©sil/ro=roumain/ru=russe/sl=slovène/sv=suĂ©dois/zh=chinois -he: af=×פריק×נס /cs=צ'כית /da=דנית /de=גרמנית /en=×נגלית /eo=×ספרנ×ו /es=ספרדית /fi=פינית /fr=צרפתית /he=עברית /is=×יסלנדית /it=××™×לקית /lv=ל×ווית /no=נורבגית /pt=פור×וגזית /ru=רוסית /sv=שוודית/zh=סינית -is: af=afrikanska/cs=tĂ©kkneska/da=danska/de=þýska/en=enska/eo=esperanto/es=spænska/fi=finnska/fr=franska/he=hebraska/is=Ă­slenska/it=Ă­talska/lv=lettneska/nl=hollenska/no=norska/pt=portĂşgalska/pt-br=Brasil-portĂşgalska/ru=rĂşssneska/sv=sænska/zh=kĂ­nverska -it: af=afrikaans/bg=bulgaro/ca=catalano/cs=ceco/da=danese/de=tedesco/en=inglese/eo=esperanto/es=spagnolo/et=estone/fi=finlandese/fr=francese/he=ebraico/is=islandese/it=italiano/lv=lettone/nl=olandese/no=norvegese/pl=polacco/pt=portoghese/pt-br=portoghese-brasiliano/ru=russo/sl=sloveno/sv=svedese/zh=cinese -lv: cs=ÄŚehu/da=DÄņu/de=VÄcu/en=AngÄĽu/eo=Esperanto/es=SpÄņu/fi=Somu/fr=FranÄŤu/he=Ebreju/is=Islandiešū/it=ItÄÄĽu/lv=Latviešu/nl=Holandiešu/no=NorvÄ“ÄŁu/pt=PortugÄÄĽu/pt-br=Brasil-PortugÄÄĽu/ru=Krievu/sv=Zviedru/zh=Ķīniešu -nl: af=Afrikaans/cs=Tsjechisch/da=Deens/de=Duits/en=Engels/eo=Esperanto/es=Spaans/fi=Fins/fr=Frans/he=Hebreeuws/is=IJslands/it=Italiaans/lv=Litouws/nl=Nederlands/no=Noors/pt=Portugees/pt-br=Brasil-Portugees/ru=Russisch/sv=Zweeds/zh=Chinees -no: af=afrikaans/bg=bulgarsk/br=bretonsk/ca=katalansk/cs=tjekkisk/da=dansk/de=tysk/en=engelsk/eo=esperanto/es=spansk/et=estisk/fi=finsk/fr=fransk/he=hebraisk/is=islandsk/it=italiensk/lv=litauisk/nl=hollandsk/no=norsk/pl=polsk/pt=portugisisk/pt-br=Brasil-portugisisk/ro=rumensk/ru=russisk/sl=slovensk/sv=svensk/zh=kinesisk -pl: af=afrikaans/bg=buĹ‚garski/ca=kataloĹ„ski/cs=czeski/da=duĹ„ski/de=niemiecki/en=angielski/eo=esperanto/es=hiszpaĹ„ski/et=estoĹ„ski/fi=fiĹ„ski/fr=francuski/he=hebrajski/is=islandzki/it=wĹ‚oski/lv=Ĺ‚otewski/nl=niderlandzki/no=norweski/pl=polski/pt=portugalski/pt-br=portugalski (Brazylia)/ru=rosyjski/sv=szwedzki/zh=chiĹ„ski -pt: af=Afrikaans/ca=CatalĂŁ/cs=Checo/da=DinamarquĂŞs/de=AlemĂŁo/en=InglĂŞs/eo=Esperanto/es=Espanhol/et=Estoniano/fi=FinlandĂŞs/fr=FrancĂŞs/he=Hebreu/is=IslandĂŞs/it=Italiano/lv=Lituano/nl=HolandĂŞs/no=NorueguĂŞs/pl=PolonĂŞs/pt=PortuguĂŞs/pt-br=PortuguĂŞs-do-Brasil/ru=Russo/sv=Sueco/zh=ChinĂŞs -pt-br: af=Afrikaner/ca=CatalĂŁo/cs=Checo/da=DinamarquĂŞs/de=AlemĂŁo/en=InglĂŞs/eo=Esperanto/es=Espanhol/et=Estoniano/fi=FinlandĂŞs/fr=FrancĂŞs/he=Hebreu/is=IslandĂŞs/it=Italiano/lv=Lituano/nl=HolandĂŞs/no=NorueguĂŞs/pl=PolonĂŞs/pt=PortuguĂŞs/pt-br=PortuguĂŞs-do-Brasil/ru=Russo/sv=Sueco/zh=ChinĂŞs -ro: af=africaans/ca=catalana/cs=checha/da=daneza/de=germana/en=engleza/eo=esperanto/es=spaniola/fi=finlandeza/fr=franceza/he=evreiasca/is=islandeza/it=italiana/nl=olandeza/no=norvegiana/pl=poloneza/pt=potugeza/pt-br=portugeza-in-brazilia/ro=romaneste/ru=rusa/sv=suedeza/zh=chineza -ru: af=африканŃкий/bg=болгарŃкий/ca=каталанŃкий/cs=чеŃŃкий/da=Đ´Đ°Ń‚Ńкий/de=немецкий/en=английŃкий/eo=ŃŤŃперанто/es=иŃпанŃкий/et=ŃŤŃтонŃкий/fi=финŃкий/fr=францŃĐ·Ńкий/he=иврит/is=иŃландŃкий/it=итальянŃкий/lv=латыŃŃкий/nl=голландŃкий/no=норвежŃкий/pl=польŃкий/pt=портŃгальŃкий/pt-br=бразильŃко-портŃгальŃкий/ru=Ń€ŃŃŃкий/sl=ŃлавянŃкий/sv=ŃведŃкий/zh=китайŃкий -sk: af=afrikánÄŤina/bg=bulharÄŤina/cs=ÄŤeština/da=dánÄŤina/de=nemÄŤina/en=angliÄŤtina/eo=esperanto/es=španielÄŤina/fi=fĂ­nština/fr=francĂşzština/he=hebrejÄŤina/is=islandÄŤina/it=talianÄŤina/lv=lotyština/nl=holandÄŤina/no=nĂłrÄŤina/pt=portugalÄŤina/pt-br=brazĂ­lÄŤina/ru=ruština/sv=švĂ©dÄŤina/zh=ÄŤĂ­nština -sl: af=afrikaanščina/ca=katalonščina/cs=ÄŤeščina/da=danščina/de=nemščina/en=angleščina/eo=esperanto/es=španščina/et=estonščina/fi=finščina/fr=francoščina/he=hebrejščina/is=islandščina/it=italijanščina/lv=litvanščina/nl=nizozemščina/no=norveščina/pl=poljščina/pt=portugalščina/pt-br=brazilska-portugalščina/ru=ruščina/sl=slovenščina/sv=švedščina/zh=kitajščina -sv: af=afrikaans/bg=bulgariska/br=bretonska/ca=katalanska/cs=tjeckiska/da=danska/de=tyska/en=engelska/eo=esperanto/es=spanska/et=estniska/fi=finska/fr=franska/he=hebreiska/is=isländska/it=italienska/lv=litauiska/nl=holländska/no=norska/pl=polska/pt=portugisiska/pt-br=brasiliansk-portugisiska/ro=rumänska/ru=ryska/sl=slovenska/sv=svenska/zh=kinesiska -zh: fr=法语/zh=中文 +es: af=Afrikaans/bg=BĂşlgaro/br=BretĂłn/ca=Catalán/cs=Checo/da=DanĂ©s/de=Alemán/en=InglĂ©s/eo=Esperanto/es=Español/et=Estonio/fi=FinĂ©s/fr=FrancĂ©s/he=Hebreo/is=IslandĂ©s/it=Italiano/lv=Lituano/nl=NeerlandĂ©s/no=Noruego/oc=Occitano/pl=Polaco/pt=PortugĂ©s/pt-br=PortugĂ©s de Brasil/ro=Rumano/ru=Ruso/sl=Esloveno/sv=Sueco/zh=Chino +et: af=afrikaani/bg=bulgaaria/br=bretooni/ca=katalaani/cs=tšehhi/da=taani/de=saksa/en=inglise/eo=esperanto/es=hispaania/et=eesti/fi=soome/fr=prantsuse/he=heebrea/is=islandi/it=itaalia/lv=läti/nl=hollandi/no=norra/oc=oksitaani/pl=poola/pt=portugali/pt-br=brasiilia-portugali/ro=rumeenia/ru=vene/sl=sloveenia/sv=rootsi/zh=hiina +fi: af=afrikaans/ca=katalaani/cs=tsekki/da=tanska/de=saksa/en=englanti/eo=esperanto/es=espanja/et=eesti/fi=suomi/fr=ranska/he=heprea/is=islanti/it=italia/lv=latvia/nl=hollanti/no=norja/pl=puola/oc=oksitaani/pt=portugali/pt-br=brasilianportugali/ru=venäjä/sv=ruotsi/zh=kiina +fr: af=afrikaans/bg=bulgare/br=breton/ca=catalan/cs=tchèque/da=danois/de=allemand/en=anglais/eo=espĂ©ranto/es=espagnol/et=estonien/fi=finnois/fr=français/he=hĂ©breu/is=islandais/it=italien/lv=letton/nl=nĂ©erlandais/no=norvĂ©gien/oc=occitan/pl=polonais/pt=portugais/pt-br=portugais du BrĂ©sil/ro=roumain/ru=russe/sl=slovène/sv=suĂ©dois/zh=chinois +he: af=×פריק×נס /cs=צ'כית /da=דנית /de=גרמנית /en=×נגלית /eo=×ספרנ×ו /es=ספרדית /fi=פינית /fr=צרפתית /he=עברית /is=×יסלנדית /it=××™×לקית /lv=ל×ווית /no=נורבגית /oc=×וקסי×נית /pt=פור×וגזית /ru=רוסית /sv=שוודית/zh=סינית +is: af=afrikanska/cs=tĂ©kkneska/da=danska/de=þýska/en=enska/eo=esperanto/es=spænska/fi=finnska/fr=franska/he=hebraska/is=Ă­slenska/it=Ă­talska/lv=lettneska/nl=hollenska/no=norska/oc=oksĂ­tanska/pt=portĂşgalska/pt-br=Brasil-portĂşgalska/ru=rĂşssneska/sv=sænska/zh=kĂ­nverska +it: af=afrikaans/bg=bulgaro/ca=catalano/cs=ceco/da=danese/de=tedesco/en=inglese/eo=esperanto/es=spagnolo/et=estone/fi=finlandese/fr=francese/he=ebraico/is=islandese/it=italiano/lv=lettone/nl=olandese/no=norvegese/oc=occitano/pl=polacco/pt=portoghese/pt-br=portoghese-brasiliano/ru=russo/sl=sloveno/sv=svedese/zh=cinese +lv: cs=ÄŚehu/da=DÄņu/de=VÄcu/en=AngÄĽu/eo=Esperanto/es=SpÄņu/fi=Somu/fr=FranÄŤu/he=Ebreju/is=Islandiešū/it=ItÄÄĽu/lv=Latviešu/nl=Holandiešu/no=NorvÄ“ÄŁu/oc=OksitÄņu/pt=PortugÄÄĽu/pt-br=Brasil-PortugÄÄĽu/ru=Krievu/sv=Zviedru/zh=Ķīniešu +nl: af=Afrikaans/cs=Tsjechisch/da=Deens/de=Duits/en=Engels/eo=Esperanto/es=Spaans/fi=Fins/fr=Frans/he=Hebreeuws/is=IJslands/it=Italiaans/lv=Litouws/nl=Nederlands/no=Noors/oc=Occitaans/pt=Portugees/pt-br=Brasil-Portugees/ru=Russisch/sv=Zweeds/zh=Chinees +no: af=afrikaans/bg=bulgarsk/br=bretonsk/ca=katalansk/cs=tjekkisk/da=dansk/de=tysk/en=engelsk/eo=esperanto/es=spansk/et=estisk/fi=finsk/fr=fransk/he=hebraisk/is=islandsk/it=italiensk/lv=litauisk/nl=hollandsk/no=norsk/oc=oksitansk/pl=polsk/pt=portugisisk/pt-br=Brasil-portugisisk/ro=rumensk/ru=russisk/sl=slovensk/sv=svensk/zh=kinesisk +oc=afrikaans/ca=catalan/cs=chèc/da=danĂ©s/de=alemand/en=anglĂ©s/eo=esperanto/es=espanhòl/et=estonian/fi=finnĂ©s/fr=francĂ©s/he=ebrieu/is=islandĂ©s/it=italian/lv=leton/nl=neerlandĂ©s/no=noruèc/oc=occitan/pl=polonĂ©s/pt=portuguĂ©s/pt-br=portuguĂ©s brasilièr/ru=rus/sl=eslovèn/sv=suèc/zh=chinĂ©s +pl: af=afrikaans/bg=buĹ‚garski/ca=kataloĹ„ski/cs=czeski/da=duĹ„ski/de=niemiecki/en=angielski/eo=esperanto/es=hiszpaĹ„ski/et=estoĹ„ski/fi=fiĹ„ski/fr=francuski/he=hebrajski/is=islandzki/it=wĹ‚oski/lv=Ĺ‚otewski/nl=niderlandzki/no=norweski/oc=oksytaĹ„ski/pl=polski/pt=portugalski/pt-br=portugalski (Brazylia)/ru=rosyjski/sv=szwedzki/zh=chiĹ„ski +pt: af=Afrikaans/ca=CatalĂŁ/cs=Checo/da=DinamarquĂŞs/de=AlemĂŁo/en=InglĂŞs/eo=Esperanto/es=Espanhol/et=Estoniano/fi=FinlandĂŞs/fr=FrancĂŞs/he=Hebreu/is=IslandĂŞs/it=Italiano/lv=Lituano/nl=HolandĂŞs/no=NorueguĂŞs/oc=Occitano/pl=PolonĂŞs/pt=PortuguĂŞs/pt-br=PortuguĂŞs-do-Brasil/ru=Russo/sv=Sueco/zh=ChinĂŞs +pt-br: af=Afrikaner/ca=CatalĂŁo/cs=Checo/da=DinamarquĂŞs/de=AlemĂŁo/en=InglĂŞs/eo=Esperanto/es=Espanhol/et=Estoniano/fi=FinlandĂŞs/fr=FrancĂŞs/he=Hebreu/is=IslandĂŞs/it=Italiano/lv=Lituano/nl=HolandĂŞs/no=NorueguĂŞs/oc=Occitano/pl=PolonĂŞs/pt=PortuguĂŞs/pt-br=PortuguĂŞs-do-Brasil/ru=Russo/sv=Sueco/zh=ChinĂŞs +ro: af=africaans/ca=catalana/cs=checha/da=daneza/de=germana/en=engleza/eo=esperanto/es=spaniola/fi=finlandeza/fr=franceza/he=evreiasca/is=islandeza/it=italiana/nl=olandeza/no=norvegiana/oc=occitana/pl=poloneza/pt=potugeza/pt-br=portugeza-in-brazilia/ro=romaneste/ru=rusa/sv=suedeza/zh=chineza +ru: af=африканŃкий/bg=болгарŃкий/ca=каталанŃкий/cs=чеŃŃкий/da=Đ´Đ°Ń‚Ńкий/de=немецкий/en=английŃкий/eo=ŃŤŃперанто/es=иŃпанŃкий/et=ŃŤŃтонŃкий/fi=финŃкий/fr=францŃĐ·Ńкий/he=иврит/is=иŃландŃкий/it=итальянŃкий/lv=латыŃŃкий/nl=голландŃкий/no=норвежŃкий/oc=окŃитанŃкий/pl=польŃкий/pt=портŃгальŃкий/pt-br=бразильŃко-портŃгальŃкий/ru=Ń€ŃŃŃкий/sl=ŃлавянŃкий/sv=ŃведŃкий/zh=китайŃкий +sk: af=afrikánÄŤina/bg=bulharÄŤina/cs=ÄŤeština/da=dánÄŤina/de=nemÄŤina/en=angliÄŤtina/eo=esperanto/es=španielÄŤina/fi=fĂ­nština/fr=francĂşzština/he=hebrejÄŤina/is=islandÄŤina/it=talianÄŤina/lv=lotyština/nl=holandÄŤina/no=nĂłrÄŤina/oc=okcitánÄŤina/pt=portugalÄŤina/pt-br=brazĂ­lÄŤina/ru=ruština/sv=švĂ©dÄŤina/zh=ÄŤĂ­nština +sl: af=afrikaanščina/ca=katalonščina/cs=ÄŤeščina/da=danščina/de=nemščina/en=angleščina/eo=esperanto/es=španščina/et=estonščina/fi=finščina/fr=francoščina/he=hebrejščina/is=islandščina/it=italijanščina/lv=litvanščina/nl=nizozemščina/no=norveščina/oc=okcitanščina/pl=poljščina/pt=portugalščina/pt-br=brazilska-portugalščina/ru=ruščina/sl=slovenščina/sv=švedščina/zh=kitajščina +sv: af=afrikaans/bg=bulgariska/br=bretonska/ca=katalanska/cs=tjeckiska/da=danska/de=tyska/en=engelska/eo=esperanto/es=spanska/et=estniska/fi=finska/fr=franska/he=hebreiska/is=isländska/it=italienska/lv=litauiska/nl=holländska/no=norska/oc=occitanska/pl=polska/pt=portugisiska/pt-br=brasiliansk-portugisiska/ro=rumänska/ru=ryska/sl=slovenska/sv=svenska/zh=kinesiska +zh: fr=法语/zh=中文/oc=奥克语 the first branch af: om die eerste staak te sien @@ -81,6 +83,7 @@ lv: skatÄ«t pirmo zaru nl: de eerste tak no: den første grenen +oc: la primièra branca pl: aby zobaczyć pierwszÄ… liniÄ™ (gaĹ‚Ä…Ĺş) pt: para ver o primeiro ramo ro: pentru a vedea primul @@ -109,6 +112,7 @@ lv: skatÄ«t pirmo zaru nl: om de eerste tak te zien no: for ĂĄ se den første +oc: per veire la primièra branca pl: aby zobaczyć pierwszÄ… liniÄ™ (gaĹ‚Ä…Ĺş) pt: para ver o primeiro ramo ro: pentru a vedea primul @@ -137,6 +141,7 @@ lv: skatÄ«t pirmo attiecÄ«bu saiti nl: om de eerste te zien no: for ĂĄ se den første +oc: per veire lo primièr ligam de parentatge pl: aby zobaczyć pierwszÄ… liniÄ™ pokrewieĹ„stwa pt: para ver o primeiro link ro: pentru a vedea prima relatie @@ -165,6 +170,7 @@ lv: mÄ“ÄŁiniet vÄ“lreiz ar šo nummuru nl: , om dit nummer weer te proberen no: for ĂĄ prøve igjen med dette nummeret +oc: per tornar ensajar amb aquel numèro pl: aby ponowić z tym numerem pt: para tentar novamente com este nĂşmero ro: incearca din nou cu acest numar @@ -193,6 +199,7 @@ lv: %1 -> %2 nl: %1 van %2 no: %1 til %2/%1 av %2 +oc: %1 de %2 pl: %1 :g:%2 pt: %1 de %2 ro: %1 pentru %2 @@ -210,6 +217,8 @@ it: %d %s partendo da "%s" nl: %d %s beginnend met "%s" no: %d %s som starter med "%s" +oc: %d %s que comença amb "%s" +pt: %d %s começados por '%s' sv: %d %s som börjar med "%s" %d years ago @@ -232,6 +241,7 @@ lv: %d gadus atpakaÄĽ nl: %d jaar geleden no: %d ĂĄr siden +oc: %d ans fa pl: przed %d laty pt: há %d anos ro: de %d ani @@ -242,7 +252,7 @@ %s access cancelled for that page bg: отменен Đ´ĐľŃŃ‚ŃŠĐż като %s Đ·Đ° тази Ńтраница -cs: pristup pre tuto stranku bol zruseny +cs: pristup pro tuto stranku byl zruseny de: Zugang fĂĽr %s wurde gelöscht en: %s access cancelled for that page eo: %s aliro ne estas ebla por la paÄťo @@ -255,6 +265,7 @@ lv: %s piekÄĽuve šai lapai ir pÄrtraukta nl: %s toegang gewist voor deze pagina no: du har ikke lenger tilgang til denne siden %s +oc: accès %s anullat per aquela pagina pl: dostÄ™p %s anulowany dla tej strony pt: acesso %s cancelado para aquela página ro: %s acces anulat la aceastÄ paginÄ @@ -282,6 +293,7 @@ lv: %s brÄlÄ“ni/mÄsÄ«cas nl: neven en nichten in de %s graad no: %s søskenbarn +oc: cosins del %s gra pl: kuzyni %s stopnia pt: primos em %s grau ro: veri de gradul %s @@ -300,8 +312,22 @@ it: carattere non valido (%s) nella cognome/nome nl: ongeldig karakter (%s) in familienaam/voornaam no: etternavn/fornavn du skrev inn, inneholder ugyldige tegn (%s) +oc: caractèrs enebits (%s) dins lo nom o lo prenom sv: Ogiltigt tecken (%s) i efternamn/förnamn + %s modified +de: %s geändert +en: %s modified +es: %s modificada +fi: %s muokattu +fr: %s modifiĂ© +it: %s modificata +nl: %s veranderd +no: %s er endret +oc: %s modificat/da +pt: %s modificado +sv: %s ändrad + %s, it is %s of af: %s, dit is %s van bg: %s, е %s на @@ -322,6 +348,7 @@ lv: %s, tas ir %s nl: %s is het %s van no: %s, er det %s til +oc: %s, es %s de pl: %s, jest %s pt: %s, Ă© %s de ro: %s, este %s pentru @@ -350,6 +377,7 @@ lv: %s, tas bĹ«s %s nl: %s zal het %s zijn van no: %s, vil det bli %s til +oc: %s, serĂ  %s de pl: %s, bÄ™dzie %s pt: %s, será %s de ro: %s, va fi %s pentru @@ -378,6 +406,7 @@ lv: %t jau ir vecÄki nl: %t heeft al ouders no: %t har allerede foreldre +oc: los parents de %t existisson ja pl: %t juĹĽ ma rodzicĂłw pt: os pais de %t já existem ro: %t are deja parinti @@ -406,6 +435,7 @@ lv: %t miris pirms viņš/viņa dzimusi nl: %t zou dood zijn voor zijn/haar geboorte no: %t døde før sin fødsel +oc: %t moriguèt abans la naissença pl: %t zmarĹ‚ przed swymi narodzinami/zmarĹ‚a przed swymi narodzinami pt: %t morreu antes de nascer ro: %t a murit inaninte de nastere @@ -434,6 +464,7 @@ lv: %t ir nekorekti datumi: %t nl: %t de data voor titels zijn niet correct no: %t har feil titeldato %t +oc: %t a las datas d'un tĂ­tol incorrèctas: %t pl: %t ma wpisane nieprawidĹ‚owe daty uĹĽywania tytuĹ‚u pt: as datas de um tĂ­tulo de %t nĂŁo estĂŁo correctas pt-br: as datas de um tĂ­tulo de %t nĂŁo estĂŁo corretas @@ -463,6 +494,7 @@ lv: %t dzimis pÄ“c viņa/viņas mÄtes nÄves %t nl: %t zou geboren zijn na de dood van zijn/haar moeder %t no: %t er født etter sin mors død %t +oc: %t es nascut/da après la mòrt de la maire pl: %t urodziĹ‚ siÄ™/urodziĹ‚a siÄ™ po Ĺ›mierci swojej matki: %t pt: %t nasceu depois do Ăłbito da mĂŁe ro: %t e nascut dupa decesul mamei @@ -491,6 +523,7 @@ lv: %t ir dzimis vairÄk kÄ 2 gadus pÄ“c sava tÄ“va nÄves %t nl: %t is geboren meer dan twee jaar na de dood van zijn/haar vader no: %t er født mer enn 2 ĂĄr etter sin fars død %t +oc: %t es nascut/da mai de dos ans après la mòrt del paire pl: %t urodziĹ‚ siÄ™/urodziĹ‚a siÄ™ ponad 2 lata po Ĺ›mierci swojego ojca: %t pt: %t nasceu mais de 2 anos depois do Ăłbito do pai ro: %t e nascut mai mult de doi ani dupa decesul tatalui @@ -499,6 +532,32 @@ sl: %t je rojen(a) veÄŤ kot 2 leti po smrti svojega oÄŤeta sv: %t är född mer än 2 ĂĄr efter att sin egen far dog %t + %t was witness after his/her death +de: %t war Zeitzeuge nach seinem Tod +en: %t was a witness after their death +es: %t era testigo tras su muerte +fi: %t oli todistaja hänen kuolemansa jälkeen +fr: %t Ă©tait tĂ©moin après sa mort +it: %t era testimone dopo la sua morte +nl: %t was getuige na zijn overlijden +no: %t var vitne etter deres død +oc: %t foguèt testimòni après la mòrt +pt: %t foi testemunha apĂłs a sua morte +sv: %t var vittne vid hennes/hans död + + %t was witness before his/her birth +de: %t war Zeitzeuge vor seiner Geburt +en: %t was a witness before their birth +es: %t era testigo antes de su nacimiento +fi: %t oli todistaja ennen hänen syntymäänsä +fr: %t Ă©tait tĂ©moin avant sa naissance +it: %t era testimone prima della sua nascita +nl: %t was getuige voor zijn geboorte +no: %t var vitne før deres fødsel +oc: %t foguèt testimòni abans la naissença +pt: %t foi testemunha antes do seu nascimento +sv: %t var vittne innan hennes/hans död + %t's sex is not coherent with his/her relations af: %t se geslag stem nie ooreen met sy/haar verwantskap nie bg: полът на %t не Ńе ŃъглаŃŃва Ń ĐżĐľŃочените взаимоотноŃения @@ -519,6 +578,7 @@ lv: personas %t neatbilst viņa/viņas attiecÄ«bÄm nl: het geslacht van %t klopt niet met zijn/haar relaties no: %ts kjønn er uforenlig med forbindelsene hans/hennes +oc: lo sèxe de %t es pas coerent amb las relacions pl: %t: jego/jej pĹ‚eć nie odpowiada jego/jej zwiÄ…zkom pt: o sexo de %t nĂŁo Ă© coerente com suas relações ro: %t are genul incoerent cu relatia @@ -527,20 +587,6 @@ sl: spol %t ni usklajen z zvezami sv: %ts kön stämmer inte överens med sina relationer - %t was witness after his/her death -de: %t war Zeitzeuge nach seinem Tod -en: %t was a witness after their death -es: %t era testigo tras su muerte -fr: %t Ă©tait tĂ©moin après sa mort -it: %t era testimone dopo la sua morte - - %t was witness before his/her birth -de: %t war Zeitzeuge vor seiner Geburt -en: %t was a witness before their birth -es: %t era testigo antes de su nacimiento -fr: %t Ă©tait tĂ©moin avant sa naissance -it: %t era testimone prima della sua nascita - (date) af: 1 %m %y/%d %m %y/%m %y/%y ar: 1 %m %y/%d %m %y/%m %y/%y @@ -562,6 +608,7 @@ lv: 1. %m %y/%y.gada %d.%m/%y %m/%y nl: 1 %m %y/%d %m %y/%m %y/%y no: 1. %m %y/%d. %m %y/%m %y/%y +oc: 1èr d[e']%m de %y/%d d[e']%m de %y/%m de %y/%y pl: 1 %m %y/%d %m %y/%m %y/%y pt: 1 de %m de %y/%d de %m de %y/%m %y/%y ro: 1 %m %y/%d. %m %y/%m %y/%y @@ -591,6 +638,7 @@ lv: , nl: , no: , +oc: , pl: , pt: , ro: , @@ -618,6 +666,7 @@ lv: vendemiaire/brumaire/frimaire/nivose/pluviose/ventose/germinal/floreal/prairial/messidor/thermidor/fructidor/complementaire nl: vendĂ©miaire/brumaire/frimaire/nivĂ´se/pluviĂ´se/ventĂ´se/germinal/florĂ©al/prairial/messidor/thermidor/fructidor/complĂ©mentaire no: vendĂ©miaire/brumaire/frimaire/nivĂ´se/pluviĂ´se/ventĂ´se/germinal/florĂ©al/prairial/messidor/thermidor/fructidor/complĂ©mentaire +oc: vendĂ©miaire/brumaire/frimaire/nivĂ´se/pluviĂ´se/ventĂ´se/germinal/florĂ©al/prairial/messidor/thermidor/fructidor/complĂ©mentaire pl: Vendemiaire/Brumaire/Frimaire/Nivose/Pluviose/Ventose/Germinal/Floreal/Prairial/Messidor/Thermidor/Fructidor/Extra pt: Vindimiário/Brumário/Frimário/Nevoso/Pluvioso/Ventoso/Germinal/Floreal/Pradial/Messidor/Termidor/Frutidor/Complementar ro: Vendemiaire/Brumaire/Frimaire/Nivose/Pluviose/Ventose/Germinal/Floreal/Prairial/Messidor/Thermidor/Fructidor/Extra @@ -646,6 +695,7 @@ lv: Tishri/Heshvan/Kislev/Tevet/Shevat/Adar I/Adar II/Nisan/Iyyar/Sivan/Tammuz/Av/Elul nl: Tishri/Marcheswan/Kislew/Tebeth/Shebat/Adar/Adar2/Niesan/Ijjar/Siwan/Tammuz/Ab/Elul no: tishri/heshvan/kislev/tevet/shevat/adar I/adar II/nisan/iyyar/sivan/tammuz/av/elul +oc: tichri/marhechvan/kislev/tevet/chevat/adar 1/adar 2/nissan/iyar/sivan/tamouz/av/elol pl: tishri/heshvan/kislev/tevet/shevat/adar I/adar II/nisan/iyyar/sivan/tammuz/av/elul pt: Tishrei/Cheshvan/Kislev/Tevet/Shevat/Adar I/Adar II/Nissan/Iyar/Sivan/Tamuz/Av/Elul ro: Tischri/Marcheschwan/Kislev/Tebet/Schebat/Adar/WeAdar/Nisan/Ijar/Siwan/Tammuz/Ab/Elul @@ -670,11 +720,12 @@ fi: tammikuu/helmikuu/maaliskuu/huhtikuu/toukokuu/kesäkuu/heinäkuu/elokuu/syyskuu/lokakuu/marraskuu/joulukuu fr: janvier/fĂ©vrier/mars/avril/mai/juin/juillet/aoĂ»t/septembre/octobre/novembre/dĂ©cembre he: ינו×ר/ פברו×ר/ מרץ/ ×פריל/ מ××™/ יוני/ יולי/ ×וגוס×/ ספ×מבר/ ×וק×ובר/ נובמבר/ דצמבר -is: JanĂşar/febrĂşar/mars/aprĂ­l/mai/jĂşnĂ­/jĂşlĂ­/ágĂşst/september/oktober/nĂłvember/desember +is: janĂşar/febrĂşar/mars/aprĂ­l/mai/jĂşnĂ­/jĂşlĂ­/ágĂşst/september/oktober/nĂłvember/desember it: gennaio/febbraio/marzo/aprile/maggio/giugno/luglio/agosto/settembre/ottobre/novembre/dicembre lv: janvÄris/februÄris/marts/aprÄ«lis/maijs/jĹ«nijs/jĹ«lijs/augusts/septembris/oktobris/novembris/decembris nl: januari/februari/maart/april/mei/juni/juli/augustus/september/oktober/november/december no: januar/februar/mars/april/mai/juni/juli/august/september/oktober/november/desember +oc: genièr/febrièr/març/abril/mai/junh/julhet/agost/setembre/octobre/novembre/decembre pl: I/II/III/IV/V/VI/VII/VIII/IX/X/XI/XII pt: Janeiro/Fevereiro/Março/Abril/Maio/Junho/Julho/Agosto/Setembro/Outubro/Novembro/Dezembro ro: januarie/februarie/martie/aprilie/mai/junie/julie/august/septembrie/octombrie/noiembrie/decembrie @@ -698,13 +749,14 @@ es: . et:   fi: . -fr:   +fr:   he: , is: . it: . lv: ' nl: . no: . +oc:   pl: . pt: . ro: . @@ -735,6 +787,7 @@ lv: svÄ“tdiena/pirmdiena/otrdiena/trešdiena/ceturdiena/piekdiena/sesdiena nl: zondag/maandag/dinsdag/woensdag/donderdag/vrijdag/zaterdag no: søndag/mandag/tirsdag/onsdag/torsdag/fredag/lørdag +oc: dimenge/diluns/dimars/dimècres/dijòus/divendres/dissabte pl: niedziela:a:-Ä™/poniedziaĹ‚ek/wtorek/Ĺ›roda:a:-Ä™/czwartek/piÄ…tek/sobota:a:-Ä™ pt: domingo/segunda-feira/terça-feira/quarta-feira/quinta-feira/sexta-feira/sábado ro: duminica/luni/marti/miercuri/joi/vineri/simbata @@ -763,6 +816,7 @@ lv: otrÄs pakÄpes brÄlÄ“ns/mÄsÄ«ca nl: neven en nichten in de 2de graad no: tremenninger +oc: cosins de segond gra pl: kuzyni drugiego stopnia pt: primos em 2Âş grau ro: var de gradul doi @@ -791,6 +845,7 @@ lv: trešÄs pakÄpes brÄlÄ“ns mÄsÄ«ca nl: neven en nichten in de 3e graad no: firmenninger +oc: cosins de 3en gra pl: kuzyni trzeciego stopnia pt: primos em 3Âş grau ro: var de gradul trei @@ -819,6 +874,7 @@ lv: SOSA pakÄpe attiecÄ«bÄ pret %t nl: Sosa nummer ten opzichte van %t no: Anenummer i forhold til %t +oc: numèro Sosarelatiu a %t pl: numer "Sosa", odnoszÄ…cy siÄ™ do: %t pt: nĂşmero Sosa em relação a %t ro: numar Sosa in relatie cu @@ -827,6 +883,35 @@ sl: številka"Sosa", v odnosu z %t sv: annummer med %t som proband (Kekules system) + a %s cousin +af: 'n neef in die %s -de geslag/'n niggie in die %s -de geslag +bg: %sи братовчед/%sĐ° братовчедка +br: ur c'henderv a live an %s derez/ur geniterv a live an %s derez/ ur c'h(g)enderv(ez) a live an %s derez +ca: un cosĂ­ de %s grau/una cosina de %s grau/un(a) cosĂ­(na) de %s grau +cs: bratranec z %s kolena/sestĹ™enice z %s kolena +da: en fætter af %s grad/en kusine af %s grad +de: ein:d:+em Cousin %s Grades/eine:d:+r Cousine %s Grades +en: a %s cousin +eo: %s grada kuzo/%s grada kuzino/%s grada kuz(in)o +es: un primo en %s grado/una prima en %s grado/un(a) primo(a) en %s grado +et: %s astme nõbu:g:--o +fi: %s serkku:g:--un +fr: un cousin au %s degrĂ©/une cousine au %s degrĂ©/un(e) cousin(e) au %s degrĂ© +he: בן-דוד לדרגה %s/ בת-דוד לדרגה %s +is: systkynabarn %s +it: un cugino di %s grado/una cugina di %s grado/un(a) cugino(a) di %s grado +lv: %s brÄlÄ“ns/mÄsÄ«ca +nl: een neef in de %s generatie/een nicht in de %s generatie +no: %smenning +oc: un cosin del %s gra/una cosina del %s gra/un(a) cosi(na) del %s gra +pl: kuzyn %s-tego stopnia/kuzynka %s-tego stopnia +pt: um primo em %s grau/uma prima em %s grau/um(a) primo(a) em %s grau +ro: un var de gradul %s +ru: %s-ий ĐşŃзен/%s-ŃŹ ĐşŃзина +sk: bratranec/sesternica z %s kolena +sl: bratranec v %s kolenu/sestriÄŤna v %s kolenu +sv: %smänning + a 2nd cousin af: 'n kleinneef/'n kleinniggie bg: втори братовчед/втора братовчедка @@ -847,6 +932,7 @@ lv: otrais brÄlÄ“ns/mÄsÄ«ca nl: een neef in de tweede generatie/een nicht in de tweede generatie no: en tremenning +oc: un cosin eissit de germans/una cosina eissida de germans/un(a) cosin(a) eissit(da) de germans pl: kuzyn/kuzynka drugiego stopnia pt: um primo em 2Âş grau/uma prima em 2Âş grau/um(a) primo(a) em 2Âş grau ro: un var de gradul doi @@ -875,6 +961,7 @@ lv: trešais brÄlÄ“ns/mÄsÄ«ca nl: een neef in de derde generatie/een nicht in de derde generatie no: en firmenning +oc: un cosin eissit d'eissits de germans/una cosina eissida d'eissits de germans/un(a) cosin(a) eissit(da) d'eissits de germans pl: kuzyn/kuzynka trzeciego stopnia pt: um primo em 3Âş grau/uma prima em 3Âş grau/um(a) primo(a) em 3Âş grau ro: un var de gradul trei @@ -883,92 +970,6 @@ sl: bratranec v tretjem kolenu/sestriÄŤna v tretjem kolenu sv: en brylling - about (date) -af: ongeveer -bg: около -br: war-dro -ca: al voltant de -cs: kolem -da: omkring -de: ca. -en: about -eo: ĉirkaĂą -es: alrededor de -et: umbes :i: -fi: noin -fr: vers -he: בערך -is: um -it: circa -lv: ap -nl: circa -no: ca -pl: okoĹ‚o -pt: cerca -ro: circa -ru: около -sk: okolo -sl: pribliĹľno -sv: omkring - - about (short date) -af: ca -bg: ca -br: ca -ca: ca -cs: ca -da: ca -de: ca -en: ca -eo: ca -es: ca -et: ca -fi: ca -fr: ca -he: ca -is: ca -it: ca -lv: ca -nl: ca -no: ca -pl: ca -pt: ca -pt-br: ca -ro: ca -ru: ca -sk: ca -sl: ca -sv: ca -zh: ca - - a brother/a sister/a sibling -af: 'n broer/'n sister/'n sibbe -bg: брат/ŃеŃтра/брат или ŃеŃтра -br: ur breur/ur c'hoar/ur breur pe ur c'hoar -ca: un germĂ /una germana/un(a) germĂ (na) -cs: bratr/sestra/sourozenec -da: en broder/en søster/en broder eller en søster -de: ein Bruder/eine Schwester/ein Bruder oder eine Schwester -en: a brother/a sister/a sibling -eo: frato/fratino/frat(in)o -es: un hermano/una hermana/un(a) hermano(a) -et: vend:g:-na/õde:g:--e/õde:g:--e või vend:g:-na -fi: veli:g:-jen/sisar:g:+en/sisarus:g:-ksen -fr: un frère/une sĹ“ur/un frère ou une sĹ“ur -he: ××—/ ×חות/ ××—(ות) -is: bróðir/systir/systkyn -it: un fratello/una sorella/un fratello o una sorella -lv: brÄlis/mÄsa/a sibling -nl: een broer/een zuster/een broer of een zuster -no: bror/søster/søsken -pl: brat/siostra/brat lub siostra -pt: um irmĂŁo/uma irmĂŁ/um(a) irmĂŁo(ĂŁ) -ro: frate/sora/un frate sau o sora -ru: брат/ŃеŃтра/брат или ŃеŃтра -sk: brat/sestra/sĂşrodenec -sl: brat/sestra/brat ali sestra -sv: en bror/en syster/ett syskon - a brother-in-law/a sister-in-law af: 'n swaer/'n skoonsuster bg: ŃеŃтрин ŃъпрŃĐł, ŃŃрей или баджанак/братова ŃъпрŃга, ŃŃренайка или балдъза/ŃеŃтрин ŃъпрŃĐł, ŃъпрŃĐł на зълва или девер/братова ŃъпрŃга, зълва или етърва @@ -989,6 +990,7 @@ lv: svainis/svaine nl: een schoonbroer(zwager)/een schoonzuster no: svoger/svigerinne +oc: un conhat/una conhada pl: szwagier/szwagierka pt: um cunhado/uma cunhada ro: un cumnat/o cumnata @@ -997,33 +999,34 @@ sl: svak/svakinja sv: en svĂĄger/en svägerska - access -af: toegang -bg: Đ´ĐľŃŃ‚ŃŠĐż -br: mont-e-barzh -ca: accĂ©s -cs: přístup -da: adgang -de: Zugriff -en: access -eo: eniro -es: acceso -et: ligipääs -fi: pääsy -fr: accès -he: כניסה -is: aĂ°gangur -it: accesso -lv: piekÄĽuve/atslÄ“ga -nl: toegang -no: tilgang -pl: dostÄ™p -pt: acesso -ro: acces -ru: Đ´ĐľŃŃ‚ŃĐż -sk: prĂ­stup -sl: dostop -sv: tillträde + a brother/a sister/a sibling +af: 'n broer/'n sister/'n sibbe +bg: брат/ŃеŃтра/брат или ŃеŃтра +br: ur breur/ur c'hoar/ur breur pe ur c'hoar +ca: un germĂ /una germana/un(a) germĂ (na) +cs: bratr/sestra/sourozenec +da: en broder/en søster/en broder eller en søster +de: ein Bruder/eine Schwester/ein Bruder oder eine Schwester +en: a brother/a sister/a sibling +eo: frato/fratino/frat(in)o +es: un hermano/una hermana/un(a) hermano(a) +et: vend:g:-na/õde:g:--e/õde:g:--e või vend:g:-na +fi: veli:g:-jen/sisar:g:+en/sisarus:g:-ksen +fr: un frère/une sĹ“ur/un frère ou une sĹ“ur +he: ××—/ ×חות/ ××—(ות) +is: bróðir/systir/systkyn +it: un fratello/una sorella/un fratello o una sorella +lv: brÄlis/mÄsa/a sibling +nl: een broer/een zuster/een broer of een zuster +no: bror/søster/søsken +oc: un fraire/una sòrre/un fraire o una sòrre +pl: brat/siostra/brat lub siostra +pt: um irmĂŁo/uma irmĂŁ/um(a) irmĂŁo(ĂŁ) +ro: frate/sora/un frate sau o sora +ru: брат/ŃеŃтра/брат или ŃеŃтра +sk: brat/sestra/sĂşrodenec +sl: brat/sestra/brat ali sestra +sv: en bror/en syster/ett syskon a cousin af: 'n neef/'n niggie @@ -1045,6 +1048,7 @@ lv: brÄlÄ“ns/mÄsÄ«ca nl: een neef/een nicht no: et søskenbarn +oc: un cosin/una cosina pl: kuzyn/kuzynka pt: um primo/uma prima ro: un var @@ -1053,89 +1057,6 @@ sl: bratranec/sestriÄŤna sv: en kusin - add -af: byvoeg -bg: добавяне на -br: ouzhpennañ -ca: afegir -cs: pĹ™idat :a: -da: tilføj -de: hinzufĂĽgen +before -en: add -eo: aldoni :a: -es: agregar -et: lisa -fi: lisää -fr: ajouter -he: הוספה -is: bæta viĂ° -it: aggiungere -lv: pievienot -nl: invoeren +before -no: tilføy -pl: dodaj :a: -pt: acrescentar -ro: adauga -ru: добавить :a: -sk: pridaĹĄ :a: -sl: dodaj -sv: lägg till - - add base notes -af: byvoeg notas -bg: добавяне на бележки -br: ouzhpennañ notennoĂą -ca: afegir notes -cs: pĹ™idat :a: poznámky -da: tilføj noter -de: hinzufĂĽgen Notizen -en: add notes -eo: aldoni :a: notoj:a:+n -es: agregar notas -et: lisa märkused:g:-id -fi: lisää lisätietoja -fr: saisir une chronique -he: הערות הוספה -is: bæta viĂ° athugasemdum -it: aggiungere note -lv: pievienot piezÄ«me(s) -nl: invoeren notities -no: tilføy notater -pl: dodaj :a: uwagi -pt: acrescentar notas -ro: adauga note -ru: добавить :a: заметки -sk: pridaĹĄ :a: poznámky -sl: dodaj zapiski -sv: lägg till noteringar - - add picture -af: byvoeg prent -bg: добавяне на изображение -br: ouzhpennañ skeudenn -ca: afegir imatge -cs: pĹ™idat :a: obrázek -da: tilføj billede -de: hinzufĂĽgen Bild -en: add Picture -eo: aldoni :a: bildo:a:+n -es: agregar imagen -et: lisa pilt -fi: lisää kuva -fr: ajouter portrait -he: תמונה הוספה -is: bæta viĂ° mynd -it: aggiungere immagine -lv: pievienot attÄ“li -nl: invoeren beeld -no: tilføy bilde -pl: dodaj :a: ilustracja:a:-Ä™ -pt: acrescentar imagem -ro: adauga imagine -ru: добавить :a: ĐşĐ°Ń€Ń‚Đ¸Đ˝ĐşŃ -sl: dodaj slika -sv: lägg till bild - a descendant af: 'n afstammeling bg: потомък @@ -1156,6 +1077,7 @@ lv: pÄ“cnÄcÄ“js nl: een afstammeling no: en etterkommer +oc: un descendent/una descendenta pl: potomek pt: um descendente/uma descendente ro: un descendent @@ -1164,356 +1086,121 @@ sl: potomec sv: en ättling - adoptive father/adoptive mother/adoptive parents -af: aangenome vader/angenome moeder/aangenome ouers -bg: ĐľŃиновител/ĐľŃиновителка/ĐľŃиновители -br: adtad/advamm/adkerent -ca: pare adoptiu/mare adoptiva/pares adoptius -cs: adoptivnĂ­ otec/adoptivnĂ­ matka/adoptivnĂ­ rodiÄŤe -da: adoptivfader/adoptivmoder/adoptivforældre -de: Adoptivvater/Adoptivmutter/Adoptiveltern -en: adoptive father/adoptive mother/adoptive parents -eo: adoptinta patro/adoptinta patrino/adoptintaj gepatroj -es: padre adoptivo/madre adoptiva/padres adoptivos -et: adoptiivisa/adoptiivema/adoptiivvanemad -fi: ottoisä/ottoäiti/ottovanhemmat -fr: père adoptif/mère adoptive/parents adoptifs -he: ×ב חורג/ ×ם חורגת/ הורים חורגים -is: kjörfaĂ°ir/kjörmóðir/kjörforeldrar -it: padre adottivo/madre adottiva/genitori adottivi -lv: patÄ“vs/pamÄte/pavecÄki adoptive parents -nl: adoptiefvader/adoptiefmoeder/adoptiefouders -no: adoptivfar/adoptivmor/adoptivforeldre -pl: przybrany ojciec/przybrana matka/przybrani rodzice -pt: pai adoptivo/mĂŁe adoptiva/pais adoptivos -pt-br: pai adotivo/mĂŁe adotiva/pais adotivos -ro: tatal adoptiv/mama adoptiva/parinti adoptivi -ru: приемный отец/приемная ĐĽĐ°Ń‚ŃŚ/приемные родители -sk: adoptĂ­vny otec/adoptnĂ­vna matka/adoptĂ­vny rodiÄŤia -sl: posvojitveni oÄŤe/posvojitvena mati/posvojitveni starši -sv: adoptivfar/adoptivmor/adoptivföräldrar + a grandfather/a grandmother/a grandparent +af: 'n oupa/'n ouma/'n grootouer +bg: Đ´ŃŹĐ´Đľ/баба/Đ´ŃŹĐ´Đľ или баба +br: un tad-kozh/ur vamm-gozh/un den-kar-kozh +ca: un avi/una Ă via/un(a) avi(a) +cs: dÄ›deÄŤek/babiÄŤka/prarodiÄŤ +da: en bedstefader/en bedstemoder/en bedsteforælder +de: ein:d:+em GroĂźvater/eine:d:+r GroĂźmutter/ein:d:+em GroĂźelternteil +en: a grandfather/a grandmother/a grandparent +eo: avo/avino/av(in)o +es: un abuelo/una abuela/un(a) abuelo(a) +et: vanaisa/vanaema/vanavanem:g:+a +fi: isoisä:g:+n/isoäiti:g:--din/isovanhempi:g:--man +fr: un grand-père/une grand-mère/un grand-parent +he: סב×/ ×ˇ×‘×Ş× +is: afi/amma/afi og amma +it: un nonno/una nonna/un(a) nonno(a) +lv: vectÄ“vs/vecmamma/vecvecÄki +nl: een grootvader/een grootmoeder/een grootouder +no: bestefar/bestemor/en av besteforeldrene +oc: un grand/una grand/un(a) grand +pl: dziadek/babka/dziadkowie +pt: um avĂ´/uma avĂł/um(a) avĂ´(Ăł) +ro: un bunic/o bunica/bunici +ru: дедŃŃка/бабŃŃка/прародитель +sk: dedo/babka/prarodiÄŤ +sl: dedka/babice/starega starša +sv: farfar/farmor/en farförälder/morfar/mormor/en morförälder - adoptive son/adoptive daughter/adoptive child -af: aangenome seun/aangenome dogter/aangenome kind -bg: ĐľŃиновен Ńин/ĐľŃиновена дъщеря/ĐľŃиновено дете -br: advab/adverc'h/advugel -ca: fill adoptiu/filla adoptiva/fill(a) adoptiu(iva) -cs: adoptivnĂ­ syn/adoptivnĂ­ dcera/adoptivnĂ­ dĂ­tÄ› -da: adoptivsøn/adoptivdatter/adoptivbarn -de: Adoptivsohn/Adoptivtochter/Adoptivkind -en: adoptive son/adoptive daughter/adoptive child -eo: adoptita filo/adoptita filino/adoptita ido -es: hijo adoptivo/hija adoptiva/hijo(a) adoptivo(a) -et: adopteeritud poeg/adopteeritud tĂĽtar/adopteeritud laps -fi: ottopoika/ottotytär/ottolapsi -fr: fils adoptif/fille adoptive/enfant adoptif -he: בן חורג/ בת חורגת/ ילד חורג -is: kjörsonur/kjördĂłttir/kjörbarn -it: figlio adottivo/figlia adottiva/figlio addotivo -lv: padÄ“ls/pameita/pabÄ“rns -nl: adoptiefzoon/adoptiefdochter/adoptiefkind -no: adoptivsønn/adoptivdatter/adoptivbarn -pl: syn adoptowany/cĂłrka adoptowana/dziecko adoptowane -pt: filho adoptivo/filha adoptiva/filho(a) adoptivo(a) -pt-br: filho adotivo/filha adotiva/filho(a) adotivo(a) -ro: fiu adoptiv/fica adoptiva/copil adoptiv -ru: приемный ŃŃ‹Đ˝/приемная дочь/приемны ребенок -sk: adoptĂ­vny syn/adoptĂ­vna dcĂ©ra/adoptĂ­vne dieĹĄa -sl: posvojenec/posvojenka/posvojeni otrok -sv: adoptivson/adoptivdotter/adoptivbarn + a grandson/a granddaughter/a grandchild +af: 'n kleinseun/'n kleindogter/'n kleinkind +bg: внŃĐş/внŃчка/внŃĐş или внŃчка +br: ur mab bihan/ur verc'h vihan/ur bugel bihan +ca: un net/una neta/un(a) net(a) +cs: vnuk/vnuÄŤka/vnouÄŤe +da: en sønne-søn/en sønne-datter/et barnebarn/en datter-søn/en datter-datter/et barnebarn +de: ein:d:+em Enkel/eine:d:+r Enkelin/ein:d:+em Enkelkind +en: a grandson/a granddaughter/a grandchild +eo: nepo/nepino/nep(in)o +es: un nieto/una nieta/un(a) nieto(a) +et: poja- või tĂĽtrepoeg:g:--ja/poja- või tĂĽtretĂĽtar:g:--re/lapselaps:g:+e +fi: pojan tai tyttären poika:g:---jan/pojan tai tyttären tytär:g:--tären/lapsenlapsi:g:-en +fr: un petit-fils/une petite-fille/un petit-enfant +he: נכד/ נכדה +is: barnabarn/barnabarn/barnabarn +it: un nipote/una nipote/un(a) nipote +lv: mazdÄ“ls/mazmeita/mazbÄ“rns +nl: een kleinzoon/een kleindochter/een kleinkind +no: barnebarn/barnebarn/barnebarn +oc: un felen/una felena/un(a) felen(a) +pl: wnuk/wnuczka/wnuki +pt: um neto/uma neta/um(a) neto(a) +ro: nepot/nepoata/nepoti +ru: внŃĐş/внŃчка/ребенок детей +sk: vnuk/vnuÄŤka/vnúča +sl: vnuk/vnukinja/pravnuk ali pravnukinja +sv: en sonson/en sondotter/ett barnbarn/en dotterson/en dotterdotter/ett barnbarn - advanced request -af: gevorderde versoek -bg: разŃирена заявка -br: klask araokaet -ca: recerca avançada -cs: rozšířenĂ˝ dotaz -da: avanceret søgning -de: Erweiterte Suche -en: advanced request -eo: serĉo pli preciza -es: consulta avanzada -et: laiendatud päring -fi: erityishaku -fr: requĂŞte Ă©voluĂ©e -he: בקשה מתקדמת -is: nákvæmari leit -it: richiesta avanzata -lv: paplašinÄtÄ meklēšana pÄ“c: -nl: gedetailleerd zoeken -no: avansert søk -pl: wyszukiwanie zaawansowane -pt: pesquisa complexa -ro: consultatie avansata -ru: раŃŃиренный Đ·Đ°ĐżŃ€ĐľŃ -sk: rozšírená poĹľiadavka -sl: napredno iskanje -sv: avancerad sökning -zh: é«çş§č®żé—®čŻ·ć±‚ + a great-grandfather/a great-grandmother/a great-grandparent +af: 'n oupagrootjie/'n oumagrootjie/'n grootjie +bg: прадядо/прабаба/прадядо или прабаба +br: un tad kuñv/ur vamm-guñv/ un den-kar-kozh-kuñv +ca: un besavi/una besĂ via/un(a) besavi(a) +cs: pradÄ›deÄŤek/prababiÄŤka/praprarodiÄŤ +da: en oldefader/en oldemoder/en oldeforælder +de: ein:d:+em UrgroĂźvater/eine:d:+r UrgroĂźmutter/ein:d:+em UrgroĂźelternteil +en: a great-grandfather/a great-grandmother/a great-grandparent +eo: praavo/praavino/praav(in)o +es: un bisabuelo/una bisabuela/un(a) bisabuelo(a) +et: vanavanaisa/vanavanaema/vanavanavanem:g:+a +fi: iso-isoisä:g:+n/iso-isoäiti:g:--din/iso-isovanhempi:g:--man +fr: un arrière-grand-père/une arrière-grand-mère/un arrière-grand-parent +he: רב-סב×/ רב-×ˇ×‘×Ş× +is: langafi/langamma/langafi og langamma +it: un bisnonno/una bisnonna/un(a) bisnonno(a) +lv: vecvectÄ“vs/vecvecmamma/vecvecvecÄki +nl: een overgrootvader/een overgrootmoeder/een overgrootouder +no: en oldefar/en oldemor/en av oldeforeldrene +oc: un rèiregrand/una rèiregrand/un(a) rèiregrand +pl: pradziadek/prababka/pradziadkowie +pt: um bisavĂ´/uma bisavĂł/um(a) bisavĂ´(Ăł) +ro: un strabunic/o strabunica/strabunici +ru: прапрадед/прапрабабка/прапрапрародитель +sk: pradedo/prababka/praprarodiÄŤ +sl: pradedek/prababica/prastari starš +sv: en gammel-farfar/en gammel-farmor/en gammel-farförälder/en gammel-morfar/en gammel-mormor/en gammel-morförälder - after -af: na -bg: Ńлед -br: goude -ca: desprĂ©s de -cs: po -da: efter -de: nach -en: after -eo: post -es: despuĂ©s -et: pärast -fi: jälkeen -fr: après -he: ×חרי -is: eftir -it: dopo -lv: pÄ“c -nl: na -no: etter -pl: po -pt: depois -ro: dupa -ru: поŃле -sk: po -sl: po -sv: efter - - after (date) -af: na -bg: Ńлед -br: goude -ca: desprĂ©s de -cs: po -da: efter -de: nach -en: after -eo: post -es: despuĂ©s de -et: pärast :p: -fi: jälkeen -fr: après -he: ×חרי -is: eftir -it: dopo -lv: pÄ“c -nl: na -no: etter -pl: po -pt: depois de -ro: dupa -ru: поŃле -sk: po -sl: po -sv: efter - - age -af: ouderdom -ar: عمر -bg: възраŃŃ‚ -br: oad -ca: edat -cs: vÄ›k -da: alder -de: Alter -en: age -eo: aÄťo -es: edad -et: vanus -fi: ikä -fr: âge -he: גיל -is: aldur -it: etĂ  -lv: vecums -nl: leeftijd -no: alder -pl: wiek -pt: idade -ro: etate -ru: возраŃŃ‚ -sk: vek -sl: starost -sv: ĂĄlder -zh: ĺą´éľ„ - - age at death -af: ouderdom by afsterwe -bg: на възраŃŃ‚ -br: p'edo -ca: a l'edat de -cs: vÄ›k v dobÄ› ĂşmrtĂ­ -da: alder ved død -de: Alter zum Todeszeitpunkt -en: age at death -eo: mortaÄťo -es: Edad de defunciĂłn -et: vanus surres -fi: elinikä -fr: âge au dĂ©cès -he: גיל במותו/מותה -is: dánaraldur -it: etĂ  alla morte -lv: miršanas vecums -nl: leeftijd bij overlijden -no: Livslengde -pl: wiek -pt: com a idade de -ro: etate la deces -ru: в возраŃте -sk: vek v dobe Ăşmrtia -sl: Livslängd -sv: livslängd -zh: äş«ĺą´ - - age at death: -af: ouderdom by afsterwe: -bg: на възраŃŃ‚ -br: p'edo -ca: a l'edat de -cs: vÄ›k v dobÄ› ĂşmrtĂ­ -da: alder ved død: -de: Alter: -en: age at death: -eo: mortaÄťo -es: a la edad de -et: vanus surres -fi: ikä kuollessa -fr: Ă  l’âge de -he: גיל במותו/מותה -is: dánaraldur -it: all'etĂ  di -lv: miršanas vecums: -nl: leeftijd bij overlijden: -no: alder -pl: wiek: -pt: com a idade de -ro: etate la deces -ru: в возраŃте -sk: vek v dobe Ăşmrtia -sl: Ĺľivel(a) -sv: livslängd: -zh: äş«ĺą´ - - age at %s birth date -de: Alter bei der Geburt von %s -en: Age at birth of %s -es: edad al nacimiento de %s -fr: âge Ă  la naissance de %s -it: etĂ  alla nascita di %s -nl: leeftijd bij de geboorte van %s - - a grandfather/a grandmother/a grandparent -af: 'n oupa/'n ouma/'n grootouer -bg: Đ´ŃŹĐ´Đľ/баба/Đ´ŃŹĐ´Đľ или баба -br: un tad-kozh/ur vamm-gozh/un den-kar-kozh -ca: un avi/una Ă via/un(a) avi(a) -cs: dÄ›deÄŤek/babiÄŤka/prarodiÄŤ -da: en bedstefader/en bedstemoder/en bedsteforælder -de: ein:d:+em GroĂźvater/eine:d:+r GroĂźmutter/ein:d:+em GroĂźelternteil -en: a grandfather/a grandmother/a grandparent -eo: avo/avino/av(in)o -es: un abuelo/una abuela/un(a) abuelo(a) -et: vanaisa/vanaema/vanavanem:g:+a -fi: isoisä:g:+n/isoäiti:g:--din/isovanhempi:g:--man -fr: un grand-père/une grand-mère/un grand-parent -he: סב×/ ×ˇ×‘×Ş× -is: afi/amma/afi og amma -it: un nonno/una nonna/un(a) nonno(a) -lv: vectÄ“vs/vecmamma/vecvecÄki -nl: een grootvader/een grootmoeder/een grootouder -no: bestefar/bestemor/en av besteforeldrene -pl: dziadek/babka/dziadkowie -pt: um avĂ´/uma avĂł/um(a) avĂ´(Ăł) -ro: un bunic/o bunica/bunici -ru: дедŃŃка/бабŃŃка/прародитель -sk: dedo/babka/prarodiÄŤ -sl: dedka/babice/starega starša -sv: farfar/farmor/en farförälder/morfar/mormor/en morförälder - - a grandson/a granddaughter/a grandchild -af: 'n kleinseun/'n kleindogter/'n kleinkind -bg: внŃĐş/внŃчка/внŃĐş или внŃчка -br: ur mab bihan/ur verc'h vihan/ur bugel bihan -ca: un net/una neta/un(a) net(a) -cs: vnuk/vnuÄŤka/vnouÄŤe -da: en sønne-søn/en sønne-datter/et barnebarn/en datter-søn/en datter-datter/et barnebarn -de: ein:d:+em Enkel/eine:d:+r Enkelin/ein:d:+em Enkelkind -en: a grandson/a granddaughter/a grandchild -eo: nepo/nepino/nep(in)o -es: un nieto/una nieta/un(a) nieto(a) -et: poja- või tĂĽtrepoeg:g:--ja/poja- või tĂĽtretĂĽtar:g:--re/lapselaps:g:+e -fi: pojan tai tyttären poika:g:---jan/pojan tai tyttären tytär:g:--tären/lapsenlapsi:g:-en -fr: un petit-fils/une petite-fille/un petit-enfant -he: נכד/ נכדה -is: barnabarn/barnabarn/barnabarn -it: un nipote/una nipote/un(a) nipote -lv: mazdÄ“ls/mazmeita/mazbÄ“rns -nl: een kleinzoon/een kleindochter/een kleinkind -no: barnebarn/barnebarn/barnebarn -pl: wnuk/wnuczka/wnuki -pt: um neto/uma neta/um(a) neto(a) -ro: nepot/nepoata/nepoti -ru: внŃĐş/внŃчка/ребенок детей -sk: vnuk/vnuÄŤka/vnúča -sl: vnuk/vnukinja/pravnuk ali pravnukinja -sv: en sonson/en sondotter/ett barnbarn/en dotterson/en dotterdotter/ett barnbarn - - a great-grandfather/a great-grandmother/a great-grandparent -af: 'n oupagrootjie/'n oumagrootjie/'n grootjie -bg: прадядо/прабаба/прадядо или прабаба -br: un tad kuñv/ur vamm-guñv/ un den-kar-kozh-kuñv -ca: un besavi/una besĂ via/un(a) besavi(a) -cs: pradÄ›deÄŤek/prababiÄŤka/praprarodiÄŤ -da: en oldefader/en oldemoder/en oldeforælder -de: ein:d:+em UrgroĂźvater/eine:d:+r UrgroĂźmutter/ein:d:+em UrgroĂźelternteil -en: a great-grandfather/a great-grandmother/a great-grandparent -eo: praavo/praavino/praav(in)o -es: un bisabuelo/una bisabuela/un(a) bisabuelo(a) -et: vanavanaisa/vanavanaema/vanavanavanem:g:+a -fi: iso-isoisä:g:+n/iso-isoäiti:g:--din/iso-isovanhempi:g:--man -fr: un arrière-grand-père/une arrière-grand-mère/un arrière-grand-parent -he: רב-סב×/ רב-×ˇ×‘×Ş× -is: langafi/langamma/langafi og langamma -it: un bisnonno/una bisnonna/un(a) bisnonno(a) -lv: vecvectÄ“vs/vecvecmamma/vecvecvecÄki -nl: een overgrootvader/een overgrootmoeder/een overgrootouder -no: en oldefar/en oldemor/en av oldeforeldrene -pl: pradziadek/prababka/pradziadkowie -pt: um bisavĂ´/uma bisavĂł/um(a) bisavĂ´(Ăł) -ro: un strabunic/o strabunica/strabunici -ru: прапрадед/прапрабабка/прапрапрародитель -sk: pradedo/prababka/praprarodiÄŤ -sl: pradedek/prababica/prastari starš -sv: en gammel-farfar/en gammel-farmor/en gammel-farförälder/en gammel-morfar/en gammel-mormor/en gammel-morförälder - - a great-grandson/a great-granddaughter/a great-grandchild -af: 'n agterkleinseun/'n agterkleindogter/'n agterkleinkind -bg: правнŃĐş/правнŃчка/правнŃĐş или правнŃчка -br: ur mab-kuñv /ur verc'h guñv/ ur bugel-kuñv -ca: un besnet/una besneta/un(a) besnet(a) -cs: pravnuk/pravnuÄŤka/pravnouÄŤata -da: en oldesøn/en oldedatter/et oldebarn -de: ein:d:+em Urenkel/eine:d:+r Urenkelin/ein:d:+em Urenkelkind -en: a great-grandson/a great-granddaughter/a great-grandchild -eo: pranepo/pranepino/pranep(in)o -es: un bisnieto/una bisnieta/un(a) bisnieto(a) -et: lapselapse poeg:g:--ja/lapselapse tĂĽtar:g:--re/lapselapselaps:g:+e -fi: lapsenlapsen poika:g:---jan/lapsenlapsen tytär:g:--tären/lapsenlapsen lapsi:g:-en -fr: un arrière-petit-fils/une arrière-petite-fille/un arrière-petit-enfant -he: נין/ × ×™× ×” -is: barnabarnabarn/barnabarnabarn/barnabarnabarn -it: un pronipote/una pronipote/un(a) pronipote -lv: mazmazdÄ“ls/mazmazmeita/mazmazbÄ“rni -nl: een achterkleinzoon/een achterkleindochter/een achterkleinkind -no: et oldebarn -pl: prawnuk/prawnuczka/prawnuki -pt: um bisneto/uma bisneta/um(a) bisneto(a) -ro: stranepot/stranepoata/stranepoti -ru: праправнŃĐş/праправнŃчка/праправнŃĐş -sk: pravnuk/pravnuÄŤka/pravnúča -sl: pravnuk/pravnukinja/pravnuk ali pravnukinja -sv: en sonsons son/en sonsons dotter/ett barnbarns barn/en sondotters son/en sondotters dotter/ett barnbarns barn/en dottersons son/en dottersons dotter/ett barnbarns barn/en dotterdotters son/en dotterdotters dotter/ett barnbarns barn + a great-grandson/a great-granddaughter/a great-grandchild +af: 'n agterkleinseun/'n agterkleindogter/'n agterkleinkind +bg: правнŃĐş/правнŃчка/правнŃĐş или правнŃчка +br: ur mab-kuñv /ur verc'h guñv/ ur bugel-kuñv +ca: un besnet/una besneta/un(a) besnet(a) +cs: pravnuk/pravnuÄŤka/pravnouÄŤata +da: en oldesøn/en oldedatter/et oldebarn +de: ein:d:+em Urenkel/eine:d:+r Urenkelin/ein:d:+em Urenkelkind +en: a great-grandson/a great-granddaughter/a great-grandchild +eo: pranepo/pranepino/pranep(in)o +es: un bisnieto/una bisnieta/un(a) bisnieto(a) +et: lapselapse poeg:g:--ja/lapselapse tĂĽtar:g:--re/lapselapselaps:g:+e +fi: lapsenlapsen poika:g:---jan/lapsenlapsen tytär:g:--tären/lapsenlapsen lapsi:g:-en +fr: un arrière-petit-fils/une arrière-petite-fille/un arrière-petit-enfant +he: נין/ × ×™× ×” +is: barnabarnabarn/barnabarnabarn/barnabarnabarn +it: un pronipote/una pronipote/un(a) pronipote +lv: mazmazdÄ“ls/mazmazmeita/mazmazbÄ“rni +nl: een achterkleinzoon/een achterkleindochter/een achterkleinkind +no: et oldebarn +oc: un rèirefelen/una rèirefelena/un(a) rèirefelen(a) +pl: prawnuk/prawnuczka/prawnuki +pt: um bisneto/uma bisneta/um(a) bisneto(a) +ro: stranepot/stranepoata/stranepoti +ru: праправнŃĐş/праправнŃчка/праправнŃĐş +sk: pravnuk/pravnuÄŤka/pravnúča +sl: pravnuk/pravnukinja/pravnuk ali pravnukinja +sv: en sonsons son/en sonsons dotter/ett barnbarns barn/en sondotters son/en sondotters dotter/ett barnbarns barn/en dottersons son/en dottersons dotter/ett barnbarns barn/en dotterdotters son/en dotterdotters dotter/ett barnbarns barn a great-nephew/a great-niece af: 'n agterneef/'n agterniggie @@ -1535,6 +1222,7 @@ lv: brÄÄĽa/mÄsas mazdÄ“ls/mazmeita nl: een achterneef/een achternicht no: en grandnevø/en grandniese +oc: un rèirenebot/una rèireneboda pl: wnuk brata lub siostry/wnuczka brata lub siostry pt: um sobrinho-neto/uma sobrinha-neta ro: stranepot/stranepoata/stranepoti @@ -1563,6 +1251,7 @@ lv: vectÄ“va/vecmamas brÄlis/mÄsa nl: een oudoom/een oudtante no: en grandonkel/en grandtante +oc: un rèironcle/una rèiretanta pl: brat dziadka lub babki/siostra dziadka lub babki pt: um tio-avĂ´/uma tia-avĂł ro: frate de bunici/sara de bunici @@ -1591,6 +1280,7 @@ lv: pusbrÄlis/pusmÄsa/pusbÄ“rns nl: een halfbroer/een halfzuster/een halfbroer of halfzuster no: en halvbror/en halvsøster/en halvsøsken +oc: un frairastre/una sorrastra/un frairastre o una sorrastra pl: brat przyrodni/siostra przyrodnia/przyrodni brat lub siostra pt: um meio-irmĂŁo/uma meia-irmĂŁ/um(a) meio(a) irmĂŁo(ĂŁ) ro: frate vitreg/sora vitrega/surori sau frati vitregi @@ -1599,6 +1289,520 @@ sl: polbrata/polsestra/polbrat ali polsestra sv: en halvbror/en halvsyster/ett halvsyskon + a nephew/a niece +af: 'n broerskind/'n susterskind +bg: племенник/племенница +br: un niz/un nizez +ca: un nebot/una neboda +cs: synovec/neteĹ™ +da: en nevø/en niece +de: ein:d:+em Neffe:d:+n/eine:d:+r Nichte +en: a nephew/a niece +eo: nevo/nevino +es: un sobrino/a sobrina +et: venna- või õepoeg:g:--ja/venna- või õetĂĽtar:g:--re +fi: veljen- tai sisarenpoika:g:---jan/veljen- tai sisarentytär:g:--tären +fr: un neveu/une nièce +he: ×חיין/ ×חיינית +is: bróður(systur)sonur/bróður(systur)dĂłttir +it: un nipote/una nipote +lv: brÄÄĽa/mÄsas dÄ“ls/meita +nl: een neef/een nicht (oom- of tantezegger) +no: nevø/niese +oc: un nebot/una neboda +pl: bratanek lub siostrzeniec/bratanica lub siostrzenica +pt: um sobrinho/uma sobrinha +ro: nepot/nepoata/nepoti +ru: племянник/племянница +sk: synovec/neter +sl: neÄŤak/neÄŤakinja/neÄŤak ali neÄŤakinja +sv: en nevö/en niece + + a son-in-law/a daughter-in-law +af: 'n skoonseun/'n skoondogter +bg: ŃъпрŃĐł на дъщеря/ŃъпрŃга на Ńин +br: mabeg/merc'heg +ca: un gendre/una jove +cs: zeĹĄ/snacha +da: en svigersøn/en svigerdatter +de: ein Schwiegersohn/eine Schwiegertochter +en: a son-in-law/a daughter-in-law +eo: bofilo/bofilino +es: un yerno/una nuera +et: väimees:g:--he/minia +fi: vävy:g:+n/miniä:g:+n +fr: un beau-fils/une belle-fille +he: חתן/ כלה +is: tengdasonur/tengdadĂłttir +it: un genero/una nuora +lv: znots/vedekla +nl: schoonzoon/schoondochter +no: svigersønn/svigerdatter +oc: un gendre/una nòra +pl: zięć/synowa +pt: um genro/uma nora +ro: ginere/nora +ru: Đ·ŃŹŃ‚ŃŚ/невеŃтка +sk: zaĹĄ/nevesta +sl: zet/snaha +sv: en mĂĄg/en svärdotter + + a son/a daughter/a child +af: 'n seun/'n dogter/'n kind +bg: Ńин/дъщеря/дете +br: ur mab/ur verc'h/ur bugel +ca: un fill/una filla/un(a) fill(a) +cs: syn/dcera/dĂ­tÄ› +da: en søn/en datter/et barn +de: ein:d:+em Sohn/eine:d:+r Tochter/ein:d:+em Kind +en: a son/a daughter/a child +eo: filo/filino/ido +es: un hijo/una hija/un(a) hijo(a) +et: poeg:g:--ja/tĂĽtar:g:--re/laps:g:+e +fi: poika:g:---jan/tytär:g:--tären/lapsi:g:-en +fr: un fils/une fille/un enfant +he: בן/ בת/ ילד +is: sonur/dĂłttir/barn +it: un figlio/una figlia/un(a) figlio(a) +lv: dÄ“ls/meita/bÄ“rns +nl: een zoon/een dochter/een kind +no: sønn/datter/barn +oc: un filh/una filha/un(a) filh(a) +pl: syn/cĂłrka/dziecko +pt: um filho/uma filha/um(a) filho(a) +ro: fiu/fica/copil +ru: ŃŃ‹Đ˝/дочь/ребенок +sk: syn/dcĂ©ra/dieĹĄa +sl: sin/hÄŤerka/otrok +sv: en son/en dotter/ett barn + + about (date) +af: ongeveer +bg: около +br: war-dro +ca: al voltant de +cs: kolem +da: omkring +de: ca. +en: about +eo: ĉirkaĂą +es: alrededor de +et: umbes :i: +fi: noin +fr: vers +he: בערך +is: um +it: circa +lv: ap +nl: circa +no: ca +oc: circa +pl: okoĹ‚o +pt: cerca +ro: circa +ru: около +sk: okolo +sl: pribliĹľno +sv: omkring + + about (short date) +af: ca +bg: ca +br: ca +ca: ca +cs: ca +da: ca +de: ca +en: ca +eo: ca +es: ca +et: ca +fi: ca +fr: ca +he: ca +is: ca +it: ca +lv: ca +nl: ca +no: ca +oc: ca +pl: ca +pt: ca +pt-br: ca +ro: ca +ru: ca +sk: ca +sl: ca +sv: ca +zh: ca + + access +af: toegang +bg: Đ´ĐľŃŃ‚ŃŠĐż +br: mont-e-barzh +ca: accĂ©s +cs: přístup +da: adgang +de: Zugriff +en: access +eo: eniro +es: acceso +et: ligipääs +fi: pääsy +fr: accès +he: כניסה +is: aĂ°gangur +it: accesso +lv: piekÄĽuve/atslÄ“ga +nl: toegang +no: tilgang +oc: accès +pl: dostÄ™p +pt: acesso +ro: acces +ru: Đ´ĐľŃŃ‚ŃĐż +sk: prĂ­stup +sl: dostop +sv: tillträde + + add +af: byvoeg +bg: добавяне на +br: ouzhpennañ +ca: afegir +cs: pĹ™idat :a: +da: tilføj +de: hinzufĂĽgen +before +en: add +eo: aldoni :a: +es: agregar +et: lisa +fi: lisää +fr: ajouter +he: הוספה +is: bæta viĂ° +it: aggiungere +lv: pievienot +nl: invoeren +before +no: tilføy +oc: apondre +pl: dodaj :a: +pt: acrescentar +ro: adauga +ru: добавить :a: +sk: pridaĹĄ :a: +sl: dodaj +sv: lägg till + + add base notes +af: byvoeg notas +bg: добавяне на бележки +br: ouzhpennañ notennoĂą +ca: afegir notes +cs: pĹ™idat :a: poznámky +da: tilføj noter +de: hinzufĂĽgen Notizen +en: add notes +eo: aldoni :a: notoj:a:+n +es: agregar notas +et: lisa märkused:g:-id +fi: lisää lisätietoja +fr: saisir une chronique +he: הערות הוספה +is: bæta viĂ° athugasemdum +it: aggiungere note +lv: pievienot piezÄ«me(s) +nl: invoeren notities +no: tilføy notater +oc: apondre de nòtas +pl: dodaj :a: uwagi +pt: acrescentar notas +ro: adauga note +ru: добавить :a: заметки +sk: pridaĹĄ :a: poznámky +sl: dodaj zapiski +sv: lägg till noteringar + + add picture +af: byvoeg prent +bg: добавяне на изображение +br: ouzhpennañ skeudenn +ca: afegir imatge +cs: pĹ™idat :a: obrázek +da: tilføj billede +de: hinzufĂĽgen Bild +en: add Picture +eo: aldoni :a: bildo:a:+n +es: agregar imagen +et: lisa pilt +fi: lisää kuva +fr: ajouter portrait +he: תמונה הוספה +is: bæta viĂ° mynd +it: aggiungere immagine +lv: pievienot attÄ“li +nl: invoeren beeld +no: tilføy bilde +oc: apondre un imatge +pl: dodaj :a: ilustracja:a:-Ä™ +pt: acrescentar imagem +ro: adauga imagine +ru: добавить :a: ĐşĐ°Ń€Ń‚Đ¸Đ˝ĐşŃ +sl: dodaj slika +sv: lägg till bild + + adoptive father/adoptive mother/adoptive parents +af: aangenome vader/angenome moeder/aangenome ouers +bg: ĐľŃиновител/ĐľŃиновителка/ĐľŃиновители +br: adtad/advamm/adkerent +ca: pare adoptiu/mare adoptiva/pares adoptius +cs: adoptivnĂ­ otec/adoptivnĂ­ matka/adoptivnĂ­ rodiÄŤe +da: adoptivfader/adoptivmoder/adoptivforældre +de: Adoptivvater/Adoptivmutter/Adoptiveltern +en: adoptive father/adoptive mother/adoptive parents +eo: adoptinta patro/adoptinta patrino/adoptintaj gepatroj +es: padre adoptivo/madre adoptiva/padres adoptivos +et: adoptiivisa/adoptiivema/adoptiivvanemad +fi: ottoisä/ottoäiti/ottovanhemmat +fr: père adoptif/mère adoptive/parents adoptifs +he: ×ב חורג/ ×ם חורגת/ הורים חורגים +is: kjörfaĂ°ir/kjörmóðir/kjörforeldrar +it: padre adottivo/madre adottiva/genitori adottivi +lv: patÄ“vs/pamÄte/pavecÄki adoptive parents +nl: adoptiefvader/adoptiefmoeder/adoptiefouders +no: adoptivfar/adoptivmor/adoptivforeldre +oc: paire adoptiu/maire adoptiva/parents adoptius +pl: przybrany ojciec/przybrana matka/przybrani rodzice +pt: pai adoptivo/mĂŁe adoptiva/pais adoptivos +pt-br: pai adotivo/mĂŁe adotiva/pais adotivos +ro: tatal adoptiv/mama adoptiva/parinti adoptivi +ru: приемный отец/приемная ĐĽĐ°Ń‚ŃŚ/приемные родители +sk: adoptĂ­vny otec/adoptnĂ­vna matka/adoptĂ­vny rodiÄŤia +sl: posvojitveni oÄŤe/posvojitvena mati/posvojitveni starši +sv: adoptivfar/adoptivmor/adoptivföräldrar + + adoptive son/adoptive daughter/adoptive child +af: aangenome seun/aangenome dogter/aangenome kind +bg: ĐľŃиновен Ńин/ĐľŃиновена дъщеря/ĐľŃиновено дете +br: advab/adverc'h/advugel +ca: fill adoptiu/filla adoptiva/fill(a) adoptiu(iva) +cs: adoptivnĂ­ syn/adoptivnĂ­ dcera/adoptivnĂ­ dĂ­tÄ› +da: adoptivsøn/adoptivdatter/adoptivbarn +de: Adoptivsohn/Adoptivtochter/Adoptivkind +en: adoptive son/adoptive daughter/adoptive child +eo: adoptita filo/adoptita filino/adoptita ido +es: hijo adoptivo/hija adoptiva/hijo(a) adoptivo(a) +et: adopteeritud poeg/adopteeritud tĂĽtar/adopteeritud laps +fi: ottopoika/ottotytär/ottolapsi +fr: fils adoptif/fille adoptive/enfant adoptif +he: בן חורג/ בת חורגת/ ילד חורג +is: kjörsonur/kjördĂłttir/kjörbarn +it: figlio adottivo/figlia adottiva/figlio addotivo +lv: padÄ“ls/pameita/pabÄ“rns +nl: adoptiefzoon/adoptiefdochter/adoptiefkind +no: adoptivsønn/adoptivdatter/adoptivbarn +oc: filh adoptiu/filha adoptiva/filh(a) adoptiu(iva) +pl: syn adoptowany/cĂłrka adoptowana/dziecko adoptowane +pt: filho adoptivo/filha adoptiva/filho(a) adoptivo(a) +pt-br: filho adotivo/filha adotiva/filho(a) adotivo(a) +ro: fiu adoptiv/fica adoptiva/copil adoptiv +ru: приемный ŃŃ‹Đ˝/приемная дочь/приемны ребенок +sk: adoptĂ­vny syn/adoptĂ­vna dcĂ©ra/adoptĂ­vne dieĹĄa +sl: posvojenec/posvojenka/posvojeni otrok +sv: adoptivson/adoptivdotter/adoptivbarn + + advanced request +af: gevorderde versoek +bg: разŃирена заявка +br: klask araokaet +ca: recerca avançada +cs: rozšířenĂ˝ dotaz +da: avanceret søgning +de: Erweiterte Suche +en: advanced request +eo: serĉo pli preciza +es: consulta avanzada +et: laiendatud päring +fi: erityishaku +fr: requĂŞte Ă©voluĂ©e +he: בקשה מתקדמת +is: nákvæmari leit +it: richiesta avanzata +lv: paplašinÄtÄ meklēšana pÄ“c: +nl: gedetailleerd zoeken +no: avansert søk +oc: recèrca avançada +pl: wyszukiwanie zaawansowane +pt: pesquisa complexa +ro: consultatie avansata +ru: раŃŃиренный Đ·Đ°ĐżŃ€ĐľŃ +sk: rozšírená poĹľiadavka +sl: napredno iskanje +sv: avancerad sökning +zh: é«çş§č®żé—®čŻ·ć±‚ + + after +af: na +bg: Ńлед +br: goude +ca: desprĂ©s de +cs: po +da: efter +de: nach +en: after +eo: post +es: despuĂ©s +et: pärast +fi: jälkeen +fr: après +he: ×חרי +is: eftir +it: dopo +lv: pÄ“c +nl: na +no: etter +oc: après +pl: po +pt: depois +ro: dupa +ru: поŃле +sk: po +sl: po +sv: efter + + after (date) +af: na +bg: Ńлед +br: goude +ca: desprĂ©s de +cs: po +da: efter +de: nach +en: after +eo: post +es: despuĂ©s de +et: pärast :p: +fi: jälkeen +fr: après +he: ×חרי +is: eftir +it: dopo +lv: pÄ“c +nl: na +no: etter +oc: après +pl: po +pt: depois de +ro: dupa +ru: поŃле +sk: po +sl: po +sv: efter + + age +af: ouderdom +ar: عمر +bg: възраŃŃ‚ +br: oad +ca: edat +cs: vÄ›k +da: alder +de: Alter +en: age +eo: aÄťo +es: edad +et: vanus +fi: ikä +fr: âge +he: גיל +is: aldur +it: etĂ  +lv: vecums +nl: leeftijd +no: alder +oc: atge +pl: wiek +pt: idade +ro: etate +ru: возраŃŃ‚ +sk: vek +sl: starost +sv: ĂĄlder +zh: ĺą´éľ„ + + age at %s birth date +de: Alter bei der Geburt von %s +en: Age at birth of %s +es: edad al nacimiento de %s +fi: Ikä %s :n syntyessä +fr: âge Ă  la naissance de %s +it: etĂ  alla nascita di %s +nl: leeftijd bij de geboorte van %s +no: Alder ved fødsel til %s +oc: atge a la naissença de %s +pt: idade aquando do nascimento de %s +sv: ĂĄlder vid %s födelsedatum + + age at death +af: ouderdom by afsterwe +bg: на възраŃŃ‚ +br: p'edo +ca: a l'edat de +cs: vÄ›k v dobÄ› ĂşmrtĂ­ +da: alder ved død +de: Alter zum Todeszeitpunkt +en: age at death +eo: mortaÄťo +es: Edad de defunciĂłn +et: vanus surres +fi: elinikä +fr: âge au dĂ©cès +he: גיל במותו/מותה +is: dánaraldur +it: etĂ  alla morte +lv: miršanas vecums +nl: leeftijd bij overlijden +no: Livslengde +oc: atge al decès +pl: wiek +pt: com a idade de +ro: etate la deces +ru: в возраŃте +sk: vek v dobe Ăşmrtia +sl: Livslängd +sv: livslängd +zh: äş«ĺą´ + + age at death: +af: ouderdom by afsterwe: +bg: на възраŃŃ‚ +br: p'edo +ca: a l'edat de +cs: vÄ›k v dobÄ› ĂşmrtĂ­ +da: alder ved død: +de: Alter: +en: age at death: +eo: mortaÄťo +es: a la edad de +et: vanus surres +fi: ikä kuollessa +fr: Ă  l’âge de +he: גיל במותו/מותה +is: dánaraldur +it: all'etĂ  di +lv: miršanas vecums: +nl: leeftijd bij overlijden: +no: alder +oc: a l'atge de +pl: wiek: +pt: com a idade de +ro: etate la deces +ru: в возраŃте +sk: vek v dobe Ăşmrtia +sl: Ĺľivel(a) +sv: livslängd: +zh: äş«ĺą´ + alias af: alias bg: именŃва Ńе още @@ -1619,6 +1823,7 @@ lv: pieņemtais vÄrds nl: alias no: alias +oc: escaissat(da) pl: alias pt: alias pt-br: apelido @@ -1648,6 +1853,7 @@ lv: dzÄ«vs nl: niet overleden no: lever +oc: viu/viva/viu(va) pl: osoba ĹĽyjÄ…ca pt: nĂŁo falecido/nĂŁo falecida/nĂŁo falecido(a) ro: in viata @@ -1676,6 +1882,7 @@ lv: visi Ä«pašumi nl: alle plaatsen no: alle steder +oc: totes los domenis pl: wszystkie domeny pt: todos os lugares ro: toate localitatile @@ -1704,6 +1911,7 @@ lv: visi tituli nl: alle titels no: alle titler +oc: totes los tĂ­tols pl: wszystkie tytuĹ‚y pt: todos os tĂ­tulos ro: toate titlurile @@ -1732,6 +1940,7 @@ lv: alfabÄ“tiskÄ kÄrtÄ«bÄ nl: alfabetische volgorde no: alfabetisk rekkefølge +oc: òrdre alfabetic pl: alfabetycznie pt: ordem alfabĂ©tica ro: alfabetica @@ -1760,6 +1969,7 @@ lv: arÄ« nl: ook no: ogsĂĄ +oc: tanben pl: takĹĽe pt: tambĂ©m ro: si @@ -1788,6 +1998,7 @@ lv: sencis nl: een voorouder no: en ane +oc: un aujòl pl: przodek pt: um antepassado/uma antepassada ro: un strabun @@ -1796,6 +2007,35 @@ sl: prednik sv: en ana + an uncle/an aunt +af: 'n oom/'n tante +bg: чичо/леля/вŃйчо/леля +br: un eontr/ur voereb +ca: un oncle/una tia +cs: strĂ˝c/teta +da: en onkel/en tante +de: ein:d:+em Onkel/eine:d:+r Tante +en: an uncle/an aunt +eo: onklo/onklino +es: un tĂ­o/una tĂ­a +et: onu/tädi +fi: setä:g:--dän/täti:g:--din/eno:g:+n/täti:g:--din +fr: un oncle/une tante +he: דוד/ דודה +is: föður(móður)bróðir/föður(móður)systir +it: uno zio/una zia +lv: onkulis/tante +nl: een oom/een tante +no: onkel/tante +oc: un oncle/una tanta +pl: stryj lub wuj/ciotka +pt: um tio/uma tia +ro: un unchi/o matusa +ru: Đ´ŃŹĐ´ŃŹ/тетя +sk: strĂ˝c/teta +sl: stric/teta +sv: en farbror/en faster/en morbror/en moster + ancestors af: voorouers bg: предци @@ -1816,6 +2056,7 @@ lv: senÄŤi nl: voorouders no: forfedre +oc: ascendents pl: przodkowie pt: antepassados ro: strabuni @@ -1845,6 +2086,7 @@ lv: senÄŤi nl: voorouders no: forfedre +oc: d'aujòls pl: przodkowie pt: antepassados ro: strabuni @@ -1874,6 +2116,7 @@ lv: un nl: en no: og +oc: e pl: i pt: e ro: si @@ -1883,34 +2126,6 @@ sv: och zh: ĺ’Ś - a nephew/a niece -af: 'n broerskind/'n susterskind -bg: племенник/племенница -br: un niz/un nizez -ca: un nebot/una neboda -cs: synovec/neteĹ™ -da: en nevø/en niece -de: ein:d:+em Neffe:d:+n/eine:d:+r Nichte -en: a nephew/a niece -eo: nevo/nevino -es: un sobrino/a sobrina -et: venna- või õepoeg:g:--ja/venna- või õetĂĽtar:g:--re -fi: veljen- tai sisarenpoika:g:---jan/veljen- tai sisarentytär:g:--tären -fr: un neveu/une nièce -he: ×חיין/ ×חיינית -is: bróður(systur)sonur/bróður(systur)dĂłttir -it: un nipote/una nipote -lv: brÄÄĽa/mÄsas dÄ“ls/meita -nl: een neef/een nicht (oom- of tantezegger) -no: nevø/niese -pl: bratanek lub siostrzeniec/bratanica lub siostrzenica -pt: um sobrinho/uma sobrinha -ro: nepot/nepoata/nepoti -ru: племянник/племянница -sk: synovec/neter -sl: neÄŤak/neÄŤakinja/neÄŤak ali neÄŤakinja -sv: en nevö/en niece - anniversaries af: herdenkinge bg: годиŃнини @@ -1931,6 +2146,7 @@ lv: gadadienas nl: verjaardagen no: merkedager +oc: aniversaris pl: rocznice pt: aniversários ro: aniversare @@ -1959,6 +2175,7 @@ lv: dzimšanas dienas nl: verjaardagen no: fødselsdager +oc: aniversaris de naissença pl: urodziny pt: aniversários pt-br: aniversários de nascimento @@ -1989,6 +2206,7 @@ lv: miršanas piemiņas dienas nl: verjaardagen van overleden mensen no: merkedager for avdøde personer +oc: aniversaris de mond defuntats pl: rocznice urodzin i Ĺ›mierci osĂłb nieĹĽyjÄ…cych pt: aniversários das pessoas falecidas ro: aniversare a persoanelor decedate @@ -2018,6 +2236,7 @@ lv: kÄzu dienas nl: huwelijksverjaardagen no: bryllupsdager +oc: aniversaris de maridatge pl: rocznice Ĺ›lubĂłw pt: aniversários de casamento ro: aniversare de mariaj @@ -2027,34 +2246,6 @@ sv: bröllopsdagar zh: 结婚于今日的记录 - an uncle/an aunt -af: 'n oom/'n tante -bg: чичо/леля/вŃйчо/леля -br: un eontr/ur voereb -ca: un oncle/una tia -cs: strĂ˝c/teta -da: en onkel/en tante -de: ein:d:+em Onkel/eine:d:+r Tante -en: an uncle/an aunt -eo: onklo/onklino -es: un tĂ­o/una tĂ­a -et: onu/tädi -fi: setä:g:--dän/täti:g:--din/eno:g:+n/täti:g:--din -fr: un oncle/une tante -he: דוד/ דודה -is: föður(móður)bróðir/föður(móður)systir -it: uno zio/una zia -lv: onkulis/tante -nl: een oom/een tante -no: onkel/tante -pl: stryj lub wuj/ciotka -pt: um tio/uma tia -ro: un unchi/o matusa -ru: Đ´ŃŹĐ´ŃŹ/тетя -sk: strĂ˝c/teta -sl: stric/teta -sv: en farbror/en faster/en morbror/en moster - any individual in the base de: jede beliebige Person im Stammbaum en: any individual in the family tree @@ -2064,6 +2255,8 @@ it: un qualsiasi individuo dell’albero nl: om het even welk individu van de stamboom no: en person i ditt tre +oc: quin individĂş que siá dins l'arbre +pt: qualquer pessoa da árvore sv: en person i ditt träd are @@ -2086,6 +2279,7 @@ lv: ir nl: zijn no: er +oc: son pl: to pt: sĂŁo ro: sint @@ -2094,6 +2288,19 @@ sl: so sv: är + area code +de: Ortskennziffer +en: Code +es: CĂłdigo postal +fi: Postinumero +fr: Code Ville +it: CAP +nl: Postcode stad +no: Postnummer +oc: còde de comuna +pt: CĂłdigo postal +sv: Postnummer + ascendants tree de: Stammbaum der Vorfahren en: Family Tree @@ -2102,103 +2309,11 @@ fr: arbre d’ascendance it: albero d'ascendenza nl: Stamboom voorouders +no: Slektstre +oc: arbre d’ascendĂ©ncia +pt: árvore de ascendĂŞncia sv: Antavla - in (place) -de: in -en: in -es: en -fi: -fr: Ă  -it: a -nl: te -no: i -sv: i - - a %s cousin -af: 'n neef in die %s -de geslag/'n niggie in die %s -de geslag -bg: %sи братовчед/%sĐ° братовчедка -br: ur c'henderv a live an %s derez/ur geniterv a live an %s derez/ ur c'h(g)enderv(ez) a live an %s derez -ca: un cosĂ­ de %s grau/una cosina de %s grau/un(a) cosĂ­(na) de %s grau -cs: bratranec z %s kolena/sestĹ™enice z %s kolena -da: en fætter af %s grad/en kusine af %s grad -de: ein:d:+em Cousin %s Grades/eine:d:+r Cousine %s Grades -en: a %s cousin -eo: %s grada kuzo/%s grada kuzino/%s grada kuz(in)o -es: un primo en %s grado/una prima en %s grado/un(a) primo(a) en %s grado -et: %s astme nõbu:g:--o -fi: %s serkku:g:--un -fr: un cousin au %s degrĂ©/une cousine au %s degrĂ©/un(e) cousin(e) au %s degrĂ© -he: בן-דוד לדרגה %s/ בת-דוד לדרגה %s -is: systkynabarn %s -it: un cugino di %s grado/una cugina di %s grado/un(a) cugino(a) di %s grado -lv: %s brÄlÄ“ns/mÄsÄ«ca -nl: een neef in de %s generatie/een nicht in de %s generatie -no: %smenning -pl: kuzyn %s-tego stopnia/kuzynka %s-tego stopnia -pt: um primo em %s grau/uma prima em %s grau/um(a) primo(a) em %s grau -ro: un var de gradul %s -ru: %s-ий ĐşŃзен/%s-ŃŹ ĐşŃзина -sk: bratranec/sesternica z %s kolena -sl: bratranec v %s kolenu/sestriÄŤna v %s kolenu -sv: %smänning - - a son/a daughter/a child -af: 'n seun/'n dogter/'n kind -bg: Ńин/дъщеря/дете -br: ur mab/ur verc'h/ur bugel -ca: un fill/una filla/un(a) fill(a) -cs: syn/dcera/dĂ­tÄ› -da: en søn/en datter/et barn -de: ein:d:+em Sohn/eine:d:+r Tochter/ein:d:+em Kind -en: a son/a daughter/a child -eo: filo/filino/ido -es: un hijo/una hija/un(a) hijo(a) -et: poeg:g:--ja/tĂĽtar:g:--re/laps:g:+e -fi: poika:g:---jan/tytär:g:--tären/lapsi:g:-en -fr: un fils/une fille/un enfant -he: בן/ בת/ ילד -is: sonur/dĂłttir/barn -it: un figlio/una figlia/un(a) figlio(a) -lv: dÄ“ls/meita/bÄ“rns -nl: een zoon/een dochter/een kind -no: sønn/datter/barn -pl: syn/cĂłrka/dziecko -pt: um filho/uma filha/um(a) filho(a) -ro: fiu/fica/copil -ru: ŃŃ‹Đ˝/дочь/ребенок -sk: syn/dcĂ©ra/dieĹĄa -sl: sin/hÄŤerka/otrok -sv: en son/en dotter/ett barn - - a son-in-law/a daughter-in-law -af: 'n skoonseun/'n skoondogter -bg: ŃъпрŃĐł на дъщеря/ŃъпрŃга на Ńин -br: mabeg/merc'heg -ca: un gendre/una jove -cs: zeĹĄ/snacha -da: en svigersøn/en svigerdatter -de: ein Schwiegersohn/eine Schwiegertochter -en: a son-in-law/a daughter-in-law -eo: bofilo/bofilino -es: un yerno/una nuera -et: väimees:g:--he/minia -fi: vävy:g:+n/miniä:g:+n -fr: un beau-fils/une belle-fille -he: חתן/ כלה -is: tengdasonur/tengdadĂłttir -it: un genero/una nuora -lv: znots/vedekla -nl: schoonzoon/schoondochter -no: svigersønn/svigerdatter -pl: zięć/synowa -pt: um genro/uma nora -ro: ginere/nora -ru: Đ·ŃŹŃ‚ŃŚ/невеŃтка -sk: zaĹĄ/nevesta -sl: zet/snaha -sv: en mĂĄg/en svärdotter - at the same time af: ter selfdertyd bg: едновременно @@ -2219,6 +2334,7 @@ lv: vienlaicÄ«gi nl: tegelijkertijd no: samtidig +oc: a l'encòp pl: zarazem pt: ao mesmo tempo ro: in acelas timp @@ -2243,6 +2359,7 @@ lv: vidÄ“jais dzÄ«ves ilgums nl: gemiddelde leeftijd bij overlijden no: gjennomsnittsalder ved død +oc: atge mejan de dĂ©cès pl: Ĺ›redni wiek Ĺ›mierci pt: idade mĂ©dia ao morrer ro: virsta media la deces @@ -2271,6 +2388,7 @@ lv: atpakaÄĽ nl: terug no: tilbake +oc: enrè pl: wstecz pt: voltar ro: inapoi @@ -2300,6 +2418,7 @@ lv: baptisms nl: doop no: dĂĄp +oc: baptisme pl: chrzest pt: baptismo pt-br: batismo @@ -2312,15 +2431,57 @@ de: Ort der Taufe en: Place of baptism es: lugar de bautismo +fi: Kastepaikka fr: lieu de baptĂŞme it: luogo del battesimo +nl: doopplaats +no: DĂĄpssted +oc: lòc de baptisme +pt: local de batismo +sv: dopplats baptism src de: Ort der Taufe en: Place of baptism es: lugar de bautismo +fi: Kastepaikka fr: lieu de baptĂŞme it: luogo del battesimo +nl: doopplaats +no: DĂĄpssted +oc: lòc de baptisme +pt: local de batismo +sv: dop + + baptized +af: gedoop +bg: кръŃтен/кръŃтена/кръŃтен(Đ°) +br: badezet +ca: batejat/batejada/batejat(ada) +cs: pokĹ™tÄ›n/pokĹ™tÄ›na +da: døbt +de: getauft +en: baptized +eo: baptita +es: bautizado/bautizada/bautizado(a) +et: ristitud +fi: kastettu +fr: baptisĂ©/baptisĂ©e/baptisĂ©(e) +he: לנצרות / × ×בלה לנצרות × ×בל +is: skĂ­rĂ°(ur) +it: battezzato/battezzata/battezzato(a) +lv: baptized +nl: gedoopt +no: døpt +oc: batejat/batejada/batejat(ada) +pl: chrzest +pt: baptizado/baptizada/baptizado(a) +pt-br: batizado/batizada/batizado(a) +ro: botezat/botezata/botezat +ru: крещеный +sk: pokrstenĂ˝/pokrstená +sl: krščen/krščena +sv: döpt base index notes af: notas @@ -2343,6 +2504,7 @@ lv: piezÄ«me(s) nl: notities no: notater +oc: nòtas pl: uwagi pt: notas ro: note @@ -2373,6 +2535,7 @@ lv: piezÄ«me(s) nl: notities no: notater +oc: cronica familiala pl: uwagi pt: notas ro: note @@ -2402,6 +2565,7 @@ lv: wizard piezÄ«me(s) nl: beheerder notities no: administratorer notater +oc: nòtas dels fachilhièrs pl: wizard uwagi pt: feiticeiros notas ro: magician note @@ -2410,34 +2574,18 @@ sl: ÄŤarovnik zapiski sv: administratörer noteringar - baptized -af: gedoop -bg: кръŃтен/кръŃтена/кръŃтен(Đ°) -br: badezet -ca: batejat/batejada/batejat(ada) -cs: pokĹ™tÄ›n/pokĹ™tÄ›na -da: døbt -de: getauft -en: baptized -eo: baptita -es: bautizado/bautizada/bautizado(a) -et: ristitud -fi: kastettu -fr: baptisĂ©/baptisĂ©e/baptisĂ©(e) -he: לנצרות / × ×בלה לנצרות × ×בל -is: skĂ­rĂ°(ur) -it: battezzato/battezzata/battezzato(a) -lv: baptized -nl: gedoopt -no: døpt -pl: chrzest -pt: baptizado/baptizada/baptizado(a) -pt-br: batizado/batizada/batizado(a) -ro: botezat/botezata/botezat -ru: крещеный -sk: pokrstenĂ˝/pokrstená -sl: krščen/krščena -sv: döpt + bat mitzvah +de: bat Mizwa +en: Bat Mitzvah +es: bat mitzvah +fi: Bar Mitzvah +fr: bat mitzvah +it: bat mitzvah (ebraico) +nl: Bat Mitswa +no: Bat Mitzvah +oc: bar mitzvah +pt: bar mitzvah +sv: Bat Mitzvah before af: voor @@ -2459,6 +2607,7 @@ lv: pirms nl: voor no: før +oc: abans pl: przed pt: antes ro: inainte @@ -2487,6 +2636,7 @@ lv: pirms nl: voor no: før +oc: abans pl: przed pt: antes de ro: inainte de @@ -2515,6 +2665,7 @@ lv: sÄkums (begin) nl: begin no: start +oc: començament pl: poczÄ…tek pt: começo ro: inceput @@ -2543,6 +2694,7 @@ lv: starp nl: tussen no: mellom +oc: entre pl: miÄ™dzy pt: entre ro: intre @@ -2556,8 +2708,14 @@ de: Bibliographie en: bibliography es: bibliografĂ­a +fi: bibliografia fr: bibliographie it: bibliografia +nl: bibliografie +no: bibliografi +oc: bibliografia +pt: bibliografia +sv: Bibliografi birth af: geboorte @@ -2579,6 +2737,7 @@ lv: dzimšana nl: geboorte no: fødsel +oc: naissença pl: urodzenie pt: nascimento ro: nastere @@ -2587,19 +2746,44 @@ sl: rojstva sv: födelse + birth date and birth place +de: Datum und Ort der Geburt +en: Date & Place of birth +es: fecha y lugar de nacimiento +fi: Syntymäaika ja -paikka +fr: date et lieu de naissance +it: data e luogo di nascita +nl: plaats en datum van geboorte +no: Fødselsdato og fødselssted +oc: data e lòc de naissença +pt: data e local de nascimento +sv: Födelsedatum och -plats + birth place de: Ort der Geburt en: Place of birth es: lugar de nacimiento +fi: Syntymäpaikka fr: lieu de naissance it: luogo di nascita +nl: geboorteplaats +no: Fødselssted +oc: lòc de naissença +pt: local de nascimento +sv: Födelseplats birth src de: Ouellenangabe-Geburt en: Source of birth es: fuente nacimiento +fi: Syntymätietojen lähde fr: source naissance it: fonte della nascita +nl: bron geboorte +no: Fødselskilde +oc: font de la naissença +pt: fonte nascimento +sv: Födelse birthdays af: verjaarsdae @@ -2621,6 +2805,7 @@ lv: dzimšanas dienas nl: verjaardagen no: fødselsdager +oc: aniversaris pl: urodziny pt: aniversários pt-br: aniversários de nascimento @@ -2631,13 +2816,6 @@ sv: födelsedagar zh: 出生于今日的记录 - birth date and birth place -de: Datum und Ort der Geburt -en: Date & Place of birth -es: fecha y lugar de nacimiento -fr: date et lieu de naissance -it: data e luogo di nascita - book of %s de: %s en: %s @@ -2647,6 +2825,8 @@ it: lista dei %s nl: lijst der %s no: liste over %s +oc: lista dels %s +pt: lista de %s sv: %s seznam book of ascendants @@ -2658,6 +2838,8 @@ it: libro d’ascendenza nl: boek met voorouders no: forfedre-bok +oc: libre d'ascendĂ©ncia +pt: livro de ascendĂŞncia sv: Förfädersbok border @@ -2680,6 +2862,7 @@ lv: mala nl: omranding no: kantlinje +oc: bordadura pl: granica pt: borda ro: bordura @@ -2709,6 +2892,7 @@ lv: dzimšanas nl: geboren no: født +oc: nascut/nascuda/nascut(uda) pl: urodzony/urodzona/urodzone pt: nascido/nascida/nascido(a) ro: nÄscut/nÄscutÄ/nÄscut @@ -2738,6 +2922,7 @@ lv: zars/zari nl: tak/takken no: gren/grener +oc: branca/brancas pl: linia/linie pt: ramo/ramos ro: ramura @@ -2766,6 +2951,7 @@ lv: bÄ“res nl: begrafenis no: begravelse +oc: sepultura pl: pogrzeb pt: enterro ro: inmormintare @@ -2778,15 +2964,27 @@ de: Ort der Bestattung en: Place of burial es: lugar de inhumaciĂłn +fi: Hautauspaikka fr: lieu d'inhumation it: luogo di sepoltura +nl: begraafplaats +no: Begravelsessted +oc: lòc de sepultura +pt: local de sepultamento +sv: Begravningsplats burial src de: Ouellenangabe-Bestattung en: Source of burial es: fuente inhumaciĂłn +fi: Hautaustietojen lähde fr: source inhumation it: fonte della sepoltura +nl: bron begrafenis +no: Begravelseskilde +oc: font de la sepultura +pt: fonte de sepultamento +sv: Begravning buried af: begrawe @@ -2808,6 +3006,7 @@ lv: apbedÄ«ts nl: begraven no: begravet +oc: enterrat/enterrada/enterrat(ada) pl: pochowany/pochowana/pochĂłwek pt: enterrado/enterrada/enterrado(a) ro: inmormintat @@ -2837,6 +3036,7 @@ lv: kalendÄrs/kalendÄri nl: kalender/kalenders no: kalender/kalendere +oc: calendièr/calendièrs pl: kalendarz/kalendarze pt: calendário/calendários ro: calendar/calendare @@ -2865,6 +3065,7 @@ lv: nerÄdÄ«t GeneWeb saites nl: zonder GeneWeb links no: uten GeneWeb koblinger +oc: anullar los ligams GeneWeb pl: pomiĹ„ Ĺ‚Ä…cza GeneWeb pt: cancelar os links Geneweb ro: anuleaza conexiuni GeneWeb @@ -2893,6 +3094,7 @@ lv: iespeejamais tÄ“vs/iespÄ“jamÄ mÄte/iespÄ“jamie vecÄki nl: kandidaat vader/kandidaat moeder/kandidaat ouders no: mulig far/mulig mor/mulige foreldre +oc: paire possible/maire possibla/parents possibles pl: prawdopodobny ojciec/prawdopodobna matka/prawdopodobni rodzice pt: suposto pai/suposta mĂŁe/supostos pais ro: tata posibil/mama posibila/parinti posibili @@ -2921,6 +3123,7 @@ lv: iespÄ“jamais dÄ“ls/iespÄ“jamÄ meita/iespÄ“jamais bÄ“rns nl: kandidaat zoon/kandidaat dochter/kandidaat kind no: mulig sønn/mulig datter/mulig barn +oc: filh possible/filha possibla/enfants possibles pl: prawdopodobny syn/prawdopodobna cĂłrka/prawdopodobne dzieci pt: suposto filho/suposta filha/supostos filhos ro: fiu posibil/fica posibila/copil posibil @@ -2949,6 +3152,7 @@ lv: nav iespÄ“jams piekÄĽĹ«t datu bÄzei nl: geen toegang tot bestand no: kan ikke nĂĄ databasen +oc: se pòt pas accedir a la basa pl: dostÄ™p do bazy jest niemoĹĽliwy pt: nĂŁo se pode aceder Ă  base pt-br: nĂŁo pode acessar a base @@ -2978,6 +3182,7 @@ lv: precÄ“tai personai nevar mainÄ«t dzimumu nl: kan het geslacht van een gehuwd persoon niet veranderen no: kan ikke endre kjønn til en gift person +oc: se pòt pas cambiar lo sèxe d'una persona maridada pl: zmiana pĹ‚ci osoby pozostajÄ…cej w zwiÄ…zku maĹ‚ĹĽeĹ„skim jest niemoĹĽliwa pt: nĂŁo se pode modificar o sexo de uma pessoa casada ro: nu pot schimba sexul unei persoane casatorite @@ -2988,11 +3193,18 @@ celebrities bg: знаменити хора +ca: Celebritats de: Bekannte Persönlichkeiten en: Famous people es: Personas Famosas -fr: Personnes CĂ©lèbres +fi: Kuuluisat henkilöt +fr: Personnes cĂ©lèbres it: Personaggi Celebri +nl: Bekende personen +no: Berømte personer +oc: Celebritats +pt: pessoas cĂ©lebres +sv: Celebriteter change children's names af: verander kinders se name @@ -3014,6 +3226,7 @@ lv: mainÄ«t bÄ“rnu vÄrdus nl: namen van kinderen wijzigen no: endre barnas navn +oc: cambiar los noms dels enfants pl: zmieĹ„ imiona dzieci pt: alterar os nomes dos filhos ro: schimba numele copiilor @@ -3022,6 +3235,48 @@ sl: spremeni imena otrok sv: ändra barnens namn + change it (the number) yourself +af: verander dit self +bg: променете Ńами номера +br: dibabit un niver all +ca: elegiu-ne un altre +cs: zmÄ›nit ÄŤĂ­slo +da: vælg et andet +de: ändere die Nummer selbst +en: change it yourself +eo: kaj ĹťanÄťu ion mem +es: escoja otro +et: muuda number ise +fi: muuta se itse +fr: choisissez-en un autre +he: ולשנות בעצמך +is: og breyttu ĂľvĂ­ sjálf(ur) +it: scieglietene un'altro +lv: nomainiet to +nl: verander het nummer zelf +no: endre det selv +oc: causissètz-vo'n autre +pl: zmieĹ„ numer wĹ‚asnorÄ™cznie +pt: escolha outro +ro: schimba numarul tu insasi +ru: измените его Ńами +sk: zmeniĹĄ ÄŤĂ­slo +sl: spremenite sami +sv: ändra det själv + + change name +de: Namenswechsel +en: Change of Name +es: cambio de apellido +fi: Nimen muuttaminen +fr: changement de nom +it: cambiamento di cognome +nl: Naamsverandering +no: Navneendring +oc: cambiament de nom +pt: modificar nome +sv: Namnbyte + changed order of children af: verander die volgorde van kinders bg: промяна в поŃледователноŃŃ‚Ń‚Đ° на децата @@ -3042,6 +3297,7 @@ lv: mainÄ«t bÄ“rnu secÄ«bu nl: volgorde van de kinderen veranderd no: rekkefølgen er endret for barna til +oc: cambiament de l'òrdre dels enfants pl: kolejność dzieci zostaĹ‚a zmieniona pt: mudar a ordem dos filhos ro: sa schimbat ordinea copiilor @@ -3050,40 +3306,36 @@ sl: zamenjan vrstni red otrok sv: ändrade ordningen för barnen + changed order of family's events +de: ändern der Reihenfolge familiäre Ereignisse +en: change order of family facts +es: cambio del orden de los acontecimientos familiares +fr: changement de l'ordre des Ă©vènements familiaux +it: modifica dell'ordine degli eventi di famiglia +oc: cambiament de l'òrdre dels eveniments familials +pt: modificar a ordem dos eventos familiares + changed order of marriages de: Die Reihenfolge der Ehen wurde geändert en: Ordering of marriages has been changed es: el orden de los matrimonios ha sido cambiado -fr: changement de l’ordre des mariages -it: l'ordine dei matrimoni è stato modificato - - change it (the number) yourself -af: verander dit self -bg: променете Ńами номера -br: dibabit un niver all -ca: elegiu-ne un altre -cs: zmÄ›nit ÄŤĂ­slo -da: vælg et andet -de: ändere die Nummer selbst -en: change it yourself -eo: kaj ĹťanÄťu ion mem -es: escoja otro -et: muuda number ise -fi: muuta se itse -fr: choisissez-en un autre -he: ולשנות בעצמך -is: og breyttu ĂľvĂ­ sjálf(ur) -it: scieglietene un'altro -lv: nomainiet to -nl: verander het nummer zelf -no: endre det selv -pl: zmieĹ„ numer wĹ‚asnorÄ™cznie -pt: escolha outro -ro: schimba numarul tu insasi -ru: измените его Ńами -sk: zmeniĹĄ ÄŤĂ­slo -sl: spremenite sami -sv: ändra det själv +fi: Avioliittojen järjestys on muuttunut +fr: changement de l’ordre des unions +it: modifica dell'ordine delle unioni +nl: rangorde huwelijken wijzigen +no: Rekkefølge av ekteskap er endret +oc: cambiament de l'òrdre de las unions +pt: modificar ordem das uniões +sv: Utbytt ordning för bröllop + + changed order of person's events +de: ändern der Reihenfolge bei Ereignissen des Individuums +en: change order of individual facts +es: cambio del orden de los acontecimientos del individuo +fr: changement de l'ordre des Ă©vènements individu +it: modifica dell'ordine degli eventi individuo +oc: cambiament de l'òrdre dels eveniments d'un individĂş +pt: modificar ordem dos eventos da pessoa child/children af: kind/kinders @@ -3106,6 +3358,7 @@ lv: bÄ“rns:a:-u/bÄ“rni nl: kind/kinderen no: barn/barn +oc: enfant/enfants pl: dziecko/dzieci pt: filho/filhos ro: copil/copii @@ -3135,6 +3388,7 @@ lv: bÄ“rnu vÄrdi mainÄ«ti nl: namen van kinderen gewijzigd no: barnas navn endret +oc: noms dels enfants cambiat pl: imiona dzieci zostaĹ‚y zmienione pt: nomes das crianças foram alterados ro: numele copiilor sa schimbat @@ -3163,6 +3417,7 @@ lv: spiest nl: klik no: klikk +oc: clicatz pl: kliknij pt: clicar ro: clic @@ -3191,6 +3446,7 @@ lv: spiest "%s" nl: klik "%s" no: klikk "%s" +oc: clicatz sus "%s" pl: kliknij "%s" pt: clicar "%s" ro: clicheaza pe %s @@ -3208,6 +3464,8 @@ it: un parente nl: een naaste no: en slektning +oc: un tanhent +pt: familiar prĂłximo sv: en släkting color @@ -3231,6 +3489,7 @@ lv: krÄsa nl: kleur no: farge +oc: color pl: kolor pt: cĂ´r ro: culoare @@ -3259,6 +3518,7 @@ lv: piebilde nl: commentaar no: kommentar +oc: comentari pl: uwagi pt: comentário ro: comentar @@ -3271,29 +3531,53 @@ de: vergleichen en: Compare es: comparar +fi: Vertaa fr: comparer it: paragonare +nl: vergelijken +no: Sammenlign +oc: comparar +pt: comparar +sv: Jämför compare selected revisions de: die ausgewählten Revisionen vergleichen en: View revision history es: comparar las revisiones seleccionadas +fi: Näytä tarkistushistoria fr: comparer les rĂ©visions sĂ©lectionnĂ©es it: paragonare le versioni selezionate +nl: geselecteerde revisies vergelijken +no: Vis revisjonshistorikk +oc: comparar las revisions seleccionadas +pt: comparar as revisões selecionadas +sv: Jämför utvalda revisioner compute all marriages de: Lebenspartner mit einschlieĂźen en: Include spouses es: incluir todos los cĂłnyuges +fi: Sisällytä puolisot fr: inclure tous les conjoints it: includere tutti i coniugi +nl: inbegrepen alle partners +no: Inkluder ektefeller +oc: inclusir totes los conjunts +pt: incluir todos os cĂ´njuges +sv: Jämför alla giftermĂĄl compute approximatives dates de: ungefähre Daten berĂĽcksichtigen en: Include unsure dates es: tener en cuenta las fechas aproximadas +fi: Sisällytä epävarmat päivämäärät fr: prendre en compte les dates approximatives it: prendere in considerazione le date approssimative +nl: rekening houden met approximatieve data +no: Inkluder usikre datoer +oc: inclusir totes los conjunts +pt: ter em conta as datas aproximadas +sv: Jämför approxamativa datum connections bg: потребителŃки връзки @@ -3311,6 +3595,7 @@ lv: radniecÄ«ba nl: connecties no: koblinger +oc: conneccions pl: poĹ‚Ä…czenie pt: conexões ro: conexiuni @@ -3339,6 +3624,7 @@ lv: asinsradniecÄ«ba nl: bloedverwantschap no: blodsbĂĄnd +oc: consanguinitat pl: pokrewieĹ„stwo pt: consanguinidade ro: consanguinitate @@ -3367,6 +3653,7 @@ lv: turpinÄt apvienošanu nl: doorgaan met samenvoegen no: fortsett sammenslĂĄing +oc: contunhar la fusion pl: kontynuuj scalanie pt: continuar a fusĂŁo ro: continua unificarea @@ -3394,6 +3681,7 @@ lv: turpinÄt apvienošanu nl: doorgaan met samenvoegen no: fortsett sammenslĂĄing +oc: contunhar la fusion pl: kontynuuj scalanie pt: continuar a fusĂŁo ro: continua unificarea @@ -3404,7 +3692,7 @@ continued bg: Ńледва -cs: pokracuje +cs: pokraÄŤuje da: fortsat de: fortgesetzt en: continued @@ -3418,6 +3706,7 @@ lv: nepÄrtraukts nl: vervolgd no: fortsatt +oc: seguida pl: ciÄ…g dalszy pt: continuação ro: continuare @@ -3426,6 +3715,32 @@ sl: nadaljevano sv: forts + country +de: Land +en: Country +es: PaĂ­s +fi: Maa +fr: Pays +it: Stato +nl: Land +no: Land +oc: PaĂ­s +pt: PaĂ­s +sv: Land + + county +de: Regierungsbezirk +en: County +es: SubregiĂłn +fi: Piirikunta +fr: Sous-RĂ©gion +it: Provincia +nl: Sub-regio +no: Kommune +oc: Departament +pt: Distrito +sv: Kommun + cousins af: neefs/niggies bg: първи братовчеди @@ -3446,6 +3761,7 @@ lv: brÄlÄ“ni/mÄsÄ«cas nl: neven en nichten no: fettere og kusiner +oc: cosins/cosinas pl: kuzyni/kuzynki pt: primos ro: veri @@ -3474,6 +3790,7 @@ lv: brÄlÄ“ni/mÄsÄ«cas nl: neven en nichten no: søskenbarn og flermenninger +oc: cosins pl: kuzyni pt: primos ro: veri @@ -3502,6 +3819,7 @@ lv: izveidot nl: aanmaken no: opprett +oc: crear pl: utwĂłrz pt: criar ro: creaza @@ -3530,6 +3848,7 @@ lv: kremÄ“ts(a) nl: gecremeerd no: kremert +oc: incinerat/incinerada/incinerat(ada) pl: kremacja pt: cremado/cremada/cremado(a) ro: incinerat/incinerata/incinerati @@ -3558,6 +3877,7 @@ lv: datu bÄzes "ziņojumu dÄ“lis" nl: databank forum no: database forum +oc: fòrum de la basa de donadas pl: forum bazy pt: fĂłrum da base de dados ro: forumul basei de date @@ -3566,47 +3886,31 @@ sl: forum baze podatkov sv: databas forum - date/dates -af: datum -bg: Đ´Đ°Ń‚Đ° -br: deiziad -ca: data -cs: datum -da: dato -de: Datum -en: date/dates -eo: dato -es: fecha -et: kuupäev -fi: päivämäärä -fr: date/dates -he: ת×ריך -is: dagsetning -it: data -lv: datums -nl: datum -no: dato -pl: data -pt: data -ro: data -ru: Đ´Đ°Ń‚Đ° -sk: dátum -sl: datum -sv: datum - date begin de: Anfangsdatum en: From es: fecha de inicio +fi: Alkaen fr: date de dĂ©but it: data d'inizio +nl: begindatum +no: Fra +oc: data de començament +pt: data de inĂ­cio +sv: Datum frĂĄn date end de: Enddatum en: To es: fecha final +fi: Saakka fr: date de fin it: data di fine +nl: einddatum +no: Til +oc: data de fin +pt: data de fim +sv: Datum slutar date of birth de: Geburtsdatum @@ -3617,6 +3921,8 @@ it: data di nascita nl: geboortedatum no: fødselsdato +oc: data de naissença +pt: data de nascimento sv: födelsedatum date of death @@ -3628,19 +3934,52 @@ it: data di morte nl: datum overlijden no: dødsdato +oc: data de decès +pt: data de Ăłbito sv: dödsdatum date of marriage de: Hochzeitstag -en: date of marriage +en: Date of marriage es: fecha de matrimonio fi: vihkipäivämäärä -fr: date de mariage -it: data del matrimonio +fr: date de l'union +it: data dell'unione nl: huwelijksdatum no: dato for vielse +oc: data de maridatge +pt: data de casamento sv: vigseldatum + date/dates +af: datum +bg: Đ´Đ°Ń‚Đ° +br: deiziad +ca: data/dates +cs: datum/data +da: dato +de: Datum +en: date/dates +eo: dato/datoj +es: fecha/fechas +et: kuupäev +fi: päivämäärä +fr: date/dates +he: ת×ריך +is: dagsetning +it: data +lv: datums +nl: datum +no: dato +oc: data/datas +pl: data +pt: data/datas +ro: data +ru: Đ´Đ°Ń‚Đ° +sk: dátum/dáta +sl: datum +sv: datum + days old af: dae oud bg: дни @@ -3661,6 +4000,7 @@ lv: dienas vecs nl: dagen oud no: dager gammel +oc: jorns pl: dni pt: dias ro: zile @@ -3689,6 +4029,7 @@ lv: nÄve nl: overleden no: død +oc: decès pl: zgon pt: morte ro: deces @@ -3697,26 +4038,44 @@ sl: smrti sv: död + death date and death place +de: Datum und Ort des Ablebens +en: Date & Place of death +es: fecha y lugar de defunciĂłn +fi: Kuolinpäivä ja -paikka +fr: date et lieu de dĂ©cès +it: data e luogo della morte +nl: datum en plaats van overlijden +no: Dødsdati og dødssted +oc: data e lòc de decès +pt: data e local do Ăłbito +sv: Dödsdatum och dödsplats + death place de: Sterbeort en: Place of death es: lugar de defunciĂłn +fi: Kuolinpaikka fr: lieu de dĂ©cès it: luogo di morte +nl: plaats van overlijden +no: Dødssted +oc: lòc de decès +pt: local do Ăłbito +sv: Dödsplats death src de: Ouellenangabe-Ableben en: Source of death es: fuente defunciĂłn +fi: Kuolintietojen lähde fr: source dĂ©cès it: fonte della morte - - death date and death place -de: Datum und Ort des Ablebens -en: Date & Place of death -es: fecha y lugar de defunciĂłn -fr: date et lieu de dĂ©cès -it: data e luogo della morte +nl: bron overlijden +no: Dødskilde +oc: font del decès +pt: fonte do Ăłbito +sv: Död delete af: verwyder @@ -3738,6 +4097,7 @@ lv: izmest :a: nl: verwijderen +before no: fjern +oc: escafar pl: usuĹ„ :a: pt: apagar ro: sterge @@ -3766,6 +4126,7 @@ lv: pÄ“cteÄŤi nl: afstammelingen no: etterkommere +oc: descendents pl: potomkowie pt: descendentes ro: descendenti @@ -3779,8 +4140,14 @@ de: Generation der Nachkommen ... en: List by name es: descendientes en la generaciĂłn... +fi: Nimilista fr: descendants Ă  la gĂ©nĂ©ration... it: discendenti fino alla generazione... +nl: nakomelingen tot de ... generatie +no: Liste etter navn +oc: descendents a la ... generacion +pt: descendentes na geração... +sv: Ă„ttlingar frĂĄn denna generation died af: oorlede @@ -3803,6 +4170,7 @@ lv: miršanas nl: overleden no: død +oc: mòrt/mòrta/mòrt(a) pl: zmarĹ‚/zmarĹ‚a/zgon pt: falecido/falecida/falecido(a) ro: a decedat @@ -3814,10 +4182,16 @@ died at an advanced age de: ist in hohem Alter verstorben -en: died old +en: Deceased of old age es: ha fallecido a una edad avanzada +fi: kuollut vanhuuteen fr: est dĂ©cĂ©dĂ© Ă  un âge avancĂ©/est dĂ©cĂ©dĂ©e Ă  un âge avancĂ©/est dĂ©cĂ©dĂ©(e) Ă  un âge avancĂ© it: è morto ad un'etĂ  avanzata/è morta ad un'etĂ  avanzata/è morto/a ad un'etĂ  avanzata +nl: is overleden op gevorderde leeftijd +no: død gammel +oc: es mòrt plan vièlh/es mòrta plan vièlha/es mòrt(a) plan vièlh(a) +pt: faleceu com uma idade avançada +sv: Dog vid en hög ĂĄlder died young af: jonk oorlede @@ -3839,6 +4213,7 @@ lv: miris jauns nl: jong gestorven no: død ung +oc: mòrt jove/mòrta jova/mòrt(a) jove(a) pl: zmarĹ‚ mĹ‚odo/zmarĹ‚a mĹ‚odo/zm.mĹ‚odo pt: morreu jovem ro: a decedat tinar @@ -3851,8 +4226,14 @@ de: Unterschied zwischen den zwei Revisionen en: Revision history es: diferencia entre las dos revisiones +fi: Tarkistushistoria fr: diffĂ©rence entre les deux rĂ©visions it: divario tra le due versioni +nl: verschil tussen de twee revisies +no: Revisjonshistorikk +oc: diferĂ©ncia entre las doas revisions +pt: diferença entre as duas revisões +sv: skillnad mellan tvĂĄ uppdateringar direct ancestor of %s de: direkter Vorfahre von %s @@ -3863,6 +4244,8 @@ it: antenato diretto di %s nl: rechtstreeks voorouder van %s no: direkte stamfar til %s +oc: aujòl dirèct de %s +pt: antepassado direto de %s sv: direkt förfader till %s disappeared @@ -3885,6 +4268,7 @@ lv: pazudis(usi) bez vÄ“sts nl: vermist no: forsvunnet +oc: desaparegut/desapareguda/desaparegut(uda) pl: zaginÄ…Ĺ‚/zaginęła/zaginiÄ™cie pt: desaparecido/desaparecida/desaparecido(a) ro: a disparut @@ -3895,7 +4279,7 @@ disconnect bg: Đ´Đ° Ńе прекъŃне връзката -cs: odpojene +cs: odpojenĂ© da: afbryd de: abmelden en: log out @@ -3909,6 +4293,7 @@ lv: atvienot nl: uitloggen no: logg ut +oc: desconnectar pl: rozĹ‚Ä…cz pt: desconectar ro: deconectare @@ -3921,19 +4306,26 @@ de: Sosa/Kekule-Nummer anzeigen en: Display Sosa number es: editar la numeraciĂłn de Aboville +fi: Näytä sosa-numero fr: afficher la numĂ©rotation d’Aboville it: visualizzare la numerazione d'Aboville +nl: de d'Aboville nummering tonen +no: Vis Sosa nummer +oc: afichar la numerotacion d'Aboville +pt: exibir a numeração de Aboville +sv: Visa Aboville nummer - display by/branch/alphabetic order -de: anzuzeigen/nach Zweigen/alphabetisch geordnet -en: display by:/line/alphabetical order -es: ediciĂłn por:/ramas/orden alfabĂ©tico -fi: näytetään:/sukuhaaroittain/aakkosjärjestyksessä -fr: affichage par :/branches/ordre alphabĂ©tique -it: visualizzazione per:/rami/ordine alfabetico -nl: tonen per:/tak/alfabetische volgorde -no: vises etter:/grener/alfabetisk orden -sv: visas efter:/grenar/alfabetisk ordning + display border tree +de: rahmen in den Bäumen zeigen +en: display frame +es: editar los marcos a los árboles +fi: näytä rajat +fr: afficher les bordures aux arbres +it: visualizzare i bordi degli alberi +nl: rand van de stambomen tonen +no: vis kantlinje +oc: afichar las bordadura dels arbres +sv: visa kantlinje display by slices/slice width/overlap/total width af: weergawe per gedeelte/gedeelte breedte/oorvleul/totale breedte @@ -3955,6 +4347,7 @@ lv: rÄdÄ«t pa loksnÄ“m/loksnes platums/pÄrklÄjums/kopÄ“jais platums nl: weergave per segment/segmentbreedte/overlapping/totale breedte no: vis med delte sider/sidebredde/overlapping/total bredde +oc: afichar per seccions/largor de la seccion/cavalcament/largor totala pl: wyĹ›wietl w segmentach/szerokość segmentu/szerokość pokrywania siÄ™/szerokość caĹ‚kowita pt: resultados por fracções/largura da fracção/sobreposição/largura total ro: resultat segmentat/largimea segmentului/acoperire/largimea totala @@ -3963,23 +4356,31 @@ sl: prikaĹľi s pomoÄŤjo izsekov/širina izseka/prekrivanje/skupna širina sv: visa genom att dela sidan/sidbredd/överlappning/global bredd - display border tree -de: rahmen in den Bäumen zeigen -en: display frame -es: editar los marcos a los árboles -fi: näytä rajat -fr: afficher les bordures aux arbres -it: visualizzare i bordi degli alberi -nl: rand van de stambomen tonen -no: vis kantlinje -sv: visa kantlinje + display by/branch/alphabetic order +de: anzuzeigen/nach Zweigen/alphabetisch geordnet +en: display by:/line/alphabetical order +es: ediciĂłn por:/ramas/orden alfabĂ©tico +fi: näytetään:/sukuhaaroittain/aakkosjärjestyksessä +fr: affichage par :/branches/ordre alphabĂ©tique +it: visualizzazione per:/rami/ordine alfabetico +nl: tonen per:/tak/alfabetische volgorde +no: vises etter:/grener/alfabetisk orden +oc: afichatge per:/brancas/òrdre alfabetic +pt: exibir por:/ramos/ordem alfabĂ©tica +sv: visas efter:/grenar/alfabetisk ordning display empty picture de: Bilder immer anzeigen en: Display picture es: editar siempre las imágenes +fi: Näytä kuva fr: toujours afficher les images it: visualizzare sempre le immagini +nl: altijd beelden tonen +no: Vis bilde +oc: sempre afichar los images +pt: exibir sempre as imagens +sv: Visa tom bild display generation de: nummer der Generation anzeigen @@ -3990,14 +4391,17 @@ it: pubblicare il numero di generazioni nl: nummer van de generatie tonen no: vis generasjonsnummer +oc: afichar los numèros de generacion +pt: exibir as gerações sv: visa generations nummer display marriage date de: Hochzeitstag anzeigen en: Display date of marriage -es: editar la fecha de nacimiento +es: editar la fecha de casamiento fr: afficher la date de mariage it: visualizzare la data del matrimonio +oc: afichar la data de maridatge display notes/sources inline de: einschlieĂźen der Notizen/Quellen und Inhalt @@ -4005,16 +4409,19 @@ es: incluir las notas/fuentes en el contenido fr: inclure les notes/sources au contenu it: includere le note/fonti al contenuto +oc: apondre las nòtas dins lo contengut display picture -de: porträt zeigen +de: Porträt zeigen en: display family picture es: editar retrato fi: näytä kuvat -fr: afficher portrait +fr: afficher les photos it: visualizzare il ritratto -nl: portret tonen +nl: de foto's tonen no: vis bilder +oc: afichar las fòtos +pt: exibir as fotos sv: visa bilder display smallest sosa number relative to ancestor @@ -4026,6 +4433,8 @@ it: pubblicare il antenati consanguinei nl: kwartierherhaling tonen no: vis anesammenfallet (anetapet) +oc: afichar los implèxes +pt: exibir os implexos sv: visa anförlusten display spouse @@ -4037,8 +4446,23 @@ it: visualizzare il coniuge nl: partner tonen no: vis ektefeller +oc: afichar lo conjunt +pt: exibir cĂ´njuge sv: visa makar + display this marriage in this order +de: diese Verbindung an seine Position setzen +en: Change order of marriage +es: colocar esta uniĂłn en posiciĂłn +fi: Vaihda avioliiton järjestystä +fr: placer cette union en position +it: sistemare quest'unione in posizione +nl: dit huwelijk plaatsen als aangeduid +no: Endre sortering av ekteskap +oc: plaçar aquela union en posicion +pt: colocar esta uniĂŁo em posição +sv: Byt ordning pĂĄ vigsel + divorce af: geskei bg: развод @@ -4059,6 +4483,7 @@ lv: šķiršanÄs nl: scheiding no: skilsmisse +oc: divòrci pl: rozwĂłd pt: divĂłrcio ro: divort @@ -4087,6 +4512,7 @@ lv: šķīrušies nl: gescheiden no: skilt +oc: divorciats pl: rozwiedzeni pt: divorciados ro: divortati @@ -4115,6 +4541,7 @@ lv: negrupÄ“t kopÄ“jos zarus kopÄ nl: voeg de gemeenschappelijke takken niet samen no: sammenfallende anelinjer skal ikke slĂĄs sammen +oc: agropar pas las brancas comunas pl: nie grupuj wspĂłlnych linii razem pt: nĂŁo reagrupar os ramos comuns ro: nu grupa ramuri comune inpreuna @@ -4143,6 +4570,7 @@ lv: nav zinÄms nl: onbekend no: vet ikke +oc: sap pas pl: nie wiadomo pt: nĂŁo sei ro: nu stiu @@ -4171,6 +4599,7 @@ lv: beigas nl: einde no: slutt +oc: fin pl: koniec pt: fim ro: sfirsit @@ -4199,6 +4628,7 @@ lv: saderinÄti nl: verloofd no: forlovet +oc: promesos pl: zarÄ™czyny pt: Noivos ro: logodit @@ -4227,6 +4657,7 @@ lv: saderinÄts%t ar nl: verloofd%t met no: forlovet%t med +oc: promĂ©s%t amb/promesa%t amb pl: zarÄ™czony%t z:/zarÄ™czona%t z: pt: noivo%t de/noiva%t de ro: logodit%t cu/logodita%t cu @@ -4255,6 +4686,7 @@ lv: kÄĽĹ«da nl: fout no: feil +oc: error pl: bĹ‚Ä…d pt: erro ro: eroare @@ -4283,6 +4715,7 @@ lv: Ä«pašums nl: plaats no: sted +oc: domeni pl: domena pt: lugar pt-br: localidade @@ -4313,6 +4746,7 @@ lv: tiešs nl: precies no: eksakt +oc: exacte pl: dokĹ‚adnie pt: exacta pt-br: exata @@ -4327,7 +4761,7 @@ bg: екзекŃтиран/екзекŃтирана/екзекŃтиран(Đ°) br: lakaet d'ar marv ca: executat/executada/executat(ada) -cs: popraven +cs: popraven/popravena/popraven(a) da: henrettet de: hingerichtet en: executed @@ -4342,11 +4776,12 @@ lv: sodÄ«ts(a) ar nÄvi nl: geĂ«xecuteerd no: henrettet +oc: executat/executada/executat(ada) pl: egzekucja pt: executado/executada/executado(a) ro: executat ru: казнен/казнена -sk: popravenĂ˝/popravená +sk: popravenĂ˝/popravená/popravenĂ˝(á) sl: usmrÄŤen/usmrÄŤena/usmrÄŤen(a) sv: avrättad @@ -4370,6 +4805,7 @@ lv: šifrÄ“tÄs ÄŁimenes nl: gezinnen met code no: familier med kode +oc: familhas amb codatge pl: rodziny z kodowaniem pt: famĂ­lias com cĂłdigo ro: familie cu codare @@ -4398,6 +4834,7 @@ lv: ÄŁimene pievienota nl: gezin toegevoegd no: ny familie opprettet +oc: familha aponduda pl: rodzina zostaĹ‚a dodana pt: famĂ­lia adicionada ro: familie adaugata @@ -4415,6 +4852,8 @@ it: compleanni dei parenti nl: verjaardagen van de naasten no: fødselsdager +oc: aniversaris dins la familha +pt: aniversários na famĂ­lia sv: födelsedagar family deleted @@ -4431,64 +4870,32 @@ et: pere kustutatud fi: perhe poistettu fr: famille supprimĂ©e -he: משפמה נמחקה -is: fjölskyldu eytt -it: famiglia cancellata -lv: ÄŁimene izdzÄ“sta -nl: gezin verwijderd -no: familie fjernet -pl: rodzina zostaĹ‚a usuniÄ™ta -pt: famĂ­lia suprimida -ro: familie suprimata -ru: cемья Ńдалена -sk: rodina zmazaná -sl: druĹľina izbrisana -sv: familj borttagen - - family source -de: Ouellenangabe-Familie -en: Source -es: fuente familiar -fr: source famille -it: fonte di famiglia - - family/families -af: familie/families -bg: данни Đ·Đ° ŃемейŃтвото -br: tiegezh/tiegezhioĂą -ca: famĂ­lia/famĂ­lies -cs: rodina:a:-u/rodiny -da: familie/familier -de: Familie/Familien -en: family/families -eo: familio:a:+n/familioj:a:+n -es: familia/familias -et: pere/pered -fi: perhe/perheet -fr: famille/familles -he: משפחה/ משפחות -is: fjölskyldu/fjölskyldum -it: famiglia/famiglie -lv: ÄŁimeni/ÄŁimenes -nl: gezin/gezinnen -no: familie/familier -pl: rodzina:a:-Ä™/rodziny -pt: famĂ­lia/famĂ­lias -ro: familie/fmalilii -ru: Ńемья:a:-ŃŽ:g:-и/Ńемьи -sk: rodina:a:-u/rodiny -sl: druĹľina/druĹľine -sv: familj/familjer +he: משפמה נמחקה +is: fjölskyldu eytt +it: famiglia cancellata +lv: ÄŁimene izdzÄ“sta +nl: gezin verwijderd +no: familie fjernet +oc: familha escafada +pl: rodzina zostaĹ‚a usuniÄ™ta +pt: famĂ­lia suprimida +ro: familie suprimata +ru: cемья Ńдалена +sk: rodina zmazaná +sl: druĹľina izbrisana +sv: familj borttagen family history de: rund um den Stammbaum en: family History -es: autor del árbol +es: acerca del árbol fi: sukupuun lisäksi fr: autour de l’arbre it: attorno all'albero nl: rond de stamboom no: tillegg til slektstreet +oc: subre l'arbre +pt: autor da árvore sv: utöver släktträdet family modified @@ -4511,6 +4918,7 @@ lv: ÄŁimene labota nl: gezin veranderd no: familie endret +oc: familha modificada pl: rodzina zostaĹ‚a zmodyfikowana pt: famĂ­lia modificada ro: familie modificata @@ -4519,6 +4927,48 @@ sl: druĹľina spremenjena sv: familj ändrad + family source +de: Quellenangabe-Familie +en: Source +es: fuente familiar +fi: Lähde +fr: source famille +it: fonte di famiglia +nl: bron familie +no: Kilde +oc: font de la familha +pt: fonte familiar +sv: Familjekällor + + family/families +af: familie/families +bg: данни Đ·Đ° ŃемейŃтвото +br: tiegezh/tiegezhioĂą +ca: famĂ­lia/famĂ­lies +cs: rodina:a:-u/rodiny +da: familie/familier +de: Familie/Familien +en: family/families +eo: familio:a:+n/familioj:a:+n +es: familia/familias +et: pere/pered +fi: perhe/perheet +fr: famille/familles +he: משפחה/ משפחות +is: fjölskyldu/fjölskyldum +it: famiglia/famiglie +lv: ÄŁimeni/ÄŁimenes +nl: gezin/gezinnen +no: familie/familier +oc: familha/familhas +pl: rodzina:a:-Ä™/rodziny +pt: famĂ­lia/famĂ­lias +ro: familie/fmalilii +ru: Ńемья:a:-ŃŽ:g:-и/Ńемьи +sk: rodina:a:-u/rodiny +sl: druĹľina/druĹľine +sv: familj/familjer + father/mother af: vader/moeder bg: баща/майка @@ -4539,6 +4989,7 @@ lv: tÄ“vs/mÄte nl: vader/moeder no: far/mor +oc: paire/maire pl: ojciec/matka pt: pai/mĂŁe ro: tata/mama @@ -4547,6 +4998,15 @@ sl: oÄŤe/mati sv: far/mor + field required +de: Angabe obligatorisch +en: Required +es: introducciĂłn obligatoria +fr: saisie obligatoire +it: inserimento obbligatorio +oc: sasida obligatòria +pt: campo obrigatĂłrio + file af: lĂŞer bg: файл @@ -4567,6 +5027,7 @@ lv: datne nl: bestand no: fil +oc: fichièr pl: plik pt: ficheiro pt-br: arquivo @@ -4596,6 +5057,7 @@ lv: pirmais brÄ«vais skaitlis nl: eerste beschikbare nummer no: første ledige nummer +oc: primièr numèro disponible pl: najniĹĽszy wolny numer pt: primeiro nĂşmero livre ro: primul numar liber @@ -4624,6 +5086,7 @@ lv: iesaukas vÄrds nl: alias voor voornaam no: fornavn alias +oc: escais del prenom pl: alias imienia pt: alias do nome pt-br: apelido do prenome @@ -4633,37 +5096,6 @@ sl: drugo osebno ime sv: förnamns alias - first name/first names -af: voornaam/voorname -ar: الإسم -bg: ŃобŃтвено име/ŃобŃтвени имена -br: raganv/raganvioĂą -ca: nom/noms -cs: kĹ™estnĂ­ jmĂ©no/kĹ™estnĂ­ jmĂ©na -da: fornavn/fornavne -de: Vorname/Vornamen -en: first name/first names -eo: propra nomo/propraj nomoj -es: nombre/nombres -et: eesnimi/eesnimed -fi: etunimi/etunimet -fr: prĂ©nom/prĂ©noms -he: שם פר××™/ שמות פר×יים -is: fornafn/fornöfn -it: nome/nomi -lv: vÄrds/vÄrdi -nl: voornaam/voornamen -no: fornavn/fornavn -pl: imiÄ™/imiona -pt: nome/nomes -pt-br: prenome/prenomes -ro: prenume -ru: имя/имена -sk: meno/mená -sl: osebno ime/osebna imena -sv: förnamn/förnamn -zh: ĺŤ - first name missing af: voornaam ontbreek bg: ŃобŃтвеното име липŃва @@ -4684,6 +5116,7 @@ lv: trĹ«kst vÄrda nl: voornaam ontbreekt no: fornavn mangler +oc: manca lo prenom pl: brak imienia pt: falta o nome pt-br: falta o prenome @@ -4713,6 +5146,7 @@ lv: vÄrds nav atrasts nl: voornaam niet gevonden no: finner ikke fornavn +oc: prenom pas trobat pl: imiÄ™ nie zostaĹ‚o znalezione pt: nome nĂŁo encontrado pt-br: prenome nĂŁo encontrado @@ -4722,6 +5156,38 @@ sl: osebno ime ni najdeno sv: hittar inte förnamn + first name/first names +af: voornaam/voorname +ar: الإسم +bg: ŃобŃтвено име/ŃобŃтвени имена +br: raganv/raganvioĂą +ca: nom/noms +cs: kĹ™estnĂ­ jmĂ©no/kĹ™estnĂ­ jmĂ©na +da: fornavn/fornavne +de: Vorname/Vornamen +en: first name/first names +eo: propra nomo/propraj nomoj +es: nombre/nombres +et: eesnimi/eesnimed +fi: etunimi/etunimet +fr: prĂ©nom/prĂ©noms +he: שם פר××™/ שמות פר×יים +is: fornafn/fornöfn +it: nome/nomi +lv: vÄrds/vÄrdi +nl: voornaam/voornamen +no: fornavn/fornavn +oc: prenom/prenoms +pl: imiÄ™/imiona +pt: nome/nomes +pt-br: prenome/prenomes +ro: prenume +ru: имя/имена +sk: meno/mená +sl: osebno ime/osebna imena +sv: förnamn/förnamn +zh: ĺŤ + for the first names by alphabetic order af: om die voorname in alfabetiese volgorde te kry bg: Đ·Đ° ŃобŃтвените имена по азбŃчен ред @@ -4742,6 +5208,7 @@ lv: pa vÄrdiem alfabÄ“tiskÄ kÄrtÄ«bÄ nl: voor de voornamen in alfabetische volgorde no: alfabetisk pĂĄ fornavn +oc: pels prenoms per òrdre alfabetic pl: aby zobaczyć imiona w porzÄ…dku alfabetycznym pt: para obter os nomes prĂłprios por ordem alfabĂ©tica pt-br: para obter os prenomes por ordem alfabĂ©tica @@ -4767,6 +5234,7 @@ lv: sarakstam, kas sakÄrtots pÄ“c pÄ“dÄ“jo izmaiņu datumiem nl: voor de lijst, gesorteerd op datum van de laatste wijziging no: for listen sortert pĂĄ siste endringsdato +oc: per la lista triada per la darrièra modificacion pl: aby oglÄ…dać listÄ™ wedĹ‚ug daty ostatniej modyfikacji pt: para a lista ordenada por data da Ăşltima modificação ro: pentru listÄ, dupÄ data ultimei modificÄri @@ -4795,6 +5263,7 @@ lv: audĂľu tÄ“vs/mÄte/vecÄki nl: pleegvader/pleegmoeder/pleegouders no: fosterfar/fostermor/fosterforeldre +oc: paire noiriguièr/maire noiriguièra/parents noiriguièrs pl: opiekun/opiekunka/opiekunowie pt: pai adoptivo/mĂŁe adoptiva/pais adoptivos pt-br: pai de criação/mĂŁe de criação/pais de criação @@ -4824,6 +5293,7 @@ lv: audĂľu dÄ“ls/meita/bÄ“rns nl: pleegzoon/pleegdochter/pleegkind no: fostersønn/fosterdatter/fosterbarn +oc: filh noirit/filha noirida/enfants noirits pl: wychowanek/wychowanica/wychowankowie pt: filho adoptivo/filha adoptiva/filho(a) adoptivo(a) pt-br: filho de criação/filha de criação/filho(a) de criação @@ -4853,6 +5323,7 @@ lv: brÄÄĽi/mÄsas nl: broers en zusters no: søsken +oc: fraires e sòrres pl: rodzeĹ„stwo pt: irmĂŁos e irmĂŁs ro: frati/surori @@ -4881,6 +5352,7 @@ lv: paaudzi/paaudzes nl: generatie/generaties no: generasjon/generasjoner +oc: generacion/generacions pl: pokolenie/pokolenia pt: geração/gerações ro: generatie/generatii @@ -4909,6 +5381,7 @@ lv: krustÄ“vs/krustmÄte/krustvecÄki nl: peter/meter/peetouders no: gudfar/gudmor/gudfedre +oc: pairin/mairina/pairin e mairina pl: ojciec chrzestny/matka chrzestna/rodzice chrzestni pt: padrinho/madrinha/padrinhos ro: nas/nasa/nasi @@ -4937,6 +5410,7 @@ lv: krustdÄ“ls/krustmeita/krustbÄ“rns nl: peetzoon/peetdochter/petekind no: gudsønn/guddatter/gudbarn +oc: filhòl/filhòla/filhòl(a) pl: chrzeĹ›niak/chrzeĹ›niaczka/chrzeĹ›niak pt: afilhado/afilhada/afilhado(a) ro: finu/fina/finii @@ -4965,6 +5439,7 @@ lv: vecvecÄki nl: grootouders no: besteforeldre +oc: aujòls pl: dziadkowie pt: avĂłs ro: bunici @@ -4993,6 +5468,7 @@ lv: vecvecvecÄki nl: overgrootouders no: oldeforeldre +oc: rèire-grands pl: pradziadkowie pt: bisavĂłs ro: strabunici @@ -5021,6 +5497,7 @@ lv: gregoriÄņu/jĹ«lija/franÄŤu/senebreju nl: gregoriaans/juliaans/Frans/Hebreeuws no: gregoriansk/juliansk/fransk rep./jødisk +oc: gregorian/julian/republican/josieu pl: gregoriaĹ„ski/juliaĹ„ski/rewolucyjny francuski/hebrajski pt: gregoriano/juliano/francĂŞs/hebraico ro: gregorian/julian/francez/evreiesc @@ -5049,6 +5526,7 @@ lv: vÄ«rs/sieva nl: echtgenoot/echtgenote no: mann/hustru +oc: marit/molhèr pl: mÄ…ĹĽ/ĹĽona pt: marido/esposa ro: sot/sotie @@ -5066,15 +5544,22 @@ it: fratellastri e sorellastre nl: half broers en zusters no: halvbrødre/halvsøstre/halvsøsken +oc: frairastres e sorrastras +pt: meios irmĂŁos e meias irmĂŁs sv: halvbröder och halvsystrar half-siblings de: Halbgeschwister en: Half-siblings es: hermanastros/as +fi: Puolisisarukset fr: demi frères et demi sĹ“urs it: fratellastri e sorellastre nl: half broers en zusters +no: Halvsøsken +oc: frairastres e sorrastras +pt: meios irmĂŁos e irmĂŁs +sv: Halvsyskon happy birthday to them! de: Herzlichen GlĂĽckwunsch zum Geburtstag! @@ -5085,6 +5570,8 @@ it: buon compleanno! nl: van harte gefeliciteerd met Uw verjaardag! no: gratulerer med dagen! +oc: lo bon aniversari! +pt: feliz aniversário! sv: gratulerar pĂĄ födelsedagen! happy birthday to you! @@ -5107,6 +5594,7 @@ lv: LaimÄ«gu dzimšanas dienu! nl: van harte gefeliciteerd met Uw verjaardag! no: gratulerer med dagen! +oc: lo bon aniversari! pl: wszystkiego najlepszego w dniu urodzin! pt: feliz aniversário! ro: la multi ani! @@ -5119,15 +5607,14 @@ de: hat einen Lebenspartner und/oder Kinder en: Spouse and children are known es: tiene un cĂłnyuge y/o hijos +fi: Puoliso ja lapset tunnetaan fr: ayant une famille it: con coniuge e/o figli - - having no family -de: hat weder Kinder noch einen Lebenspartner -en: Spouse and children are unknown -es: no tiene hijos ni cĂłnyuge -fr: n'ayant pas de famille -it: senza figli nĂ© coniuge +nl: met een familie +no: Ektefelle og barn er kjent +oc: amb una familha +pt: tem um cĂ´njuge e/ou filhos +sv: Har en familj having as children af: met as kinders @@ -5149,6 +5636,7 @@ lv: bÄ“rni: nl: en hun kinderen no: barn +oc: enfants pl: dzieci pt: tiveram ro: cu copii @@ -5158,19 +5646,44 @@ sv: barn zh: 生有ĺ­ĺĄł + having no family +de: hat weder Kinder noch einen Lebenspartner +en: Spouse and children are unknown +es: no tiene hijos ni cĂłnyuge +fi: Puoliso ja lapset tuntemattomia +fr: n'ayant pas de famille +it: senza figli nĂ© coniuge +nl: zonder familie +no: Ektefell og barn er ukjent +oc: sens familha +pt: nĂŁo tem cĂ´njuge nem filhos +sv: Har ingen familj + help modify data de: Klicken Sie auf das zu korrigierende "Listen-Element": alle Dateien Ihres Baumes werden sofort korrigiert en: Click 'Update' to edit and your entire family tree will be automatically updated es: Pulse en "el elemento de la lista" que desee corregir: todas las fichas de su árbol se corregirán instantáneamente -fr: Cliquez sur « l’élĂ©ment de la liste » que vous souhaitez corriger : l’ensemble des fiches de votre arbre seront instantanĂ©ment corrigĂ©es +fi: Napsauta 'Päivitä' ja koko sukupuusi päivitetään automaattisesti +fr: Cliquez sur l’élĂ©ment de la liste que vous souhaitez corriger : l’ensemble des fiches de votre arbre sera instantanĂ©ment corrigĂ© it: Clicca su « l’elemento della lista » che vuoi correggere : l'insieme delle schede del tuo albero saranno istantaneamente corrette +nl: Kliop op het 'lijstelement" dat gewijzigd moet worden: het geheel van de fichen van uw stamboom zullen onmiddellijk verbeterd worden +no: Klikk 'Oppdater' for ĂĄ editere og hele ditt slektstre vil automatisk bli oppdatert +oc: CLicatz sus l'element de modificar e totas las fichas del seu arbre serĂ n corregidas sulpic +pt: Clique sobre o elemento da lista que pretende corrigir: a totalidade das fichas da sua árvore serĂŁo instantaneamente corrigidas +sv: Hjälp att modifiera data help surname branch de: um die Zweige Ihres Stammbaums zu den Nachnamen zu erhalten, klicken Sie auf die Zahlenangabe der Baumzweige en: click a number to view family tree es: para obtener el árbol de las ramas patrĂłnimicas, pulse en el nĂşmero de las ramas +fi: napsauta numeroa katsoksesi sukupuuta fr: pour obtenir l'arbre des branches patronymiques, cliquez sur le nombre de branches it: per ottenere l'albero dei rami patronimici, clicca sul numero di rami +nl: om het aantal familietakken te bekomen, klikken op het aantal takken +no: klikk pĂĄ et nummer for ĂĄ se slektstre +pc: per obtĂ©ner l'arbre de las brancas patronimicas, clicatz sul nombre de brancas +pt: para obter a árvore dos ramos patronĂ­micos, clique no nĂşmero dos ramos +sv: Hjälp att hitta förnamn here af: hier @@ -5192,6 +5705,7 @@ lv: šeit nl: hier no: her +oc: aicĂ­ pl: tutaj pt: aqui ro: aici @@ -5220,6 +5734,7 @@ lv: viņam/viņai nl: zijn/haar no: han/henne +oc: el/ela pl: on/ona pt: ele/ela ro: el/ea @@ -5229,7 +5744,17 @@ sv: honom/henne history +de: Verlauf +en: History +es: histĂłrico +fi: Historia fr: historique +it: cronistoria +nl: historiek +no: Historikk +oc: istoric +pt: histĂłrico +sv: Historia history of updates af: bywerkingsgeskiedenis @@ -5251,6 +5776,7 @@ lv: labojumu vÄ“sture nl: geschiedenis van de wijzigingen no: oppdateringshistorie +oc: istoric dels cambiaments pl: rejestr zmian pt: historial das actualizações pt-br: histĂłrico das atualizações @@ -5280,6 +5806,7 @@ lv: horizontÄli nl: horizontaal no: horisontalt +oc: orizontalament pl: w poziomie pt: horizontalmente ro: orizontal @@ -5308,6 +5835,7 @@ lv: vÄ«rs/sieva nl: echtgenoot/echtgenote no: mann/hustru +oc: marit/molhèr pl: mÄ…ĹĽ/ĹĽona pt: marido/esposa ro: sot/sotie @@ -5336,6 +5864,7 @@ lv: vÄrds/e-pasts/subjekts nl: identiteit/e-mail/onderwerp no: ident/epost/emne +oc: nom/corric/subjècte pl: ident/email/temat pt: ident/email/assunto ro: identitate/email/subiect @@ -5344,13 +5873,6 @@ sl: ime/e-pošta/vsebina sv: ident/email/ämne - iftitles/public/private -de: Adelstitel/öffendlich/privat -en: If titles/Public/Private -es: si hay tĂ­tulos/pĂşblico/privado -fr: si titres/public/privĂ© -it: se titoli/pubblico/privato - if titles af: as titels bg: ограничен @@ -5371,6 +5893,7 @@ lv: ja ir tituli nl: indien titels no: hvis titler +oc: si i a de tĂ­tols pl: jeĹ›li z tytuĹ‚em pt: se tĂ­tulos ro: are titlu @@ -5379,6 +5902,14 @@ sl: ÄŤe so nazivi sv: om titlar + iftitles/public/private +de: Adelstitel/öffendlich/privat +en: If titles/Public/Private +es: si hay tĂ­tulos/pĂşblico/privado +fr: si titres/public/privĂ© +it: se titoli/pubblico/privato +oc: si i a de tĂ­tols/public/privat + image deleted af: prent ontbreek bg: изображението е премахнато @@ -5399,6 +5930,7 @@ lv: attÄ“ls izmests nl: beeld verwijderd no: bildet er fjernet +oc: imatge escafat pl: ilustracja zostaĹ‚a usuniÄ™ta pt: imagem suprimida ro: imagine suprimata @@ -5407,6 +5939,35 @@ sl: slika izbrisana sv: bilden borttagen + image received +af: prent ontvang +bg: изображението е полŃчено +br: skeudenn resevet +ca: imatge rebuda +cs: obrázek pĹ™ijat +da: billede indsat +de: Bild erhalten +en: picture has been uploaded +eo: bildo ricevita +es: imagen recibida +et: pilt vastu võetud +fi: kuva vastaanotettu +fr: image reçue +he: התמונה התקבלה +is: mynd mĂłttekin +it: immagine ricevuta +lv: attÄ“ls saņemts +nl: beeld ontvangen +no: bildet er mottatt +oc: imatge recebut +pl: ilustracja zostaĹ‚a doĹ‚Ä…czona +pt: imagem recebida +ro: imagine receptionata +ru: картинка полŃчена +sk: obrázok prijatĂ˝ +sl: slika sprejeta +sv: bilden mottagen + image/images af: prent/prente bg: изображение/изображения @@ -5427,6 +5988,7 @@ lv: attÄ“li nl: beeld/beelden no: bilde +oc: imatge/imatges pl: ilustracja:a:-Ä™/ilustracje pt: imagem/imagens ro: imagine/imagini @@ -5435,33 +5997,78 @@ sl: slika/slike sv: bild/bilder - image received -af: prent ontvang -bg: изображението е полŃчено -br: skeudenn resevet -ca: imatge rebuda -cs: obrázek pĹ™ijat -da: billede indsat -de: Bild erhalten -en: picture has been uploaded -eo: bildo ricevita -es: imagen recibida -et: pilt vastu võetud -fi: kuva vastaanotettu -fr: image reçue -he: התמונה התקבלה -is: mynd mĂłttekin -it: immagine ricevuta -lv: attÄ“ls saņemts -nl: beeld ontvangen -no: bildet er mottatt -pl: ilustracja zostaĹ‚a doĹ‚Ä…czona -pt: imagem recebida -ro: imagine receptionata -ru: картинка полŃчена -sk: obrázok prijatĂ˝ -sl: slika sprejeta -sv: bilden mottagen + in (month year) +af: in +bg: през +br: e +ca: el/l' +cs: v +da: i +de: im +en: in +eo: en +es: en +et: :s: +fi: +fr: en +he: ב- +is: Ă­ +it: nel +lv: mÄ“nesÄ« +nl: in +no: i +oc: en +pl: w +pt: em +ro: in +ru: в +sk: v +sl: v +sv: i +zh: 于 + + in (place) +de: in +en: in +es: en +fi: +fr: Ă  +it: a +nl: te +no: i +oc: a +pt: em +sv: i + + in (year) +af: in +bg: през +br: e +ca: el +cs: v +da: i +de: im Jahre +en: in +eo: en +es: en +et: +fi: +fr: en +he: ב- +is:   +it: nel +lv: gads: +nl: in +no: i +oc: en +pl: w roku +pt: em +ro: in anul +ru: в +sk: v +sl: v letu +sv: +zh: 于 include missing spouses af: ontbrekende ouers ingesluit @@ -5483,6 +6090,7 @@ lv: ieskaitot iztrĹ«kstošos dzÄ«vesbiedrus nl: inclusief ontbrekende echtgenoten no: inkluder savnede ektefeller +oc: inclure los conjunts que mancan pl: pokaĹĽ brakujÄ…cych maĹ‚ĹĽonkĂłw pt: incluir os cĂ´njugues que faltam ro: include soti necunoscuti @@ -5512,6 +6120,7 @@ nl: inclusief echtgenoten no: inkluder ektefeller pl: pokaĹĽ maĹ‚ĹĽonkĂłw +oc: inclure los conjunts pt: incluir os cĂ´njugues ro: include soti ru: включая ŃŃпрŃгов @@ -5539,6 +6148,7 @@ lv: nesavietojami dzimumi nl: geslacht klopt niet no: uforenlig kjønn +oc: sèxes incompatibles pl: niezgodne pĹ‚cie pt: sexos incompatĂ­veis ro: sex incompatibil @@ -5567,6 +6177,7 @@ lv: nepareizs datums nl: incorrecte datum no: ugyldig dato +oc: data incorrècta pl: nieprawidĹ‚owa data pt: data incorrecta pt-br: data incorreta @@ -5596,6 +6207,7 @@ lv: kÄĽĹ«dains pieprasÄ«jums nl: incorrect verzoek no: ugyldig forespørsel +oc: demanda incorrècta pl: nieprawidĹ‚owe wyszukiwanie pt: consulta incorrecta pt-br: consulta incorreta @@ -5625,6 +6237,7 @@ lv: patiešÄm, nl: immers: no: faktisk +oc: en efièch pl: Ĺ›ciĹ›lej biorÄ…c, pt: com efeito, ro: pentru @@ -5653,6 +6266,7 @@ lv: pÄ“cnÄcÄ“ju saraksts nl: index van afstammelingen no: fortegnelse over etterkommere +oc: indèx dels descendents pl: lista potomkĂłw pt: Ă­ndice dos descendentes ro: indice de descendenti @@ -5681,6 +6295,7 @@ lv: dzÄ«vesbiedru saraksts (bez pÄ“cnÄcÄ“jiem) nl: index van echtgenoten (geen afstammelingen) no: fortegnelse over ektefeller (ikke etterkommere) +oc: indèx dels conjunts (pas descendents) pl: lista maĹ‚ĹĽonkĂłw (nie bÄ™dÄ…cych potomkami) pt: Ă­ndice dos cĂ´njuges (nĂŁo descendentes) ro: indice de soti (nedescendenti) @@ -5696,39 +6311,12 @@ fi: merkintöjä henkilöstä fr: notes individuelles it: nota dell’individuo -nl: nota’s over de persoon +nl: Aantekeningen no: notater om personen +oc: nòtas individualas +pt: notas individuais sv: anteckningar om personen - in (month year) -af: in -bg: през -br: e -ca: el/l' -cs: v -da: i -de: im -en: in -eo: en -es: en -et: :s: -fi: -fr: en -he: ב- -is: Ă­ -it: nel -lv: mÄ“nesÄ« -nl: in -no: i -pl: w -pt: em -ro: in -ru: в -sk: v -sl: v -sv: i -zh: 于 - insert af: invoeg bg: вмъкване на @@ -5749,6 +6337,7 @@ lv: pievienot :a: nl: invoegen +before no: sett inn +oc: inserir pl: dodaj :a: pt: inserir ro: intercaleaza @@ -5758,7 +6347,16 @@ sv: infoga insufficient revision history for %s +de: der Versionsverlauf von %s ist nicht ausreichend um Vergleiche anzustellen +en: No history found for %s +es: el histĂłrico de las revisiones de %s es insuficiente para realizar comparaciones +fi: Tarkistushistoriaa ei löydetty kohteelle %s fr: l'historique des rĂ©visions de %s est insuffisant pour rĂ©aliser des comparaisons +it: la cronistoria delle revisioni delle %s è insufficente per realizzare dei paragoni +nl: historiek van de revisies van %s is onvoldoende om vergelijkingen uit te voeren +no: Ingen revisjonshistorikk funnet for %s +oc: l'istoric de las revisions de %s es pas pro per realizar de comparasons +pt: o histĂłrico das revisões de %s Ă© insuficiente para realizar comparações inversion done af: omgeruil @@ -5780,6 +6378,7 @@ lv: pÄrslÄ“gšana izpildÄ«ta nl: verwisseld/veranderd no: rekkefølgen endret +oc: permutacion efectuada pl: kolejność zostaĹ‚a zmieniona pt: inversĂŁo efectuada pt-br: inversĂŁo feita @@ -5809,6 +6408,7 @@ lv: pÄrslÄ“gt(?) nl: verwisselen no: endre rekkefølge +oc: permutar pl: zmieĹ„ kolejność pt: inverter ro: inverseaza @@ -5837,6 +6437,7 @@ lv: pÄrslÄ“gt sekojošo ÄŁimeņu secÄ«bu (?) nl: verwissel de volgorde van de volgende gezinnen no: endre rekkefølgen pĂĄ følgende familier +oc: permutar l'òrdre d'aquelas familhas pl: czy zmienić kolejność nastepujÄ…cych maĹ‚ĹĽeĹ„stw lub zwiÄ…zkĂłw? pt: inverter a ordem das famĂ­lias seguintes ro: inverseaza ordinea urmatoarelor familii @@ -5845,35 +6446,6 @@ sl: zamenjaj vrstni red naslednjih druĹľin sv: ändra ordningen pĂĄ de följande familjerna - in (year) -af: in -bg: през -br: e -ca: el -cs: v -da: i -de: im Jahre -en: in -eo: en -es: en -et: -fi: -fr: en -he: ב- -is:   -it: nel -lv: gads: -nl: in -no: i -pl: w roku -pt: em -ro: in anul -ru: в -sk: v -sl: v letu -sv: -zh: 于 - is af: is bg: е @@ -5894,6 +6466,7 @@ lv: ir nl: is no: er +oc: es pl: to pt: Ă© ro: este @@ -5906,8 +6479,14 @@ de: ist ein sehr alter Verwandter en: is old es: es un padre muy viejo +fi: on vanha fr: est vraiment un parent très âgĂ© it: è un parente molto anziano +nl: is een familielid op zeer oude leeftijd +no: er gammel +oc: es un parent plan tròp vièlh +pt: Ă© um pai muito velho +sv: Ă„r en mycket gammal förälder is a very young parent af: is 'n baie jong ouer @@ -5929,6 +6508,7 @@ lv: ir ÄĽoti jauns vecÄks nl: is werkelijk een zeer jonge ouder no: er en svært ung foreldre +oc: es un parent plan tròp jove pl: jest bardzo mĹ‚odym ojcem/jest bardzo mĹ‚odÄ… matkÄ… pt: Ă© um pai demasiado jovem pt-br: Ă© um pai jovem demais @@ -5958,6 +6538,7 @@ lv: ir dzimis(usi) pÄ“c saviem bÄ“rniem nl: werd geboren na zijn/haar kind no: er født etter sitt barn +oc: es nascut(da) après son enfant pl: jest urodzony/urodzona później niĹĽ swoje dziecko pt: nasceu depois do seu filho ro: este nascut dup copil @@ -5986,6 +6567,7 @@ lv: tÄ ir viena un tÄ pati persona! nl: is dezelfde persoon! no: det er samme person! +oc: es la meteissa persona pl: to jest ta sama osoba! pt: Ă© a mesma pessoa! ro: este aceiasi persoana! @@ -6014,6 +6596,7 @@ lv: pÄ“c JĹ«lija kalendÄra nl: juliaanse dag no: juliansk dag +oc: jorn julian pl: dzieĹ„ w kalendarzu juliaĹ„skim pt: dia juliano ro: zi juliana @@ -6042,6 +6625,7 @@ lv: nogalinÄts(a) (negadÄ«jumÄ) nl: gesneuveld no: drept i strid +oc: tuat/tuada/tuat(ada) pl: zginÄ…Ĺ‚/zginęła pt: morto/morta/morto(a) ro: cazut in lupta @@ -6070,6 +6654,7 @@ lv: mazÄk kÄ vienu mÄ“nesi vecs(a) nl: minder dan een maand oud no: mindre enn en mĂĄned gammel +oc: mens d'un mes pl: mĹ‚odszy niĹĽ 1 miesiÄ…c/mĹ‚odsza niĹĽ 1 miesiÄ…c pt: menos de um mĂŞs ro: mai putin de o luna @@ -6098,6 +6683,7 @@ lv: saite nl: connectie no: koble +oc: ligar pl: link pt: ligar ro: uneste @@ -6126,6 +6712,7 @@ lv: saite starp nl: verband tussen no: slektskap mellom +oc: ligam entre pl: wiÄ™zy pokrewieĹ„stwa pomiÄ™dzy pt: relação entre ro: relatie intre @@ -6134,6 +6721,13 @@ sl: sorodstvo med sv: släktskap emellan + link to use +de: Link zu verwenden +en: link to use +fr: lien Ă  utiliser +it: link da usare +oc: ligam d'utilizar + linked pages bg: Ńвързани Ńтраници ca: enllaços @@ -6151,6 +6745,7 @@ lv: saistÄ«tÄs lapas nl: verbonden pagina's no: koblede sider +oc: ligams pl: linki pt: páginas ligadas pt-br: página associadas @@ -6160,9 +6755,18 @@ sl: povezane strani sv: länkade sidor - link to use -en: link to use -fr: lien Ă  utiliser + list eclair +de: Blitzliste +en: List by name, place & date +es: lista rápida +fi: Index +fr: liste-Ă©clair +it: lista lampo +nl: overzichtslijst +no: Index +oc: lista rapida +pt: listar por nome, local e data +sv: Index list/list (ancestors) af: lys @@ -6184,6 +6788,7 @@ lv: saraksts nl: lijst no: liste +oc: lista pl: lista pt: lista ro: lista @@ -6192,40 +6797,74 @@ sl: seznam sv: lista/trädlista - list eclair -de: Blitzliste -en: List by name, place & date -es: lista rápida -fr: liste-Ă©clair -it: lista lampo + lists and charts +de: Stammbäume, Listen und Zustände +en: Charts and Lists +es: árboles, listas y estados +fi: Listat +fr: arbres, listes et Ă©tats +it: alberi, liste e distinte +nl: Lijsten +no: Tavler og lister +oc: listas, arbres e estats +pt: listas e gráficos +sv: Tavlor och listor + + lists of books +fr: liste des dictionnaires +oc: lista dels diccionaris living after %s de: lebte nach %s en: lived after %s es: vivo despuĂ©s de %s +fi: eli jälkeen %s fr: vivant après %s it: in vita dopo il %s +nl: nog in leven na %s +no: levde etter %s +oc: viu(va) après %s +pt: vivo/a apĂłs %s +sv: Lever efter %s living before %s de: lebte vor %s en: lived before %s es: vivo antes de %s +fi: elänyt ennen %s fr: vivant avant %s it: in vita prima del %s +nl: nog in leven voor %s +no: levde før %s +oc: viu(va) abans %s +pt: vivo/a antes de %s +sv: Lever innan %s living between %s and %s de: lebte von %s bis %s en: lived from %s to %s es: vivo desde %s a %s +fi: eli %s lähtien %s asti fr: vivant de %s Ă  %s it: vivente dal %s al %s +nl: levend van %s tot %s +no: levde fra %s til %s +oc: viu(va) entre %s e %s +pt: vivo/a entre %s e %s +sv: Lever mellan %s och %s living from/to de: lebte von/bis en: lived from/to es: vivo de/a +fi: elänyt lähtien/asti fr: vivant de/Ă  it: vivente dal/al +nl: leefde van/tot +no: levde fra/til +oc: viu(va) de/entrò +pt: vivo/a de/atĂ© +sv: Lever frĂĄn/till long display af: uitgebreide weergawe @@ -6247,6 +6886,7 @@ lv: garÄ attÄ“lošana nl: uitgebreide weergave no: utvidet rapport +oc: afichatge long pl: peĹ‚na postać pt: resultados detalhados ro: resultat detaliat @@ -6259,8 +6899,14 @@ de: zu suchende Elemente en: Check es: elementos a buscar +fi: Katso fr: Ă©lĂ©ments Ă  rechercher it: elementi da ricercare +nl: op te zoeken elementen +no: Sjekk +oc: elements de recercar +pt: elementos a pesquisar +sv: Leta efter loop in database: %s is his/her own ancestor af: fout in die databasis: %s sy/haar eie voorvader @@ -6282,6 +6928,7 @@ lv: cilpa datu bÄzÄ“: %s ir viņa/viņas pašas secis nl: circulaire referentie in de database: %s is zijn/haar eigen voorouder no: loop i databasen: %s er sin egen ane +oc: bloca dins la basa de donadas: %s es son/sa quite(a) aujòl(a) pl: pÄ™tla w bazie: %s jest swoim wĹ‚asnym przodkiem pt: referĂŞncia circular no banco de dados: %s Ă© seu prĂłprio ancestral ro: referinta circulara: %s este propriul stramos @@ -6310,6 +6957,7 @@ lv: V/S nl: M/V no: M/K +oc: M/F pl: M/Ĺ» pt: M/F ro: M/F @@ -6338,6 +6986,7 @@ lv: galvenais tituls nl: voornaamste titel no: hovedtitel +oc: tĂ­tol principal pl: gĹ‚Ăłwny tytuĹ‚ pt: tĂ­tulo principal ro: titlu principal @@ -6346,13 +6995,6 @@ sl: glavni naziv sv: huvudtitel - male/female/neuter -de: Mann/Frau/Unbekannt -en: Male/Female/Unknown -es: hombre/mujer/no especĂ­ficado -fr: homme/femme/non spĂ©cifiĂ© -it: maschio/femmina/non specificato - male line/female line af: manlike lyn/vroulike lyn bg: мъжка линия/женŃка линия @@ -6373,6 +7015,7 @@ lv: tÄ“va lÄ«nija/mÄtes lÄ«nija nl: mannelijke lijn/vrouwelijke lijn no: mannlig linje/kvinnelig linje +oc: linha masculina/linha femenina pl: linia mÄ™ska/linia ĹĽeĹ„ska pt: linha masculina (agnatĂ­cia)/linha feminina (cognática) ro: linie masculina/linia feminina @@ -6381,6 +7024,32 @@ sl: moška linija/Ĺľenska linija sv: manliga linjen/kvinnliga linjen + male/female/neuter +de: Mann/Frau/Unbekannt +en: Male/Female/Unknown +es: hombre/mujer/no especĂ­ficado +fi: mies/nainen/tuntematon +fr: homme/femme/non spĂ©cifiĂ© +it: maschio/femmina/non specificato +nl: man/vrouw/onbepaald +no: Man/Kvinne/Ukjent +oc: òme/femna/se sap pas +pt: masculino/feminino/nĂŁo especificado +sv: manling/kvinnlig/okänt + + marriage date +de: Hochzeitstag +en: Date of marriage +es: fecha de matrimonio +fi: Vihkiaika +fr: date de l'union +it: data dell'unione +nl: huwelijksdatum +no: Ekteskapsdato +oc: data del maridatge +pt: data de casamento +sv: Datum för giftermĂĄl + marriage had occured after the death of %t af: huwelik plaasgevind het nadat %t dood bg: е Ńключен бракът ĐĽŃŹŃŃ‚Đľ Ńлед Ńмъртта на %t @@ -6401,6 +7070,7 @@ lv: laulÄ«bas notika pÄ“c %t nÄves nl: huwelijk vond plaats na de dood van %t no: ekteskap fant sted etter %t døden +oc: data del maridatge après la mòrt de %t pl: maĹ‚ĹĽeĹ„stwo miaĹ‚o miejsce po Ĺ›mierci %t pt: casamento ocorreu apĂłs a morte %t ro: cÄsÄtoria a avut loc dupÄ moartea %t @@ -6430,6 +7100,7 @@ lv: laulÄ«ba tika noslÄ“gta pirms %t dzimšanas nl: huwelijk vond plaats vóór de geboorte van %t no: ekteskap fant sted før %t fødsel +oc: data del maridatge abans la naissença de %t pl: maĹ‚ĹĽeĹ„stwo zostaĹ‚o zawarte przed urodzeniem %t pt: casamento ocorreu antes do nascimento %t ro: cÄsÄtoria a avut loc Ă®nainte de naĹźtere %t @@ -6439,65 +7110,17 @@ sv: äktenskapet ägde rum före %t födseln zh: çµĺ©šĺ‰Ť%t出生的地方 - marriage date -de: Datum der EheschlieĂźung -en: Date of marriage -es: fecha de matrimonio -fr: date de mariage -it: data del matrimonio - - marriage place -de: Ort der EheschlieĂźung -en: Place of marriage -es: lugar de matrimonio -fr: lieu de mariage -it: luogo del matrimonio - - marriage src -de: Ouellenangabe-EheschlieĂźung -en: Source of marriage -es: fuente matrimonio -fr: source mariage -it: fonte del matrimonio - - marriage/marriages -af: huwelik/huwelike -ar: زŮاج/زŮاجات -bg: брак/бракове -br: eured/euredoĂą -ca: casament/casaments -cs: manĹľelstvĂ­ -da: giftermĂĄl/giftermĂĄl -de: Heirat/Heiraten -en: spouse/spouses -eo: edziÄťo:a:+n/edziÄťoj -es: casamiento/casamientos -et: abielu/abielud -fi: avioliitto/avioliitot -fr: mariage/mariages -he: נישו×ין -is: gifting/giftingar -it: matrimonio/matrimoni -lv: ÄŁimene -nl: huwelijk/huwelijken -no: ekteskap/ekteskap -pl: Ĺ›lub/Ĺ›luby -pt: casamento/casamentos -ro: casatorie/casatorii -ru: брак/браки -sk: manĹľelstvo/manĹľelstvá -sl: poroke/poroke -sv: äktenskap/äktenskap - marriage notes de: notizen zu den Ehen en: marriage Notes es: notas de matrionios fi: lisämerkintöjä vihkimisestä -fr: notes de mariages +fr: notes concernant l'union it: note di matrimoni -nl: nota’s over het huwelijk +nl: Aantekeningen no: notater om ekteskapet +oc: nòtas sul maridatge +pt: notas de casamento sv: anteckningar om vigseln marriage of %t after his/her death @@ -6520,6 +7143,7 @@ lv: %t kÄzas pÄ“c viņa(s) nÄves nl: huwelijk van %t na zijn/haar dood no: ekteskap med %t etter ektefellens død +oc: maridatge de %t après la mòrt pl: maĹ‚ĹĽeĹ„stwo z %t po Ĺ›mierci pt: casamento de %t depois da sua morte ro: casatoria %t este dupa deces @@ -6548,6 +7172,7 @@ lv: %t kÄzas pirms viņa(s) dzimšanas nl: huwelijk van %t voor zijn/haar geboorte no: ekteskap med %t før ektefellens fødsel +oc: maridatge de %t abans la naissença pl: maĹ‚ĹĽeĹ„stwo z %t przed narodzeniem pt: casamento de %t antes do seu nascimento ro: casatoria %t inaninte de nastere @@ -6556,17 +7181,75 @@ sl: %t se je poroÄŤil(a) pred svojim rojstvom sv: äktenskap med %t före makens/makans födelse + marriage place +de: Ort der EheschlieĂźung +en: Place of marriage +es: lugar de matrimonio +fi: Vihkipaikka +fr: lieu de l'union +it: luogo dell'unione +nl: huwelijksplaats +no: Ekteskapssted +oc: lòc de maridatge +pt: local de casamento +sv: Plats för giftermĂĄl + + marriage src +de: Ouellenangabe-EheschlieĂźung +en: Source of marriage +es: fuente matrimonio +fi: Vihkitietojen lähde +fr: source mariage +it: fonte del matrimonio +nl: bron huwelijk +no: Ekteskapskilde +oc: font sul maridatge +pt: fonte casamento +sv: GiftermĂĄl + marriage with -de: eheschlieĂźungen -en: marriage with +de: EheschlieĂźung mit +en: Marriage with es: casamiento(s) fi: aviopuoliso(t) -fr: mariage avec -it: matrimoni -nl: huwelijken +fr: union avec +it: unione con +nl: huwelijk met no: giftermĂĄl +oc: maridatge amb +pt: casamento com sv: vigslar + marriage/marriages +af: huwelik/huwelike +ar: زŮاج/زŮاجات +bg: брак/бракове +br: eured/euredoĂą +ca: casament/casaments +cs: manĹľelstvĂ­ +da: giftermĂĄl/giftermĂĄl +de: Heirat/Heiraten +en: spouse/spouses +eo: edziÄťo:a:+n/edziÄťoj +es: casamiento/casamientos +et: abielu/abielud +fi: avioliitto/avioliitot +fr: mariage/mariages +he: נישו×ין +is: gifting/giftingar +it: matrimonio/matrimoni +lv: ÄŁimene +nl: huwelijk/huwelijken +no: ekteskap/ekteskap +oc: maridatge/maridatges +pl: Ĺ›lub/Ĺ›luby +pt: casamento/casamentos +ro: casatorie/casatorii +ru: брак/браки +sk: manĹľelstvo/manĹľelstvá +sl: poroke/poroke +sv: äktenskap/äktenskap + married af: getroud bg: в брак @@ -6587,6 +7270,7 @@ lv: precÄ«bu nl: gehuwd no: gift +oc: maridats pl: maĹ‚ĹĽeĹ„stwo pt: casados ro: casatorit @@ -6615,6 +7299,7 @@ lv: precÄ“jies %t gadu vecumÄ nl: gehuwd op de leeftijd van %t no: gift %t ĂĄr gammel +oc: maridat(da) a %t ans pl: oĹĽeniĹ‚ siÄ™ w wieku %t lat/wyszĹ‚a za mÄ…ĹĽ w wieku %t lat pt: casado com a idade de %t ro: casatorit la virsta de %t @@ -6643,6 +7328,7 @@ lv: precÄ«bu %t precÄ“jies ar /precÄ«bu %t precÄ“jusies ar nl: gehuwd%t met no: gift%t med +oc: maridat amb/maridada amb pl: ĹĽona (Ĺ›lub: %t):/mÄ…ĹĽ (Ĺ›lub: %t): pt: casado%t com/casada%t com ro: casatorit%t cu @@ -6661,6 +7347,8 @@ it: nonni materni nl: grootouders langs moederszijde no: mormor og morfar +oc: parents de la maire +pt: avĂłs maternos sv: mormor och morfar maximum @@ -6683,6 +7371,7 @@ lv: maksimums nl: maximaal no: maksimalt +oc: al mai pl: maksymalnie pt: máximo ro: maximum @@ -6711,6 +7400,7 @@ lv: apvienot nl: samenvoegen no: slĂĄ sammen +oc: fusionar pl: scal pt: fusĂŁo ro: unifica @@ -6739,6 +7429,7 @@ lv: apvienošana paveikta nl: samenvoeging is uitgevoerd no: sammenslĂĄing utført +oc: fusion acabada pl: scalenie zostaĹ‚o dokonane pt: fusĂŁo terminada ro: executat fuzionarea @@ -6767,6 +7458,7 @@ lv: ziņa pievienota nl: bericht toegevoegd no: melding tilføyet +oc: messatge apondut pl: wiadomość zostaĹ‚a dodana pt: mensagem adicionada ro: adaugat mesajul @@ -6795,6 +7487,7 @@ lv: izdzÄ“sta ziņa nl: bericht verwijderd no: melding fjernet +oc: messatge escafat pl: wiadomość usuniÄ™ta pt: mensagem eliminada ro: mesajul este suprimat @@ -6823,6 +7516,7 @@ lv: ziņa/iepriekšējÄ ziņa/iepriekšējÄ ziņa/nÄkoĹˇÄ ziņa nl: bericht/vorig bericht/vorig bericht/volgend bericht no: melding/forrige melding/forrige melding/neste melding +oc: messatge/messatge precedent/messatges precedents/messatge seguent pl: wiadomość/poprzednia wiadomość/poprzednia wiadomość/nastÄ™pna wiadomość pt: mensagem/mensagem anterior/mensagem anterior/mensagem seguinte ro: mesaj/mesajul anterior/mesajele anterioare/mesajele urmatoara @@ -6831,33 +7525,31 @@ sl: sporoÄŤilo/prejšnje sporoÄŤilo/prejšnja sporoÄŤila/naslednje sporoÄŤilo sv: meddelande/föregĂĄende meddelande/föregĂĄende meddelande/nästa meddelande - M/F -af: M/V -bg: Đś/Đ– -br: Gour/Maouez -ca: M/F -cs: M/Ĺ˝ -da: M/K -de: M/F -en: M/F -eo: Maskla/Ina -es: M/F -et: M/N -fi: M/N -fr: H/F -he: ×–/×  -is: KK/KvK -it: M/F -lv: V/S -nl: M/V -no: M/K -pl: M/Ĺ» -pt: M/F -ro: M/F -ru: Đś/Đ– -sk: M/Ĺ˝ -sl: M/Ĺ˝ -sv: M/K + miscellaneous +de: Verschiedenes +en: Misc +es: Varios +fi: Eri +fr: divers +it: varie +nl: diversen +no: Ăvrig +oc: divèrs +pt: diversos +sv: Ă–vrigt + + miscellaneous information +de: verschiedene Felder +en: other field +es: campo diversos +fi: muut kentät +fr: champs divers +it: voci diverse +nl: verscheidene velden +no: øvrige felt +oc: informacions divèrsas +pt: campos diversos +sv: övriga fält miscellaneous notes bg: разни бележки @@ -6876,6 +7568,7 @@ lv: daĹľÄdas piezÄ«mes nl: diverse aantekeningen no: diverse notater +oc: nòtas divèrsas pl: pozostaĹ‚e uwagi pt: notas diversas ro: insemnari diverse @@ -6884,17 +7577,6 @@ sl: razni zaznamki sv: blandade noteringar - miscellaneous information -de: verschiedene Felder -en: other field -es: campo diversos -fi: muut kentät -fr: champs divers -it: voci diverse -nl: verscheidene velden -no: øvrige felt -sv: övriga fält - missing ancestors af: ontbrekende voorsate bg: липŃващи предци @@ -6915,6 +7597,7 @@ lv: bez tÄlakiem senÄŤiem nl: ontbrekende voorouders no: manglende forfedre +oc: ascendents que mancan pl: brakujÄ…cy przodkowie pt: ascendentes que faltam ro: stramosi necunoscuti @@ -6925,31 +7608,42 @@ missing events de: Fehlende Ereignisse -en: missing events +en: missing facts es: faltan eventos +fi: Puuttuvat asiatiedot fr: Ă©vĂ©nements manquants it: eventi mancanti +nl: ontbrekende evenementen +no: manglende hendelser +oc: eveniments que mancan +pt: eventos em falta +sv: Saknade händelser missing parents de: Eltern fehlen en: Parents unknown es: faltan padres +fi: Vanhemmat tuntemattomia fr: parents manquants it: genitori mancanti +nl: ontbrekende ouders +no: Foreldre ukjent +oc: parents que mancan +pt: pais em falta +sv: Saknade föräldrar missing sosa de: Fehlende SOSA en: Sosa Number es: falta sosa +fi: Sosa-numero fr: sosa manquants it: sosa mancante - - missing spouse -de: Lebenspartner fehlt -en: Spouse unknown -es: falta cĂłnyuge -fr: conjoint manquant -it: coniuge mancante +nl: ontbrekende sosa's +no: Sosa-nummer +oc: Sosa que mancan +pt: sosa em falta +sv: Saknade sosa missing sources de: fehlende Quellenangaben @@ -6960,17 +7654,22 @@ it: senza fonte nl: ontbrekende bronnen no: savnede kilder +oc: fonts que mancan +pt: fontes em falta sv: saknade källor - modification/modifications -de: Ă„nderung/Ă„nderungen -en: update/updates -es: modificaciĂłn/modificaciĂłnes -fi: muutos/muutokset -fr: modification/modifications -it: modifica/modifiche -nl: wijziging/wijzigingen -sv: ändring/ändringar + missing spouse +de: Lebenspartner fehlt +en: Spouse unknown +es: falta cĂłnyuge +fi: Puoliso tuntematon +fr: conjoint manquant +it: coniuge mancante +nl: ontbrekend partner +no: Ektefelle ukjent +oc: conjunt que manca +pt: cĂ´njuge em falta +sv: saknade maka/make modification successful de: Ă„nderung durchgefĂĽhrt @@ -6980,8 +7679,24 @@ fr: modification effectuĂ©e it: modifica effettuata nl: wijziging uitgevoerd +no: Oppdatering fullført +oc: modification acabada +pt: modificação bem sucedida sv: ändring slutförd + modification/modifications +de: Ă„nderung/Ă„nderungen +en: update/updates +es: modificaciĂłn/modificaciĂłnes +fi: muutos/muutokset +fr: modification/modifications +it: modifica/modifiche +nl: wijziging/wijzigingen +no: oppdatering/oppdateringer +oc: modificacion/modificacions +pt: modificação/modificações +sv: ändring/ändringar + modify af: wysig bg: Đ´Đ° Ńе променят @@ -7002,6 +7717,7 @@ lv: izmainÄ«t nl: wijzigen +before no: endre +oc: modificar pl: zaktualizuj :a: pt: modificar ro: modifica @@ -7010,33 +7726,6 @@ sl: spremeni sv: ändra - modify picture -af: wysig prent -bg: Đ´Đ° Ńе променят изображение -br: kemmañ skeudenn -ca: modificar imatge -cs: zmÄ›nit :a: obrázek -da: ændre billede -de: ändern +before Bild -en: update Picture -eo: modifi :a: bildo:a:+n -es: modificar imagen -et: muuda :g: pilt -fi: muokkaa kuva -fr: modifier portrait -he: תמונה לשנות -is: breyta mynd -it: modificare immagine -lv: izmainÄ«t attÄ“li -nl: wijzigen beeld -no: endre bilde -pl: zaktualizuj :a: ilustracja:a:-Ä™ -pt: modificar imagem -ro: modifica imagine -ru: изменить :a: ĐşĐ°Ń€Ń‚Đ¸Đ˝ĐşŃ -sl: spremeni slika -sv: ändra bild - modify %s af: wysig bg: Đ´Đ° Ńе променят @@ -7057,6 +7746,7 @@ lv: izmainÄ«t nl: wijzigen +before no: endre +oc: modificar %s pl: zaktualizuj :a: pt: modificar ro: modifica @@ -7065,6 +7755,34 @@ sl: spremeni sv: ändra + modify picture +af: wysig prent +bg: Đ´Đ° Ńе променят изображение +br: kemmañ skeudenn +ca: modificar imatge +cs: zmÄ›nit :a: obrázek +da: ændre billede +de: ändern +before Bild +en: update Picture +eo: modifi :a: bildo:a:+n +es: modificar imagen +et: muuda :g: pilt +fi: muokkaa kuva +fr: modifier portrait +he: תמונה לשנות +is: breyta mynd +it: modificare immagine +lv: izmainÄ«t attÄ“li +nl: wijzigen beeld +no: endre bilde +oc: modificar l'imatge +pl: zaktualizuj :a: ilustracja:a:-Ä™ +pt: modificar imagem +ro: modifica imagine +ru: изменить :a: ĐşĐ°Ń€Ń‚Đ¸Đ˝ĐşŃ +sl: spremeni slika +sv: ändra bild + months old af: maande oud bg: меŃеца @@ -7085,6 +7803,7 @@ lv: mÄ“nešus vecs nl: maanden oud no: mĂĄneder gammel +oc: meses pl: miesiÄ™cy pt: meses ro: luni @@ -7112,6 +7831,7 @@ lv: MÄ“ness fÄze/jauns MÄ“ness/pirmais ceturksnis/pilns MÄ“ness/pÄ“dÄ“jais ceturksnis nl: maansouderdom/nieuwemaan/eerste kwartier/vollemaan/laatste kwartier no: mĂĄnealder/nymĂĄne/første kvarter/fullmĂĄne/siste kvarter +oc: fasa de la luna/luna novèla/primièr quartièr/tresluc/luna vièlha pl: faza księżyca/nĂłw/pierwsza kwadra/peĹ‚nia/trzecia kwadra pt: dia do mĂŞs lunar/lua nova/quarto crescente/lua cheia/quarto minguante pt-br: idade lunar/lua nova/lua crescente/lua cheia/lua minguante @@ -7141,6 +7861,7 @@ lv: vairÄk nekÄ %d atbildes nl: meer dan %d antwoorden no: mer enn %d svar +oc: mai de %d responsas pl: wiÄ™cej niĹĽ %d odpowiedzi pt: mais de %d respostas ro: mai mult de %s raspunsuri @@ -7150,8 +7871,11 @@ sv: fler än %d svar msg error disconnected +de: sorry, Sie können nur Familien hinzufĂĽgen die mit dem Rest in Verbindung stehen.
Diese Einschränkung wurde durch den Eigentümer der Datenbank hinzugefügt. en: sorry, you can add only families connected to the rest.
This restriction has been added by this database owner. fr: désolé, vous ne pouvez ajouter que des familles connectées au reste.
Cette restriction a été ajoutée par le propriétaire de cette base de données. +it: spiacenti, puoi aggiungere solo delle famiglie collegate al resto.
Questa restrizione è stata aggiunta dal proprietario del data base +oc: o planhi, mas podètz pas apondre que de familhas ligadas.
Aquela restriccion foguèt aponduda pel proprietari d'aquela basa. murdered af: vermoor @@ -7173,6 +7897,7 @@ lv: noslepkavots nl: vermoord no: myrdet +oc: assassinat/assassinada/assassinat(ada) pl: zamordowany/zamordowana/morderstwo pt: assassinado/assassinada/assassinado(a) ro: ucis @@ -7181,56 +7906,6 @@ sl: umorjen/umorjena sv: mördad - n° d'Aboville -de: Nr. Aboville -en: d'Aboville System number -es: N° de Aboville -fi: Numero -fr: n° d’Aboville -it: N° d’Aboville -nl: Abovillenummer -no: nummer -sv: nummer - - n° Sosa -de: Nr. SOSA -en: Sosa -es: nÂş Sosa -fi: Sosa-viite -fr: n° Sosa -it: n° Sosa -nl: Sosa nr. -no: Anenummer -sv: Annummer - - n° Sosa relative to -af: Sosa nommer relatief tot -bg: чиŃло на СоŃĐ° отноŃно -br: niverenn Sosa e keñver -ca: nĂşmero "Sosa"relatiu a -cs: "Sosa" ÄŤĂ­slo vztaĹľenĂ© k -da: Sosa-nummer, refererende til -de: Ahnenkennziffer relativ zu -en: Sosa relative to -eo: numero Sosa relative al -es: nĂşmero Sosa respecto a -et: Sosa number suhtes -fi: Sosa-numero suhteen -fr: n° Sosa par rapport Ă  -he: מספר Sosa ביחס ל- -is: Sosa nĂşmer tengt -it: Numero Sosa relativo a -lv: SOSA pakÄpe attiecÄ«bÄ pret -nl: Sosa nummer ten opzichte van -no: Anenummer i forhold til -pl: numer "Sosa", odnoszÄ…cy siÄ™ do: -pt: nĂşmero Sosa em relação a -ro: numar Sosa in relatie cu -ru: Sosa номер отноŃительно -sk: "Sosa" ÄŤĂ­slo vo vzĹĄahu k -sl: številka"Sosa", v odnosu z -sv: annummer med som proband (Kekules system) - name af: naam bg: име @@ -7251,6 +7926,7 @@ lv: vÄrds nl: naam no: navn +oc: nom pl: imiÄ™ pt: apelido pt-br: nome @@ -7280,6 +7956,7 @@ lv: vÄrds - %s jau ir %tšai personai%t nl: de naam %s is al gebruikt door deze persoon%t no: navn %s brukes allerede av %tdenne personen%t +oc: nom %s ja utilizat per %taquela persona%t pl: imiÄ™ %s jest juĹĽ uĹĽywane przez %ttÄ™ osobÄ™%t pt: apelido %s já utilizado por %testa pessoa%t pt-br: nome %s já utilizado por %testa pessoa%t @@ -7309,6 +7986,7 @@ lv: meklÄ“t nl: navigatie no: navigering +oc: navigacion pl: nawigacja pt: navegação ro: navigatie @@ -7316,17 +7994,6 @@ sl: pregled sv: navigering - preview family tree -de: ĂĽberblick vom Stammbaum -en: Preview Family Tree -es: ver ärbol -fi: yleissilmäys sukutauluun -fr: aperçu de l'arbre -it: anteprima dell’albero -nl: overzicht van de stamboom -no: oversikt over -sv: översikt över - navigation with %t as Sosa reference af: stap met %t as Sosa verwysing bg: навигация чрез чиŃла на СоŃĐ° отноŃно %t @@ -7347,6 +8014,7 @@ lv: meklÄ“t senÄŤus -> %t pÄ“c Sosa pakÄpes nl: navigatie met %t als proband no: navigering med %t som Anenummer +oc: navigacion amb %t coma numèro Sosa de referĂ©ncia pl: nawigacja z numerami "Sosa" odnoszÄ…cymi siÄ™ do osoby: %t pt: navegação com %t como a referĂŞncia Sosa ro: navigatie cu %t referinta Sosa @@ -7355,6 +8023,58 @@ sl: pregled z %t kot Sosa sv: navigering med %t som proband (Kekules system) + nb branches +de: Zweige +en: Lines +es: nĂşm. ramas +fi: Sukulinjat +fr: nb. branches +it: n° rami +nl: aantal takken +no: Grener +oc: nbre brancas +pt: nÂş ramos +sv: nb grenar + + nb children +de: Kinder +en: Children +es: nĂşm. hijos +fi: Lapset +fr: nb. enfants +it: n° figli +nl: aantal kinderen +no: Barn +oc: nbre enfants +pt: nÂş filhos +sv: nb barn + + nb events +de: Ereignisse +en: Facts +es: nĂşm. eventos +fi: Tapahtumat +fr: nb. Ă©vĂ©nements +it: n° eventi +nl: aantal evenementen +no: Hendelser +oc: nbre eveniments +pt: nÂş eventos +sv: nb händelser + + nb individuals +de: Individuen +en: Individuals +es: nĂşm. individuos +fi: Henkilöiden lukumäärä +fr: nb. individus +it: n° individui +nl: aantal personen +no: Individer +oc: nbre individĂşs +pt: nÂş pessoas +sv: nb individer + NB: you should try another relationship computing mode de: zögern Sie nicht eine neue Berechnung auf einer anderen Basis zu beginnen en: you can try another computing option @@ -7364,6 +8084,7 @@ it: non esitare a riavviare un calcolo scegliendo un altro modo di calcolo nl: aarzel niet opnieuw te berekenen via een andere berekeningswijze no: velg en annen utregningsmĂĄte og beregn pĂĄny +oc: podètz ensajar amb un autre metòde de calcul de relacion sv: välj ett annat uträkningssätt och räkna ut igen nephews and nieces @@ -7386,6 +8107,7 @@ lv: brÄÄĽadÄ“li/mÄsasdÄ“li un brÄÄĽameitas/mÄsasmeitas nl: neven en nichten (oom-, tantezegger) no: nevøer og nieser +oc: nebots e nebodas pl: bratankowie lub siostrzeĹ„cy/bratanice lub siostrzenice pt: sobrinhos e sobrinhas ro: nepoti si nepoate @@ -7398,8 +8120,14 @@ de: hier klicken um eine neue Korrektion durchzufĂĽhren en: Continue edit es: pulse aquĂ­ para hacer una nueva correcciĂłn +fi: Jatka muokkaamista fr: cliquez ici pour effectuer une nouvelle correction it: clicca qui per una nuova correzione +nl: hier klikken om een nieuwe correctie uit te voeren +no: Fortsett editering +oc: persegre la modificacion +pt: continuar a edição +sv: Ny uppdatering next relationship path de: nächster Verwandtschaftsgrad @@ -7407,6 +8135,7 @@ es: siguiente ruta de parentesco fr: chemin suivant it: percorso seguente +oc: camin seguent next sibling af: volgende broer/volgende suster/volgende broer of suster @@ -7428,6 +8157,7 @@ lv: nÄkošais brÄlis/nÄkošais mÄsa nl: volgende broer/volgende zuster/volgende broer of zuster no: neste bror/neste søster/neste søsken +oc: fraire/sòrre seguent(a) pl: nastÄ™pny brat lub siostra pt: irmĂŁo seguinte/irmĂŁ seguinte/irmĂŁ(o) seguinte ro: urmatorul frate/urmatoarea sora/ urmatoarele frati si surori @@ -7456,6 +8186,7 @@ lv: nav gadadienas nl: geen verjaardag no: ingen merkedager +oc: pas cap d'aniversari pl: nie ma ĹĽadnej rocznicy pt: nenhum aniversário ro: nu e aniversare @@ -7484,6 +8215,7 @@ lv: nav dzimšanas dienas nl: geen verjaardag no: ingen fødselsdag +oc: pas cap d'aniversari pl: nie ma ĹĽadnej rocznicy urodzin pt: nenhum aniversário de nascimento ro: nu e zi de nastere @@ -7501,6 +8233,8 @@ it: senza ascendenti nl: zonder afstammelingen no: uten etterkommere +oc: pas cap de descendent +pt: sem descendentes sv: utan ättlingar no known relationship link between %s and %s @@ -7523,6 +8257,7 @@ lv: nav radniecÄ«bas saišu starp %s un %s nl: er is geen bekende verwantschap tussen %s en %s no: ikke kjent slektskap mellom %s og %s +oc: pas cap de relacion coneguda entre %s e %s pl: nie sÄ… znane ĹĽadne wiÄ™zy pokrewieĹ„stwa pomiÄ™dzy osobami: %s i %s pt: nenhum grau de parentesco conhecido entre %s e %s ro: nici o relatie intre %s si %s @@ -7531,6 +8266,19 @@ sl: Brez znane zveze med %s in %s sv: ingen känd släktskap emellan %s och %s + no marriage event +de: unverheiratet +en: Partners +es: no casados +fi: Avopuolisot +fr: non mariĂ©s +it: Non sposati +nl: Partners +no: Foreldre +oc: pas maridats +pt: nĂŁo casados +sv: Sambo + no match af: geen passing bg: няма паŃващи данни @@ -7551,6 +8299,7 @@ lv: nav atbilstÄ«bas (nav precÄ“jušies?) nl: niets gevonden no: ingen treff +oc: ges de responsa pl: brak pasujÄ…cej odpowiedzi pt: nenhuma resposta ro: nici un rezultat @@ -7579,6 +8328,7 @@ lv: nav minÄ“ts nl: geen vermelding no: ikke nevnt +oc: pas de mencion pl: bez wzmianki pt: sem informação ro: nementionat @@ -7591,8 +8341,14 @@ de: Keine Ă„nderungen en: No changes es: ninguna modificaciĂłn +fi: Ei muutoksia fr: aucune modification it: nessuna modifica +nl: geen wijziging +no: Ingen endringer +oc: pas de modificacion +pt: nenhuma modificação +sv: Ingen uppdatering no sexes check af: geslag word nie aangedui nie @@ -7614,6 +8370,7 @@ lv: nepÄbaudÄ«t dzimumus nl: homokoppel (geen nazicht op de geslachten) no: ingen kjønnssjekk +oc: contarotlar pas lo sèxe pl: ta sama pĹ‚eć pt: nĂŁo verificar os sexos ro: fara control de gen @@ -7642,6 +8399,7 @@ lv: nav šķīrušies nl: niet gescheiden no: ikke skilt +oc: pas divorciats pl: nie rozwiedzeni pt: nĂŁo divorciado ro: nedivortat @@ -7650,6 +8408,64 @@ sl: brez loÄŤitve sv: inte skilda + not found +af: niks gekry nie +bg: няма резŃлтат от Ń‚ŃŠŃ€Ńенето +br: n'eo ket bet kavet +ca: no localitzat +cs: nenalezeno +da: ikke fundet +de: nicht gefunden +en: not found +eo: ne trovita +es: no encontrado +et: ei leitud +fi: ei löydy +fr: pas trouvĂ© +he: ×ś× × ×ž×¦× +is: fannst ekki +it: non trovato +lv: nav atrodams +nl: niet gevonden +no: ikke funnet +oc: pas trobat(da) +pl: nie znaleziono: +pt: nĂŁo encontrado +ro: negasit +ru: не найден +sk: nenájdenĂ˝ +sl: ni najdeno +sv: hittar inte + + not married +af: Ongetroud +bg: без брак +br: nann euredet +ca: no casats +cs: svobodnĂ­ +da: ikke gift +de: nicht verheiratet +en: not married +eo: ne edziÄťintaj +es: no casados +et: pole abielus +fi: eivät naimisissa +fr: non mariĂ©s +he: ×ś× × ×©×•×ים +is: Ăłgift +it: non sposati +lv: nav precÄ“jušies +nl: niet gehuwd +no: ugift +oc: pas maridats +pl: bez Ĺ›lubu +pt: nĂŁo casados +ro: necasatorit +ru: не в браке +sk: slobodnĂ˝ +sl: brez poroke +sv: ogifta + note/notes af: nota/notas ar: بطاقة/بطاقات @@ -7671,6 +8487,7 @@ lv: piezÄ«me(s) nl: notitie/notities no: notat/notater +oc: nòta/nòtas pl: uwagi pt: nota/notas ro: nota/note @@ -7700,77 +8517,28 @@ lv: pÄrveidotas piezÄ«mes nl: notities veranderd no: notater er endret +oc: nòtas modificadas pl: uwagi zmodyfikowane pt: notas modificadas ro: nota modificata ru: заметки изменены sk: poznámky zmenenĂ© -sl: zaznamek spremenjen -sv: noteringar modifierade - - notes summary -bg: резюме на бележките -de: Zusammenfassung sonstiger Notizen -en: Notes -es: sumario de notas diversas -fr: Sommaire des notes diverses -it: Sommario delle diverse note - - not found -af: niks gekry nie -bg: няма резŃлтат от Ń‚ŃŠŃ€Ńенето -br: n'eo ket bet kavet -ca: no localitzat -cs: nenalezeno -da: ikke fundet -de: nicht gefunden -en: not found -eo: ne trovita -es: no encontrado -et: ei leitud -fi: ei löydy -fr: pas trouvĂ© -he: ×ś× × ×ž×¦× -is: fannst ekki -it: non trovato -lv: nav atrodams -nl: niet gevonden -no: ikke funnet -pl: nie znaleziono: -pt: nĂŁo encontrado -ro: negasit -ru: не найден -sk: nenájdenĂ˝ -sl: ni najdeno -sv: hittar inte +sl: zaznamek spremenjen +sv: noteringar modifierade - not married -af: Ongetroud -bg: без брак -br: nann euredet -ca: no casats -cs: svobodnĂ­ -da: ikke gift -de: nicht verheiratet -en: not married -eo: ne edziÄťintaj -es: no casados -et: pole abielus -fi: eivät naimisissa -fr: non mariĂ©s -he: ×ś× × ×©×•×ים -is: Ăłgift -it: non sposati -lv: nav precÄ“jušies -nl: niet gehuwd -no: ugift -pl: bez Ĺ›lubu -pt: nĂŁo casados -ro: necasatorit -ru: не в браке -sk: slobodnĂ˝ -sl: brez poroke -sv: ogifta + notes summary +bg: резюме на бележките +de: Zusammenfassung sonstiger Notizen +en: Notes +es: sumario de notas diversas +fi: Merkinnät +fr: Sommaire des notes diverses +it: Sommario delle diverse note +nl: Overzicht van diverse notities +no: Merknader +oc: Ensenhador de las nòtas divèrsas +pt: sumário de notas diversas +sv: Summerade noteringar nth af: n-de/1ste/2de/3de/4de/5de/6de/7de/8ste/9de/10de/11de/12de/13de/14de/15de/16de/17de/18de/19de/20ste/21ste/22ste/23ste/24ste/25ste/26ste/27ste/28ste/29ste/30de/31ste/32ste/33ste/34ste/35ste/36ste/37ste/38ste/39ste/40ste/41ste/42ste/43ste/44ste/45ste/46ste/47ste/48ste/49ste/50ste/51ste/52ste/53ste/54ste/55ste/56ste/57ste/58ste/59ste/60ste/61ste/62ste/63ste/64ste/65ste/66ste/67ste/68ste/69ste/70ste/71ste/72ste/73ste/74ste/75ste/76ste/77ste/78ste/79ste/80ste/81ste/82ste/83ste/84ste/85ste/86ste/87ste/88ste/89ste/90ste/91ste/92ste/93ste/94ste/95ste/96ste/97ste/98ste/99ste @@ -7792,6 +8560,7 @@ lv: /1./2./3./4./5./6./7./8./9./10./11./12./13./14./15./16./17./18./19./20./21./22./23./24./25./26./27./28./29./30./31./32./33./34./35./36./37./38./39./40./41./42./43./44./45./46./47./48./49./50./51./52./53./54./55./56./57./58./59./60./61./62./63./64./65./66./67./68./69./70./71./72./73./74./75./76./77./78./79./80./81./82./83./84./85./86./87./88./89./90./91./92./93./94./95./96./97./98./99. nl: n-de/1ste/2de/3de/4de/5de/6de/7de/8ste/9de/10de/11de/12de/13de/14de/15de/16de/17de/18de/19de/20ste/21ste/22ste/23ste/24ste/25ste/26ste/27ste/28ste/29ste/30de/31ste/32ste/33ste/34ste/35ste/36ste/37ste/38ste/39ste/40ste/41ste/42ste/43ste/44ste/45ste/46ste/47ste/48ste/49ste/50ste/51ste/52ste/53ste/54ste/55ste/56ste/57ste/58ste/59ste/60ste/61ste/62ste/63ste/64ste/65ste/66ste/67ste/68ste/69ste/70ste/71ste/72ste/73ste/74ste/75ste/76ste/77ste/78ste/79ste/80ste/81ste/82ste/83ste/84ste/85ste/86ste/87ste/88ste/89ste/90ste/91ste/92ste/93ste/94ste/95ste/96ste/97ste/98ste/99ste no: n./første/andre/tredje/fjerde/femte/sjette/syvende/ĂĄttende/niende/tiende/ellevte/tolvte/trettende/fjortende/femtende/sekstende/søttende/attende/nittende/tyvende/21./22./23./24./25./26./27./28./29./30./31./32./33./34./35./36./37./38./39./40./41./42./43./44./45./46./47./48./49./50./51./52./53./54./55./56./57./58./59./60./61./62./63./64./65./66./67./68./69./70./71./72./73./74./75./76./77./78./79./80./81./82./83./84./85./86./87./88./89./90./91./92./93./94./95./96./97./98./99./100./101./102./103./104./105./106./107./108./109./110./111./112./113./114./115./116./117./118./119./120./121./122./123./124./125./126./127./128./129./130. +oc: n-en/1èr/2nd/3en/4en/5en/6en/7en/8en/9en/10en/11en/12en/13en/14en/15en/16en/17en/18en/19en/20en/21en/22en/23en/24en/25en/26en/27en/28en/29en/30en/31en/32en/33en/34en/35en/36en/37en/38en/39en/40en/41en/42en/43en/44en/45en/46en/47en/48en/49en/50en/51en/52en/53en/54en/55en/56en/57en/58en/59en/60en/61en/62en/63en/64en/65en/66en/67en/68en/69en/70en/71en/72en/73en/74en/75en/76en/77en/78en/79en/80en/81en/82en/83en/84en/85en/86en/87en/88en/89en/90en/91en/92en/93en/94en/95en/96en/97en/98en/99en pl: n./1./2./3./4./5./6./7./8./9./10./11./12./13./14./15./16./17./18./19./20./21./22./23./24./25./26./27./28./29./30./31./32./33./34./35./36./37./38./39./40./41./42./43./44./45./46./47./48./49./50./51./52./53./54./55./56./57./58./59./60./61./62./63./64./65./66./67./68./69./70./71./72./73./74./75./76./77./78./79./80./81./82./83./84./85./86./87./88./89./90./91./92./93./94./95./96./97./98./99. pt: n-Ă©simo/1ro/2ndo/3ro/4rto/5to/6to/7mo/8vo/9no/10mo/11ro/12ndo/13ro/14rto/15to/16to/17mo/18vo/19no/20mo/21ro/22ndo/23ro/24rto/25to/26to/27mo/28vo/29no/30mo/31ro/32ndo/33ro/34rto/35to/36to/37mo/38vo/39no/40mo/41ro/42ndo/43ro/44rto/45to/46to/47mo/48vo/49no/50mo/51ro/52ndo/53ro/54rto/55to/56to/57mo/58vo/59no/60mo/61ro/62ndo/63ro/64rto/65to/66to/67mo/68vo/69no/70mo/71ro/72ndo/73ro/74rto/75to/76to/77mo/78vo/79no/80mo/81ro/82ndo/83ro/84rto/85to/86to/87mo/88vo/89no/90mo/91ro/92ndo/93ro/94rto/95to/96to/97mo/98vo/99no pt-br: n-Ă©simo/1Âş/2Âş/3Âş/4Âş/5Âş/6Âş/7Âş/8Âş/9Âş/10Âş/11Âş/12Âş/13Âş/14Âş/15Âş/16Âş/17Âş/18Âş/19Âş/20Âş/21Âş/22Âş/23Âş/24Âş/25Âş/26Âş/27Âş/28Âş/29Âş/30Âş/31Âş/32Âş/33Âş/34Âş/35Âş/36Âş/37Âş/38Âş/39Âş/40Âş/41Âş/42Âş/43Âş/44Âş/45Âş/46Âş/47Âş/48Âş/49Âş/50Âş/51Âş/52Âş/53Âş/54Âş/55Âş/56Âş/57Âş/58Âş/59Âş/60Âş/61Âş/62Âş/63Âş/64Âş/65Âş/66Âş/67Âş/68Âş/69Âş/70Âş/71Âş/72Âş/73Âş/74Âş/75Âş/76Âş/77Âş/78Âş/79Âş/80Âş/81Âş/82Âş/83Âş/84Âş/85Âş/86Âş/87Âş/88Âş/89Âş/90Âş/91Âş/92Âş/93Âş/94Âş/95Âş/96Âş/97Âş/98Âş/99Âş @@ -7821,6 +8590,7 @@ lv: /1./2./3./4./5./6./7./8./9./10./11./12./13./14./15./16./17./18./19./20./21./22./23./24./25./26./27./28./29./30./31./32./33./34./35./36./37./38./39./40./41./42./43./44./45./46./47./48./49./50./51./52./53./54./55./56./57./58./59./60./61./62./63./64./65./66./67./68./69./70./71./72./73./74./75./76./77./78./79./80./81./82./83./84./85./86./87./88./89./90./91./92./93./94./95./96./97./98./99. nl: n/1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/19/20/21/22/23/24/25/26/27/28/29/30/31/32/33/34/35/36/37/38/39/40/41/42/43/44/45/46/47/48/49/50/51/52/53/54/55/56/57/58/59/60/61/62/63/64/65/66/67/68/69/70/71/72/73/74/75/76/77/78/79/80/81/82/83/84/85/86/87/88/89/90/91/92/93/94/95/96/97/98/99 no: n/to/tre/fir/fem/seks/syv/ĂĄtte/ni/ti/elleve/tolv/tretten/fjorten/femten/seksten/søtten/atten/nitten/tyve/21/22/23/24/25/26/27/28/29/30/31/32/33/34/35/36/37/38/39/40/41/42/43/44/45/46/47/48/49/50/51/52/53/54/55/56/57/58/59/60/61/62/63/64/65/66/67/68/69/70/71/72/73/74/75/76/77/78/79/80/81/82/83/84/85/86/87/88/89/90/91/92/93/94/95/96/97/98/99 +oc: n-en/1èr/2nd/3en/4en/5en/6en/7en/8en/9en/10en/11en/12en/13en/14en/15en/16en/17en/18en/19en/20en/21en/22en/23en/24en/25en/26en/27en/28en/29en/30en/31en/32en/33en/34en/35en/36en/37en/38en/39en/40en/41en/42en/43en/44en/45en/46en/47en/48en/49en/50en/51en/52en/53en/54en/55en/56en/57en/58en/59en/60en/61en/62en/63en/64en/65en/66en/67en/68en/69en/70en/71en/72en/73en/74en/75en/76en/77en/78en/79en/80en/81en/82en/83en/84en/85en/86en/87en/88en/89en/90en/91en/92en/93en/94en/95en/96en/97en/98en/99en pl: n-tego/1./2./3./4./5./6./7./8./9./10./11./12./13./14./15./16./17./18./19./20./21./22./23./24./25./26./27./28./29./30./31./32./33./34./35./36./37./38./39./40./41./42./43./44./45./46./47./48./49./50./51./52./53./54./55./56./57./58./59./60./61./62./63./64./65./66./67./68./69./70./71./72./73./74./75./76./77./78./79./80./81./82./83./84./85./86./87./88./89./90./91./92./93./94./95./96./97./98./99. pt: n-Ă©simo/1ro/2ndo/3ro/4rto/5to/6to/7mo/8vo/9no/10mo/11ro/12ndo/13ro/14rto/15to/16to/17mo/18vo/19no/20mo/21ro/22ndo/23ro/24rto/25to/26to/27mo/28vo/29no/30mo/31ro/32ndo/33ro/34rto/35to/36to/37mo/38vo/39no/40mo/41ro/42ndo/43ro/44rto/45to/46to/47mo/48vo/49no/50mo/51ro/52ndo/53ro/54rto/55to/56to/57mo/58vo/59no/60mo/61ro/62ndo/63ro/64rto/65to/66to/67mo/68vo/69no/70mo/71ro/72ndo/73ro/74rto/75to/76to/77mo/78vo/79no/80mo/81ro/82ndo/83ro/84rto/85to/86to/87mo/88vo/89no/90mo/91ro/92ndo/93ro/94rto/95to/96to/97mo/98vo/99no pt-br: n-Ă©simo/1Âş/2Âş/3Âş/4Âş/5Âş/6Âş/7Âş/8Âş/9Âş/10Âş/11Âş/12Âş/13Âş/14Âş/15Âş/16Âş/17Âş/18Âş/19Âş/20Âş/21Âş/22Âş/23Âş/24Âş/25Âş/26Âş/27Âş/28Âş/29Âş/30Âş/31Âş/32Âş/33Âş/34Âş/35Âş/36Âş/37Âş/38Âş/39Âş/40Âş/41Âş/42Âş/43Âş/44Âş/45Âş/46Âş/47Âş/48Âş/49Âş/50Âş/51Âş/52Âş/53Âş/54Âş/55Âş/56Âş/57Âş/58Âş/59Âş/60Âş/61Âş/62Âş/63Âş/64Âş/65Âş/66Âş/67Âş/68Âş/69Âş/70Âş/71Âş/72Âş/73Âş/74Âş/75Âş/76Âş/77Âş/78Âş/79Âş/80Âş/81Âş/82Âş/83Âş/84Âş/85Âş/86Âş/87Âş/88Âş/89Âş/90Âş/91Âş/92Âş/93Âş/94Âş/95Âş/96Âş/97Âş/98Âş/99Âş @@ -7850,6 +8620,7 @@ lv: /1./2./3./4./5./6./7./8./9./10./11./12./13./14./15./16./17./18./19./20./21./22./23./24./25./26./27./28./29./30./31./32./33./34./35./36./37./38./39./40./41./42./43./44./45./46./47./48./49./50./51./52./53./54./55./56./57./58./59./60./61./62./63./64./65./66./67./68./69./70./71./72./73./74./75./76./77./78./79./80./81./82./83./84./85./86./87./88./89./90./91./92./93./94./95./96./97./98./99. nl: n-de/1ste/2de/3de/4de/5de/6de/7de/8ste/9de/10de/11de/12de/13de/14de/15de/16de/17de/18de/19de/20ste/21ste/22ste/23ste/24ste/25ste/26ste/27ste/28ste/29ste/30de/31ste/32ste/33ste/34ste/35ste/36ste/37ste/38ste/39ste/40ste/41ste/42ste/43ste/44ste/45ste/46ste/47ste/48ste/49ste/50ste/51ste/52ste/53ste/54ste/55ste/56ste/57ste/58ste/59ste/60ste/61ste/62ste/63ste/64ste/65ste/66ste/67ste/68ste/69ste/70ste/71ste/72ste/73ste/74ste/75ste/76ste/77ste/78ste/79ste/80ste/81ste/82ste/83ste/84ste/85ste/86ste/87ste/88ste/89ste/90ste/91ste/92ste/93ste/94ste/95ste/96ste/97ste/98ste/99ste no: n./første/andre/tredje/fjerde/femte/sjette/syvende/ĂĄttende/niende/tiende/ellevte/tolvte/trettende/fjortende/femtende/sekstende/søttende/attende/nittende/tyvende/21./22./23./24./25./26./27./28./29./30./31./32./33./34./35./36./37./38./39./40./41./42./43./44./45./46./47./48./49./50./51./52./53./54./55./56./57./58./59./60./61./62./63./64./65./66./67./68./69./70./71./72./73./74./75./76./77./78./79./80./81./82./83./84./85./86./87./88./89./90./91./92./93./94./95./96./97./98./99./100./101./102./103./104./105./106./107./108./109./110./111./112./113./114./115./116./117./118./119./120./121./122./123./124./125./126./127./128./129./130. +oc: n-ena/1èra/2nda/3ena/4ena/5ena/6ena/7ena/8ena/9ena/10ena/11ena/12ena/13ena/14ena/15ena/16ena/17ena/18ena/19ena/20ena/21ena/22ena/23ena/24ena/25ena/26ena/27ena/28ena/29ena/30ena/31ena/32ena/33ena/34ena/35ena/36ena/37ena/38ena/39ena/40ena/41ena/42ena/43ena/44ena/45ena/46ena/47ena/48ena/49ena/50ena/51ena/52ena/53ena/54ena/55ena/56ena/57ena/58ena/59ena/60ena/61ena/62ena/63ena/64ena/65ena/66ena/67ena/68ena/69ena/70ena/71ena/72ena/73ena/74ena/75ena/76ena/77ena/78ena/79ena/80ena/81ena/82ena/83ena/84ena/85ena/86ena/87ena/88ena/89ena/90ena/91ena/92ena/93ena/94ena/95ena/96ena/97ena/98ena/99ena pl: n/1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/19/20/21/22/23/24/25/26/27/28/29/30/31/32/33/34/35/36/37/38/39/40/41/42/43/44/45/46/47/48/49/50/51/52/53/54/55/56/57/58/59/60/61/62/63/64/65/66/67/68/69/70/71/72/73/74/75/76/77/78/79/80/81/82/83/84/85/86/87/88/89/90/91/92/93/94/95/96/97/98/99 pt: n-Ă©sima/1ra/2nda/3ra/4ta/5ta/6ta/7ma/8va/9na/10ma/11ra/12nda/13ra/14ta/15ta/16ta/17ma/18va/19na/20ma/21ra/22nda/23ra/24ta/25ta/26ta/27ma/28va/29na/30ma/31ra/32nda/33ra/34ta/35ta/36ta/37ma/38va/39na/40ma/41ra/42nda/43ra/44ta/45ta/46ta/47ma/48va/49na/50ma/51ra/52nda/53ra/54ta/55ta/56ta/57ma/58va/59na/60ma/61ra/62nda/63ra/64ta/65ta/66ta/67ma/68va/69na/70ma/71ra/72nda/73ra/74ta/75ta/76ta/77ma/78va/79na/80ma/81ra/82nda/83ra/84ta/85ta/86ta/87ma/88va/89na/90ma/91ra/92nda/93ra/94ta/95ta/96ta/97ma/98va/99na pt-br: n-Ă©sima/1Âş/2Âş/3Âş/4Âş/5Âş/6Âş/7Âş/8Âş/9Âş/10Âş/11Âş/12Âş/13Âş/14Âş/15Âş/16Âş/17Âş/18Âş/19Âş/20Âş/21Âş/22Âş/23Âş/24Âş/25Âş/26Âş/27Âş/28Âş/29Âş/30Âş/31Âş/32Âş/33Âş/34Âş/35Âş/36Âş/37Âş/38Âş/39Âş/40Âş/41Âş/42Âş/43Âş/44Âş/45Âş/46Âş/47Âş/48Âş/49Âş/50Âş/51Âş/52Âş/53Âş/54Âş/55Âş/56Âş/57Âş/58Âş/59Âş/60Âş/61Âş/62Âş/63Âş/64Âş/65Âş/66Âş/67Âş/68Âş/69Âş/70Âş/71Âş/72Âş/73Âş/74Âş/75Âş/76Âş/77Âş/78Âş/79Âş/80Âş/81Âş/82Âş/83Âş/84Âş/85Âş/86Âş/87Âş/88Âş/89Âş/90Âş/91Âş/92Âş/93Âş/94Âş/95Âş/96Âş/97Âş/98Âş/99Âş @@ -7879,6 +8650,7 @@ lv: nummurs nl: nummer no: nummer +oc: numèro pl: numer pt: nĂşmero ro: numar @@ -7887,34 +8659,6 @@ sl: številka sv: nummer - nb branches -de: Zweige -en: Lines -es: nĂşm. ramas -fr: nb. branches -it: n° rami - - nb children -de: Kinder -en: Children -es: nĂşm. hijos -fr: nb. enfants -it: n° figli - - nb events -de: Ereignisse -en: Events -es: nĂşm. eventos -fr: nb. Ă©vĂ©nements -it: n° eventi - - nb individuals -de: Individuen -en: Individuals -es: nĂşm. individuos -fr: nb. individus -it: n° individui - number of branches af: aantal stake bg: брой на клоновете @@ -7935,6 +8679,7 @@ lv: zaru skaits nl: aantal takken no: antall grener +oc: nombre de brancas pl: liczba linii (gaĹ‚Ä™zi) pt: nĂşmero de ramos ro: numar de ramuri @@ -7947,22 +8692,40 @@ de: Anzahl der Kinder en: Number of children es: nĂşmero de hijos +fi: Lasten lukumäärä fr: nombre d’enfants it: numero di figli +nl: aantal kinderen +no: Antall barn +oc: nombre d'enfants +pt: nĂşmero de filhos +sv: Antal barn + + number of events +de: Anzahl der Ereignisse +en: Number of Facts +es: nĂşmero de eventos +fi: Tapahtumien lukumäärä +fr: nombre d'Ă©vĂ©nements +it: numero d'eventi +nl: aantal evenementen +no: Antall hendelser +oc: nombre d'eveniments +pt: nĂşmero de eventos +sv: Antal händelser number of individuals de: Anzahl der Individuen en: Number of Individuals es: nĂşmero de individuos +fi: Henkilöiden lukumäärä fr: nombre d'individus it: numero d'individui - - number of events -de: Anzahl der Ereignisse -en: Number of Events -es: nĂşmero de eventos -fr: nombre d'Ă©vĂ©nements -it: numero d'eventi +nl: aantal personen +no: Antall individer +oc: nombre d'individus +pt: nĂşmero de pessoas +sv: Antal individer number of living persons: bg: брой на живите лица: @@ -7980,6 +8743,7 @@ lv: dzÄ«vo personu skaits: nl: aantal personen in leven: no: antall personer i live: +oc: nombre de personas vivas: pl: liczba osĂłb ĹĽyjÄ…cych: pt: nĂşmero de pessoas vivas : ro: numarul de persoane in viata: @@ -7988,6 +8752,60 @@ sl: število Ĺľivih oseb sv: antal levande personer: + n° d'Aboville +de: Nr. Aboville +en: d'Aboville System number +es: N° de Aboville +fi: Numero +fr: n° d’Aboville +it: N° d’Aboville +nl: Abovillenummer +no: nummer +oc: n° d'Aboville +pt: n° de Aboville +sv: nummer + + n° Sosa +de: Nr. SOSA +en: Sosa +es: nÂş Sosa +fi: Sosa-viite +fr: n° Sosa +it: n° Sosa +nl: Sosa nr. +no: Anenummer +oc: n° de Sosa +sv: Annummer + + n° Sosa relative to +af: Sosa nommer relatief tot +bg: чиŃло на СоŃĐ° отноŃно +br: niverenn Sosa e keñver +ca: nĂşmero "Sosa"relatiu a +cs: "Sosa" ÄŤĂ­slo vztaĹľenĂ© k +da: Sosa-nummer, refererende til +de: Ahnenkennziffer relativ zu +en: Sosa relative to +eo: numero Sosa relative al +es: nĂşmero Sosa respecto a +et: Sosa number suhtes +fi: Sosa-numero suhteen +fr: n° Sosa par rapport Ă  +he: מספר Sosa ביחס ל- +is: Sosa nĂşmer tengt +it: Numero Sosa relativo a +lv: SOSA pakÄpe attiecÄ«bÄ pret +nl: Sosa nummer ten opzichte van +no: Anenummer i forhold til +oc: n° de Sosa relatiu a +pl: numer "Sosa", odnoszÄ…cy siÄ™ do: +pt: nĂşmero Sosa em relação a +ro: numar Sosa in relatie cu +ru: Sosa номер отноŃительно +sk: "Sosa" ÄŤĂ­slo vo vzĹĄahu k +sl: številka"Sosa", v odnosu z +sv: annummer med som proband (Kekules system) + occupation/occupations af: beroep bg: занятие @@ -8008,6 +8826,7 @@ lv: nodarbošanÄs nl: beroep/beroepen no: yrke/yrke +oc: ocupacion pl: zawĂłd pt: ocupação ro: ocupatie @@ -8037,6 +8856,7 @@ lv: miršanas nl: zeker overleden no: helt sikkert avgĂĄtt ved døden +oc: segurament mòrt(a) pl: zmarĹ‚ pt: falecido ro: a decedat @@ -8065,6 +8885,7 @@ lv: %s-Ä paaudzÄ“ nl: van de %s generatie no: av den %s generasjon +ca: a la %s generacion pl: w %s. pokoleniu pt: da %s geração ro: de generatia %s @@ -8073,6 +8894,35 @@ sl: %s generacije sv: av den %s generationen + on %s's side +af: aan die kant van %s +bg: от Ńтрана на %s +br: eus tu %s +ca: per part de %s +cs: ze strany :g:%s +da: fra %s's side +de: von %ss Seite +en: on %s's side +eo: de la flanko de %s +es: por parte de %s +et: %s poolt +fi: henkilön %s puolelta +fr: du cĂ´tĂ© de %s +he: בצד של %s +is: á %s hliĂ° +it: dalla parte di %s +lv: %s-jÄ pusÄ“ +nl: van %s's kant +no: fra %ss slektside +oc: de la part de %s +pl: ze strony osoby: %s +pt: pelo lado de %s +ro: de partea %s +ru: ŃĐľ Ńтороны %s +sk: zo strany :g:%s +sl: po strani %s +sv: frĂĄn %ss släktsida + on (day month year) af: op ar: ŮŠŮŮ… @@ -8094,6 +8944,7 @@ lv: datums: nl: op no: den +oc: lo pl: dnia pt: a ro: la @@ -8103,6 +8954,36 @@ sv: den zh: 于 + on (weekday day month year) +af: +bg: +br: d'ar +ca: +cs: +da: +de: +en: +eo: +es: +et: :i: +fi: :e: +fr: +he: +is: +it: +lv: +nl: +no: +oc: lo +pl: w :a: +pt: +ro: +ru: +sk: +sl: +sv: +zh: + one day old af: een dag oud bg: на един ден @@ -8123,6 +9004,7 @@ lv: vienu dienu vecs nl: Ă©Ă©n dag oud no: en dag gammel +oc: un jorn pl: w wieku 1 dnia pt: um dia ro: o zi @@ -8151,6 +9033,7 @@ lv: vienu mÄ“nesi vecs nl: Ă©Ă©n maand oud no: en mĂĄned gammel +oc: un mes pl: w wieku 1 miesiÄ…ca pt: um mĂŞs ro: o luna @@ -8179,6 +9062,7 @@ lv: vienu gadu vecs nl: Ă©Ă©n jaar oud no: ett ĂĄr gammel +oc: un an pl: w wieku 1 roku pt: um ano ro: un an @@ -8207,6 +9091,7 @@ lv: tikai izvÄ“lÄ“tajai paaudzei nl: alleen de geselecteerde generatie no: bare den valgte generasjonen +oc: sonque la generacion causida pl: tylko wybrane pokolenie pt: sĂł a geração selecionada ro: numai generatia aleasa @@ -8215,63 +9100,6 @@ sl: samo izbrana generacija sv: endast den valda generationen - on %s's side -af: aan die kant van %s -bg: от Ńтрана на %s -br: eus tu %s -ca: per part de %s -cs: ze strany :g:%s -da: fra %s's side -de: von %ss Seite -en: on %s's side -eo: de la flanko de %s -es: por parte de %s -et: %s poolt -fi: henkilön %s puolelta -fr: du cĂ´tĂ© de %s -he: בצד של %s -is: á %s hliĂ° -it: dalla parte di %s -lv: %s-jÄ pusÄ“ -nl: van %s's kant -no: fra %ss slektside -pl: ze strony osoby: %s -pt: pelo lado de %s -ro: de partea %s -ru: ŃĐľ Ńтороны %s -sk: zo strany :g:%s -sl: po strani %s -sv: frĂĄn %ss släktsida - - on (weekday day month year) -af: -bg: -br: d'ar -ca: -cs: -da: -de: -en: -eo: -es: -et: :i: -fi: :e: -fr: -he: -is: -it: -lv: -nl: -no: -pl: w :a: -pt: -ro: -ru: -sk: -sl: -sv: -zh: - optional af: opsioneel bg: по желание @@ -8292,6 +9120,7 @@ lv: neobligÄts nl: optioneel no: valgfritt +oc: facultatiu pl: opcjonalnie pt: opcional ro: optional @@ -8321,6 +9150,7 @@ lv: vai nl: of no: eller +oc: o pl: lub pt: ou ro: sau @@ -8346,6 +9176,7 @@ lv: cita darbÄ«ba nl: andere acties no: andre tiltak +oc: autra accion pl: inne dziaĹ‚ania pt: outra ação ro: alte mÄsuri @@ -8376,6 +9207,7 @@ lv: vecÄki nl: ouders no: foreldre +oc: parents pl: rodzice:a:-Ăłw pt: pais ro: parinti @@ -8394,6 +9226,8 @@ it: nonni paterni nl: grootouders langs vaderszijde no: farmor og farfar +oc: grands paternals +pt: avĂłs paternos sv: farmor och farfar person added @@ -8416,6 +9250,7 @@ lv: persona pievienota nl: persoon toegevoegd no: person opprettet +oc: persona aponduda pl: osoba zostaĹ‚a dodana pt: pessoa acrescentada ro: persoana adaugata @@ -8444,6 +9279,7 @@ lv: persona izdzÄ“sta nl: persoon verwijderd no: person fjernet +oc: persona escafada pl: osoba zostaĹ‚a usunieta pt: pessoa suprimida ro: persoana suprimata @@ -8472,6 +9308,7 @@ lv: personas dati mainÄ«ti nl: persoon veranderd no: person endret +oc: persona modificada pl: dane poniĹĽszej osoby zostaĹ‚y zaktualizowane pt: pessoa modificada ro: persoana modificata @@ -8484,8 +9321,14 @@ de: Quellenangabe-Individuum en: Source of individual es: fuente individuo +fi: Henkilön lähdetiedot fr: source individu it: fonte individuo +nl: bron persoon +no: Kilde til individ +oc: font de la persona +pt: fonte pessoa +sv: Personkälla person/persons af: persoon/persone @@ -8507,6 +9350,7 @@ lv: persona(s) nl: persoon/personen no: person/personer +oc: persona/personas pl: osoba:a:-Ä™/osoby pt: pessoa/pessoas ro: persoana/persoane @@ -8535,6 +9379,7 @@ lv: peronas ar vienÄdiem vÄrdiem nl: personen met dezelfde naam no: personer som har samme navn +oc: personas del nom identic pl: osoby o tym samym imieniu i nazwisku pt: pessoas com o mesmo apelido pt-br: pessoas com o mesmo nome @@ -8544,6 +9389,19 @@ sl: osebe z istim imenom sv: personer som har samma namn + photos & documents +de: Fotos & Dokumente +en: Archive & Pictures +es: Fotos & documentos +fi: Arkisto & Kuvat +fr: Photos & Documents +it: Foto & Documenti +nl: Archief en foto's +no: Arkiv & Bilder +oc: fotos e documents +pt: Arquivo & Imagens +sv: Arkiv & Bilder + place af: plek bg: ĐĽŃŹŃŃ‚Đľ @@ -8564,6 +9422,7 @@ lv: vieta nl: plaats no: sted +oc: lòc pl: miejsce pt: lugar ro: localitate @@ -8572,17 +9431,6 @@ sl: kraj sv: plats - %s modified -de: %s geändert -en: %s modified -es: %s modificada -fi: %s muokattu -fr: %s modifiĂ© -it: %s modificata -nl: %s veranderd -no: %s er endret -sv: %s ändrad - places de: orte en: places @@ -8592,8 +9440,23 @@ it: luoghi nl: plaatsen no: steder +oc: lòcs +pt: locais sv: orternas + plus +de: Mehr +en: More +es: Más +fi: Lisää +fr: plus +it: In piĂą +nl: Meer +no: Mer +oc: Mai +pt: Mais +sv: Mer + population pyramid bg: възраŃтова пирамида cs: populacna pyramida @@ -8610,6 +9473,7 @@ lv: paaudĹľu piramÄ«da nl: bevolkingspiramide no: befolkningspyramide +oc: piramida de las edats pl: piramida wieku pt: pirâmide populacional ro: piramida demograficÄ @@ -8633,6 +9497,7 @@ lv: iespÄ“jama dublēšanÄs nl: eventuele dubbels no: mulige dubletter +oc: dobles possibles pl: moĹĽliwe duplikaty pt: eventual duplicidade ro: posibile dublete @@ -8661,6 +9526,7 @@ lv: iespÄ“jams nl: mogelijkerwijze no: muligens +oc: possiblament pl: prawdopodobnie pt: possivelmente ro: poate @@ -8689,6 +9555,7 @@ lv: precizitÄte nl: precisie no: nøyaktighet +oc: precision pl: dokĹ‚adność pt: precisĂŁo ro: precizie @@ -8697,6 +9564,19 @@ sl: natanÄŤnost sv: precision + preview family tree +de: ĂĽberblick vom Stammbaum +en: Preview Family Tree +es: ver ärbol +fi: Yleiskatsaus sukutauluun +fr: aperçu de l'arbre +it: anteprima dell’albero +nl: overzicht van de stamboom +no: oversikt over +oc: vista de l'arbre +pt: ver árvore +sv: översikt över + previous sibling af: vorige broer/vorige suster/vorige broer of suster bg: предхождащ брат/предхождаща ŃеŃтра/предхождащ брат или предхождаща ŃеŃтра @@ -8717,6 +9597,7 @@ lv: iepriekšējais brÄlis/iepriekšējais mÄsa nl: vorige broer/vorige zuster/vorige broer of zuster no: forrige bror/forrige søster/forrige søsken +oc: fraire precedent/sòrre precedenta/fraire o sòrre/precedent(a) pl: poprzedni brat lub siostra pt: irmĂŁo precedente/irmĂŁ precedente/irmĂŁ(o) precedente ro: frate precedent/soraprecedenta/frati sau surori precedente @@ -8745,6 +9626,7 @@ lv: privÄts nl: persoonlijk no: privat +oc: privat pl: bez danych osobowych pt: privado ro: privat @@ -8773,6 +9655,7 @@ lv: publisks nl: publieke no: offentlig +oc: public pl: bez ograniczeĹ„ pt: pĂşblico ro: public @@ -8801,6 +9684,7 @@ lv: publiskais vÄrds nl: publieke naam no: offisielt navn +oc: nom public pl: imiÄ™ oficjalne pt: nome pĂşblico ro: nume public @@ -8829,6 +9713,7 @@ lv: paskaidrojuma vÄrds nl: bijnaam no: kallenavn +oc: qualificatiu pl: przydomek pt: alcunha ro: calificativ @@ -8857,6 +9742,7 @@ lv: atzÄ«ts dÄ“ls/mÄsa/bÄ“rns (?) nl: erkende zoon/erkende dochter/erkend kind no: bekrefteter far/bekrefteter mor/bekrefter foreldre +oc: filh reconegut/filha reconeguda/enfants reconeguts pl: uznany syn/uznana cĂłrka/uznane dziecko pt: filho reconhecido/filha reconhecida/filhos reconhecidos ro: fiu recunoscut/fica recunoscuta/copil recunoscut @@ -8885,6 +9771,7 @@ lv: atzÄ«ts tÄ“vs/mÄte/vecÄki (?) nl: erkennende vader/erkennende moeder/erkennende ouders no: bekreftet far/bekreftet mor/bekreftede foreldre +oc: paire reconegut/maire reconeguda/parents reconeguts pl: uznajÄ…cy ojciec/uznajÄ…ca matka/uznajÄ…cy rodzice pt: pai que o reconheceu/mĂŁe que o reconheceu/pais que o reconheceram ro: tata recunoscator/mama recunoscatoare/parinti recunoscatori @@ -8902,8 +9789,23 @@ it: riferimento nl: referentie no: referanse +oc: referĂ©ncia +pt: referĂŞncia sv: referens + region +de: Region +en: Region +es: RegiĂłn +fi: Alue +fr: RĂ©gion +it: Provincia +nl: Regio +no: Fylke +oc: Region +pt: RegiĂŁo +sv: Län + relation/relations af: verwant/verwante bg: взаимоотноŃение/взаимоотноŃения @@ -8924,6 +9826,7 @@ lv: saistÄ«ba/saistÄ«bas nl: verwantschap/verwantschappen no: relasjon/relasjoner +oc: relacion/relacions pl: inne wiÄ™zy pt: relação/relações ro: relatie/relatii @@ -8952,6 +9855,7 @@ lv: radniecÄ«ba nl: verwantschap no: slektskap +oc: parentat pl: pokrewieĹ„stwo pt: parentesco ro: relatie @@ -8969,6 +9873,8 @@ it: ascendenti diretti nl: rechtstreekse voorouders no: aner +oc: ascendents dirèctes +pt: ascendentes diretos sv: anor relationship by marriage @@ -8991,6 +9897,7 @@ lv: precÄ«bu saites nl: verwant door huwelijk no: relasjon gjennom ekteskap +oc: ligams per maridatge pl: powinowactwo pt: relações por casamento ro: relatie prin mariaj @@ -9019,6 +9926,7 @@ lv: radniecÄ«bas aprÄ“Ä·inÄšana nl: verwantschap bepalen no: slektskapsberegning +oc: calcul de parentat pl: szukanie pokrewieĹ„stwa pt: cálculo de parentesco ro: calcul de relatii @@ -9030,13 +9938,15 @@ relationship computing mode de: berechnungsart -en: computing +en: Mode es: modo de cálculo fi: laskutapa fr: mode de calcul it: modo di calcolo nl: berekeningswijze no: utregningsmĂĄte +oc: mòde de calcul +pt: modo de cálculo sv: uträkningssätt relationship display options @@ -9048,8 +9958,23 @@ it: opzioni di visualizzazione degli alberi di parentela: nl: toonopties van de verwantschapsstambomen no: visningsmĂĄte +oc: opcions d’afichatge dels arbres de parentat: +pt: opções de edição das árvores de parentesco: sv: sätt att visa + relationship link between +de: verwandt mit ... +en: family link with... +es: parentesco con... +fi: sukulaisuus henkilön kanssa... +fr: lien de parentĂ© avec... +it: imparentato con... +nl: verwantschapsband met... +no: i slekt med... +oc: ligam de parentat amb... +pt: parentesco com... +sv: släktskap med... + relationship link/relationship links af: verwantskap/verwantskappe bg: родŃтвена връзка/родŃтвени връзки @@ -9070,6 +9995,7 @@ lv: radniecÄ«bas saite(s) nl: verwantschap/verwantschappen no: slektslinje/slektslinjer +oc: ligam de parentat/ligams de parentat pl: linia pokrewieĹ„stwa/linie pokrewieĹ„stwa pt: grau de parentesco/graus de parentesco ro: linie de relatii @@ -9078,17 +10004,6 @@ sl: sorodnik/sorodnikov sv: anlinje/anlinjer - relationship link between -de: verwandt mit ... -en: family link with... -es: parentesco con... -fi: sukulaisuus henkilön kanssa... -fr: lien de parentĂ© avec... -it: imparentato con... -nl: verwantschapsband met... -no: i slekt med... -sv: släktskap med... - relationship shortcut de: VerknĂĽpfungen : en: Shortcuts: @@ -9096,9 +10011,9 @@ fi: oikotie: fr: raccourcis : it: scorciatoie : -nl: genväg: nl: binnenweg : no: snarvei: +oc: acorchas: relationship%t to af: verwantskap%t met @@ -9120,6 +10035,7 @@ lv: %t attiecÄ«bas ar nl: verbonden%t met no: familie%t med +oc: parentat%t avec pl: zwiÄ…zek%t z: pt: relacionado%t com/relacionada%t com pt-br: junto%t com @@ -9129,33 +10045,57 @@ sl: zveza z %t sv: förhĂĄllande%t med + retired +de: Ruhestand +en: Retirement +es: jubilaciĂłn +fi: Eläkkeelle jäänti +fr: retraite +it: pensione +nl: Pensionering +no: Pensjonering +oc: retirat +pt: reforma +sv: Pesnionering + revision history de: Verlauf der Revisionen en: Revision history es: histĂłrico de las revisiones +fi: Tarkastushistoria fr: historique des rĂ©visions it: cronistoria delle revisioni +nl: historiek revisies +no: Revisjonshistorikk +oc: istoric de las revisions +pt: histĂłrico das revisões +sv: Uppdateringshistoria revision of de: Revision von en: Revision date es: revisiĂłn del +fi: Tarkastuspäivämäärä fr: rĂ©vision du it: revisione del +nl: revisie van +no: Revisjonsdato +oc: revision del +pt: revisĂŁo de +sv: Uppdatering gjord same ancestor as n° Sosa de: identisch mit Sosa Nr. en: Same as Sosa # es: idĂ©ntico al nÂş Sosa +fi: Sama kuin Sosa # fr: identique au n° Sosa it: identico al n° Sosa - - searching all -de: suche alle -en: Search -es: buscar todos los -fr: recherche tous les -it: ricercare tutti i +nl: identiek met sosa nr +no: Samme som Sosa # +oc: identic(a) al n° Sosa # +pt: idĂŞntico ao nÂş Sosa +sv: Samma ättling som n° Sosa search/case sensitive bg: Ń‚ŃŠŃ€Ńене/Ń Ń€Đ°Đ·Đ»Đ¸Ń‡Đ°Đ˛Đ°Đ˝Đµ на главни и малки бŃкви @@ -9174,6 +10114,7 @@ lv: meklēšana/reÄŁistrjĹ«tÄ«ga nl: zoeken/hoofdlettergevoelig no: søk/skiller mellom store og smĂĄ bokstaver +oc: recèrca/en tĂ©ner compte de las majusculas pl: szukaj/wielkość liter ma znaczenie pt: pesquisar/sensĂ­vel Ă  capitulação pt-br: procurar/diferencia maiĂşsculas @@ -9183,6 +10124,19 @@ sl: iskanje/razlikovanje VELIKIH-malih ÄŤrk sv: sök/skiftlägeskänslig + searching all +de: suche alle +en: Search +es: buscar todos los +fi: Hae kaikki +fr: recherche tous les +it: ricercare tutti i +nl: zoek alle +no: Søk +oc: recercar totes los +pt: pesquisar todos os +sv: Sök alla + see af: sien bg: вж. @@ -9203,6 +10157,7 @@ lv: sakatÄ«t nl: zie no: se +oc: veire pl: zobacz pt: ver ro: vezi @@ -9231,6 +10186,7 @@ lv: skatÄ«t iepriekš nl: zie hierboven no: se ovenfor +oc: veire çai sus pl: zobacz wyĹĽej pt: ver encima pt-br: ver acima @@ -9249,35 +10205,61 @@ it: vedi anche nl: ook te bekijken no: vis ogsĂĄ +oc: tanben veire +pt: ver tambĂ©m sv: visa ocksĂĄ see ascendants notes/sources de: siehe Notizen/Quellen en: View notes/sources es: ver las notas/fuentes -fr: voir les notes/sources +fi: Katso merkinnät/lähteet +fr: voir les notes & les sources it: vedere le note/fonti +nl: notities & bronnen bekijken +no: Se pĂĄ merknader/kilder +oc: veire las nòtas e las fonts +pt: ver notas & fontes +sv: Se kommande generations noteringar och källor see ascendants pictures de: siehe Porträts en: View pictures es: ver los retratos -fr: voir les portraits +fi: Näytä kuvat +fr: voir les photos it: vedere i ritratti +nl: foto's bekijken +no: Se pĂĄ bilder +oc: veire las fòtos +pt: ver fotos +sv: Se kommande generations bilder see descendants notes/sources de: siehe Notizen/Quellen en: View notes/sources es: ver las notas/fuentes -fr: voir les notes/sources +fi: Näytä merkinnät/lähteet +fr: voir les notes & les sources it: vedere le note/fonti +nl: notities & bronnen bekijken +no: Se pĂĄ merknader/kilder +oc: veire las nòtas e las fonts +pt: ver notas & fontes +sv: Se efterföljandes noteringar och källor see descendants pictures de: siehe Porträts en: View pictures es: ver los retratos -fr: voir les portraits +fi: Näytä kuvat +fr: voir les photos it: vedere i ritratti +nl: foto's bekijken +no: Se pĂĄ bilder +oc: veire las fòtos +pt: ver fotos +sv: Se efterföljandes bilder see further af: kyk verder @@ -9299,6 +10281,7 @@ lv: skatÄ«t tÄlÄk nl: zie verder no: se videre +oc: veire çai jos pl: zobacz niĹĽej pt: ver a continuação ro: vezi urmatoarea @@ -9307,6 +10290,19 @@ sl: nadalje glej sv: se vidare + see person +de: Familienstand +en: Individual +es: Registro Civil +fi: Henkilö +fr: Ă©tat civil +it: anagrafe +nl: burgerlijke stand +no: Individuell +oc: estat civil +pt: ver pessoa +sv: Individ + select de: auswählen : en: select: @@ -9316,6 +10312,8 @@ it: scegliere: nl: kiezen: no: velg +oc: causir: +pt: selecionar: sv: välj select a letter @@ -9326,6 +10324,9 @@ fr: choisissez une lettre it: scegli una lettera nl: kies een letter +no: Velg en bokstav +oc: causissètz-vos una letra +pt: selecione uma letra sv: välj en bokstav select a month to see all the anniversaries @@ -9337,8 +10338,23 @@ it: scegliere un mese per vedere tutti i comlpeanni nl: een maand kiezen om alle verjaardagen te zien no: velg en mĂĄned for ĂĄ vise alle fødselsdager +oc: causissètz-vos un mes per veire los aniversaris +pt: selecione um mĂŞs para ver todos os aniversários sv: välj en mĂĄnad för att visa alla födelsedagar + select a spouse +de: Partner auswählen +en: Select spouse +es: elija un cĂłnyuge +fi: Valitse puoliso +fr: choisissez un conjoint : +it: scegli un coniuge +nl: kies een partner +no: Velg ektefelle +oc: causissètz-vos un conjunt: +pt: selecione um cĂ´njuge: +sv: Välj maka/make + select person to compute relationship de: auf die Person klicken, zu der Sie das Verwandtschaftsverhältnis berechnen möchten en: click an individual below to calculate the family link @@ -9348,14 +10364,22 @@ it: clicca sulla persona per la quale vuoi fare un calcolo di parentela nl: op de persoon klikken van waaruit u een verwantschapsberekening wenst no: klikk pĂĄ personen som du vil beregne slektskapsgraden til +oc: causissètz-vos la persona de calcular la parentat +pt: selecione a pessoa sobre a qual pretende realizar um cálculo de parentesco sv: klicka pĂĄ personen som du vill räkna ut släktskapsgraden med select the two revisions you want to compare de: wählen Sie zwei zu vergleichende Revisionen en: Select revisions to view history es: seleccione las dos revisiones que quiere comparar +fi: Valitse kaksi vertailtavaa versiota fr: sĂ©lectionnez les deux rĂ©visions que vous voulez comparer it: seleziona le due versioni da paragonare +nl: selecteer de twee revisies die u wenst te vergelijken +no: Velg revisjoner for ĂĄ se pĂĄ historikk +oc: causissètz-vos las doás revisions de comparar +pt: selecione as duas revisões que pretende comparar +sv: Välj de tvĂĄ uppdateringar Du vill jämföra send af: stuur @@ -9377,6 +10401,7 @@ lv: sĹ«tÄ«t nl: zenden +before no: send +oc: mandar pl: doĹ‚Ä…cz :a: pt: enviar ro: trimite @@ -9405,6 +10430,7 @@ lv: nedzÄ«vo kopÄ nl: gescheiden no: separert +oc: separats pl: w separacji pt: separados ro: despartiti @@ -9433,6 +10459,7 @@ lv: vairÄkas atbildes nl: meerdere antwoorden no: flere svar +oc: mai d'una responsa pl: wiÄ™cej niĹĽ jedna odpowiedĹş pt: várias respostas ro: mai multe raspunsuri @@ -9461,6 +10488,7 @@ lv: dzimums nl: geslacht no: kjønn +oc: sèxe pl: pĹ‚eć pt: sexo ro: sex @@ -9489,6 +10517,7 @@ lv: saÄ«sinÄtais attÄ“lojums nl: beknopte weergave no: kort rapport +oc: afichatge cort pl: postać skrĂłcona pt: resultados sucintos ro: resultat scurt @@ -9517,6 +10546,7 @@ lv: Ä«sÄkais ceļš nl: kortste weg no: korteste vei +oc: camin mai cort pl: najkrĂłtsza linia pt: caminho mais curto ro: drumul cel mai scurt @@ -9545,6 +10575,7 @@ lv: jÄbĹ«t sievietei nl: moet vrouwelijk zijn no: kjønn burde være kvinne +oc: deuriá èsser de sèxe femenin pl: powinna być kobietÄ… pt: teria que ser de sexo feminino ro: ar trebui sa fie feminin @@ -9573,6 +10604,7 @@ lv: jÄbĹ«t vÄ«rietim nl: moet mannelijk zijn no: kjønn burde være mann +oc: deuriá èsser de sèxe masculin pl: powinna być mężczyznÄ… pt: teria que ser de sexo masculino ro: ar trebui sa fie masculin @@ -9601,6 +10633,7 @@ lv: brÄÄĽi/mÄsas nl: broers en zusters no: søsken +oc: faires e sòrres pl: rodzeĹ„stwo pt: irmĂŁos e irmĂŁs ro: frati/surori @@ -9625,6 +10658,7 @@ lv: kopš pÄ“dÄ“jÄ klikšķa nl: sinds de laatste klik no: siden siste klikk +oc: dempuèi lo darrièr clic pl: od ostatniego klikniÄ™cia pt: desde o Ăşltimo clique ro: de la ultimul click @@ -9653,6 +10687,7 @@ lv: dÄ“ls/meita/bÄ“rns nl: zoon/dochter/kind no: sønn/datter/barn +oc: filh/filha/enfant pl: syn/cĂłrka/dziecko pt: filho/filha/filho(a) ro: fiu/fica/copil @@ -9665,27 +10700,39 @@ de: sortieren nach: /Zweige/Alphabet en: Sort by:/Line/Alphabetical order es: organizar por: ramas/orden alfabĂ©tico +fi: Lajittelu:/Sukulinja/Aakkosjärjestys fr: trier par :/branches/ordre alphabĂ©tique it: smistare per :/rami/ordine alfabetico nl: tonen per:/tak/alfabetische volgorde no: vises etter:/grener/alfabetisk orden +oc: triar per:/branca/òrdre alfabetic +pt: ordenar por:/ramo/ordem alfabĂ©tica sv: visas efter:/grenar/alfabetisk ordning sort by/date begin/alphabetic order/nb individuals/nb events de: sortieren nach: /Anfangsdatum/Alphabet/Anzahl der Individuen/Anzahl der Ereignisse -en: Sort by:/Date/Alphabetical order/Number of individuals/Number of events +en: Sort by:/Date/Alphabetical order/Number of individuals/Number of facts es: organizar por: fecha de inicio/orden alfabĂ©tico/numero de individuos/nĂşmero de eventos +fi: Lajittelu:/Päivämäärä/Aakkosjärjestys/Henkilöiden lukumäärä/Tapahtumien lukumäärä fr: trier par:/date de dĂ©but/ordre alphabĂ©tique/nombre d'individus/nombre d'Ă©vĂ©nements it: smistare per : data d'inizio/ordine alfabetico/numero d'individui/numero d'eventi +nl: sorteren per:/begindatum/alfabetisch/aantal personen/aantal evenementen +no: Sorter etter:/Dato/alfabetisk rekkefølge/antall individer/antall hendelser +oc: triar per:/date de debuta/òrdre alfabetic/nombre de personas/nombre d'eveniments +pt: ordenar por:/data de inĂ­cio/ordem alfabĂ©tica/nĂşmero de pessoas/nĂşmero de eventos +sv: Sortera efter datum börja alfabetisk ordning/nb individer/nb haändelser sort by/generation/alphabetic order de: sortieren nach: /Generationen/Alphabet en: Sort by:/Generation/Alphabetical order es: organizar por: generaciĂłn/orden alfabĂ©tico +fi: Lajittelu:/Sukupolvi/Aakkosjärjestys fr: trier par:/gĂ©nĂ©ration/ordre alphabĂ©tique it: smistare per : /generazione/ordine alfabetico nl: tonen per:/tak/alfabetische volgorde no: vises etter:/grener/alfabetisk orden +oc: triar per:/generacion/òrdre alfabetic +pt: ordenar por:/geração/ordem alfabĂ©tica sv: visas efter:/grenar/alfabetisk ordning Sosa @@ -9708,6 +10755,7 @@ lv: SOSA nl: Sosa no: Anenummer +oc: numèro de Sosa pl: "Sosa" pt: Sosa ro: Sosa @@ -9726,10 +10774,11 @@ et: Sosa viidet: %t fi: Sosa-viitteenä: %t fr: rĂ©fĂ©rence Sosa : %t -fr: rĂ©fĂ©rence Sosa : %t he: ×›×זכור Sosa: %t it: riferimento Sosa : %t lv: Sosa pakÄpes: %t +nl: Sosareferentie : %t +oc: referĂ©ncia de Sosa: %t pt: referĂŞncia Sosa: %t ro: referinta Sosa: %t sk: referenciou "Sosa": %t @@ -9754,6 +10803,7 @@ lv: avots/avoti (pirmsÄkums?) nl: bron/bronnen no: kilde/kilder +oc: font/fonts pl: ĹşrĂłdĹ‚o/ĹşrĂłdĹ‚a pt: fonte/fontes ro: sursa/surse @@ -9782,6 +10832,7 @@ lv: noteikt nl: specificeer no: velg +oc: especificatz pl: wybierz pt: especificar ro: specifica @@ -9800,6 +10851,8 @@ it: coniuge/coniugi nl: partner/partners no: partner/partners +oc: conjunt/conjunts +pt: cĂ´njuge/cĂ´njuges sv: partner/partners spouses not included @@ -9822,6 +10875,7 @@ lv: laulÄtie nav ietverti nl: zonder echtgenoten no: ektefeller utelatt +oc: sens los conjunts pl: bez wliczania maĹ‚ĹĽonkĂłw pt: cĂ´njuges nĂŁo incluĂ­dos ro: conjugati exclusi @@ -9850,6 +10904,7 @@ lv: sÄkot ar nl: beginnend met no: som starter med +oc: començant per pl: zaczynajÄ…c od: pt: começando com ro: incepind cu @@ -9878,6 +10933,7 @@ lv: statistika nl: statistieken no: statistikk +oc: estatisticas pl: zestawienia pt: estatĂ­sticas ro: statistici @@ -9889,10 +10945,29 @@ statistics and anniversaries bg: ŃтатиŃтика и годиŃнини de: Statistik und Geburtstage -en: statistics and Family Events +en: Statistics and Family Facts es: EstadĂ­sticas y aniversarios +fi: tilastot ja vuosipäivät fr: Statistiques et anniversaires it: Statistiche e compleanni +nl: Statistieken en verjaardagen +no: Statistikk og familehendelser +oc: Estatisticas e aniversaris +pt: EstatĂ­sticas e aniversários +sv: Statistik och ĂĄrsdagar + + subdivision +de: Ort +en: Suburb +es: Lugar llamado +fi: Kylä +fr: Lieu-dit +it: LocalitĂ  +nl: Gehucht +no: Sted +oc: Lòc +pt: Localidade +sv: Ort summary book ascendants de: liste der Dateien @@ -9903,6 +10978,8 @@ it: lista delle schede nl: lijst van de fichen no: sammendrag +oc: lista de las personas +pt: lista de fichas sv: lista över ansedlar surname alias @@ -9925,6 +11002,7 @@ lv: otrs uzvÄrds nl: alias voor familienaam no: alias for etternavn +oc: escais del nom de familha pl: alias nazwiska pt: alias do apelido pt-br: apelido do sobrenome @@ -9954,6 +11032,7 @@ lv: trĹ«kst uzvÄrds nl: familienaam ontbreekt no: etternavn mangler +oc: manca lo nom de familha pl: brak nazwiska pt: falta o apelido pt-br: falta o sobrenome @@ -9983,6 +11062,7 @@ lv: uzvÄrds nav atrodams nl: familienaam niet gevonden no: finner ikke etternavnet +oc: nom de familha pas trobat pl: nazwisko nie zostaĹ‚o znalezione pt: apelido nĂŁo foi encontrado pt-br: sobrenome nĂŁo foi encontrado @@ -9992,6 +11072,39 @@ sl: priimek ni najden sv: hittar inte efternamn + surname/surnames +af: van/vanne +ar: اللقب +bg: фамилно име/фамилни имена +br: anv-familh/anvioĂą-familh +ca: cognom/cognoms +cs: příjmenĂ­ +da: efternavn/efternavne +de: Nachname/Nachnamen +en: surname/surnames +eo: familia nomo/familiaj nomoj +es: apellido/apellidos +et: perekonnanimi/perekonnanimed:k:+ega +fi: sukunimi/sukunimet +fr: patronyme/patronymes +fr-cr: nom-fan-mille +he: שם משפחה/ שמות משפחה +is: eftirnafn/eftirnöfn +it: cognome/cognomi +lv: uzvÄrds/uzvÄrdi +nl: familienaam/familienamen +no: etternavn/etternavn +oc: nom de familha/noms de familha +pl: nazwisko/nazwiska +pt: apelido/apelidos +pt-br: sobrenome/sobrenomes +ro: nume de familie +ru: фамилия/фамилии +sk: priezvisko/priezviská +sl: priimek/priimki +sv: efternamn/efternamn +zh: 姓 + surnames branch de: zweige der Familiennamen en: lines by name @@ -10001,6 +11114,8 @@ it: rami per cognome nl: naamstakken no: grener +oc: brancas patronimicas +pt: ramos patronĂ­micos sv: grenar surnames list @@ -10023,6 +11138,7 @@ lv: uzvÄrdu saraksts nl: lijst van familienamen no: liste over etternavn +oc: lista dels noms de familha pl: lista nazwisk pt: lista de apelidos pt-br: lista de sobrenomes @@ -10032,76 +11148,223 @@ sl: seznam priimkov sv: efternamns lista - surname/surnames -af: van/vanne -ar: اللقب -bg: фамилно име/фамилни имена -br: anv-familh/anvioĂą-familh -ca: cognom/cognoms -cs: příjmenĂ­ -da: efternavn/efternavne -de: Nachname/Nachnamen -en: surname/surnames -eo: familia nomo/familiaj nomoj -es: apellido/apellidos -et: perekonnanimi/perekonnanimed:k:+ega -fi: sukunimi/sukunimet -fr: patronyme/patronymes -fr-cr: nom-fan-mille -he: שם משפחה/ שמות משפחה -is: eftirnafn/eftirnöfn -it: cognome/cognomi -lv: uzvÄrds/uzvÄrdi -nl: familienaam/familienamen -no: etternavn/etternavn -pl: nazwisko/nazwiska -pt: apelido/apelidos -pt-br: sobrenome/sobrenomes -ro: nume de familie -ru: фамилия/фамилии -sk: priezvisko/priezviská -sl: priimek/priimki -sv: efternamn/efternamn -zh: 姓 + table +de: tabelle +en: table +es: tabla +fi: taulukko +fr: tableau +it: tabella +nl: tabel +no: tabell +oc: taula +pt: tabela +sv: tabell + + text +af: teks +bg: текŃŃ‚ +br: testenn +ca: text +cs: text +da: tekst +de: Text +en: text +eo: teksto +es: texto +et: tekst +fi: teksti +fr: texte +he: כתוב +is: texti +it: testo +lv: teksts +nl: tekst +no: tekst +oc: tèxte +pl: tekst +pt: texto +ro: text +ru: текŃŃ‚ +sk: text +sl: tekst +sv: text + + the %d first names +af: die %d voorname +bg: %d ŃобŃтвени имена +br: ar %d raganv +ca: els %d noms +cs: %d kĹ™estnĂ­ch jmen +da: de %d fornavne +de: die %d Vornamen +en: the %d first names +eo: la %d unuaj nomoj +es: los %d nombres +et: %d eesnime +fi: %d etunimeä +fr: les %d prĂ©noms +he: %d שמות הפר×יים +is: %d fyrstu fornöfnin +it: i %d nomi +lv: %d personvÄrdi +nl: de %d voornamen +no: de %d fornavnene +oc: los %d prenoms +pl: %d imion +pt: os %d nomes +pt-br: os %d prenomes +ro: %d prenume +ru: %d имён +sk: %d mien +sl: %d lastnih imen +sv: de %d förnamnen + + the %d oldest couples perhaps still alive and engaged +af: die %d oudste pare moontlik nog in lewe en verloof +bg: най-отдавнаŃните %d двойки от евентŃално още живи и Ńгодени лица +ca: les parelles mĂ©s grans potser encara vives i juntes +cs: %d nejstarších párĹŻ pravdÄ›podobnÄ› ĹľijĂ­cĂ­ch a zadanĂ˝ch +da: og de %d ældste par muligvis stadig i live og forlovede +de: die %d ältesten verlobten und möglicherweise noch lebenden Paare +en: the %d oldest couples perhaps still alive and engaged +eo: versajne la %d plej altaj paroj ankorau vivas kaj estas fiancigitaj +es: los novios más viejos y quizás todavĂ­a vivos +et: %d vanimat kihlatud ja võib-olla veel elus olevat paari +fi: %d vanhinta mahdollisesti elossa olevaa kihlaparia +fr: les %d couples les plus anciens peut-ĂŞtre encore vivants et fiancĂ©s +he: יתכן ש-%d הזוגות המבוגרים ביותר עודם בחיים ועודם מ×ורסים +is: %d elstu pörin eru hugsanlega enn saman og á lĂ­fi +it: le %d coppie piĂą anziane forse ancora viventi e fidanzate +lv: % iespÄ“jams vÄ“l dzÄ«vu un saderÄ«nÄtu vecÄko pÄru +nl: De %d oudste, mogelijk nog in leven zijnde, verloofde paren +no: Det % eldste par som kanskje fremdeles er i live og forlovet +oc: los %d parelhs mai vièlhs benlèu encara vius e promĂ©s +pl: %d najstarszych par prawdopodobnie jeszcze zyjÄ…cych i pozostajÄ…cych zarÄ™czeni +pt: o %d mais velho casal talvez ainda vivo e noivado +pt-br: os %d mais velhos casais talvez ainda vivos +ro: Cei %d mai virstnici perechi logoditi probabil inca in viata +ru: ŃтарейŃие %d возможно живых ŃŃпрŃгов или помолвленных +sk: %d najstarších párov pravdepodobne ĹľijĂşcich a zadanĂ˝ch +sl: %d najstarejših morda še Ĺľivih in zaroÄŤenih parov +sv: de %d äldsta nu levande paren som kanske fortfarande är förlovade + + the %d oldest perhaps still alive +af: die %d oudstes wat nog leef +bg: най-Ńтарите %d евентŃално още живи лица +br: ar %d den koshañ bev c'hoazh marteze +ca: les %d persones mĂ©s grans, potser encara vives +cs: %d nejstarších snad ještÄ› ĹľijĂ­cĂ­ch osob +da: de %d ældste af de muligt levende +de: die %d ältesten vermutlich noch lebenden Personen +en: the %d oldest perhaps still alive +eo: la %d plej maljunaj eble ankoraĂą vivantaj +es: los %s más viejos quizás todovĂ­a vivo +et: %d vanimat, kes võib-olla on veel elus +fi: %d vanhinta ehkä vielä elävää +fr: les %d les plus âgĂ©s peut-ĂŞtre encore vivants +he: הזקן ×” %d ש×ולי עוד בחיים +is: %d elsti sem kann aĂ° vera á lĂ­fi +it: %d piĂą anziani che possono essere ancora viventi +lv: %d visvecÄkie iespÄ“jams vÄ“l ir dzÄ«vi +nl: de %d oudste, mogelijk nog in leven zijnde, personen +no: de %d eldste som muligens lever +oc: las %d personas encara vivas +pl: %d najstarszych osĂłb (prawdopodobnie) ĹĽyjÄ…cych +pt: os %d mais velhos talvez ainda vivos +ro: %d cei mai batrini posibil mai in viata +ru: %d ŃĐ°ĐĽŃ‹Ń… Ńтарых еще живŃщих +sk: %d najstaších, snáď ešte ĹľijĂşcich osĂ´b +sl: %d najstarejših, morda še ĹľiveÄŤih +sv: de %d äldsta personerna som kanske lever + + the %d surnames +af: die %d vanne +bg: %d фамилни имена +br: ar %d anv-familh +ca: els %d cognoms +cs: %d příjmenĂ­ +da: de %d efternavne +de: die %d Nachnamen +en: the %d surnames +eo: la %d familiaj nomoj +es: los %d apellidos +et: %d perekonnanime +fi: %d sukunimeä +fr: les %d patronymes +he: %d שמות המשפחה +is: %d fyrstu eftirnöfnin +it: i %d cognomi +lv: %d uzvÄrdi +nl: de %d familienamen +no: de %d etternavnene +oc: los %d noms de familha +pl: %d nazwisk +pt: os %d apelidos +pt-br: os %d sobrenomes +ro: %d nume de familie +ru: %d фамилий +sk: %d priezvĂ­sk +sl: %d priimkov +sv: de %d efternamnen - table -de: tabelle -en: table -es: cuadro -fi: taulukko -fr: tableau -it: tabella -nl: tabel -no: tabell -sv: tabell + the %d who lived the longest +af: die %d wat die langste gelewe het +bg: най-дълго живелите %d лица +br: ar %d o deus bevet ar pellañ +ca: les %d persones que han viscut mĂ©s anys +cs: %d osob kterĂ© Ĺľili nejdĂ©le +da: de %d som har levet længst +de: die %d Personen, die am längsten lebten +en: the %d who lived the longest +eo: la %d, kiuj vivis plejlonge +es: los %d que han vivido más mucho tiempo +et: %d kõige kauem elanut +fi: %d pisimpään elänyttä +fr: les %d ayant vĂ©cu le plus longtemps +he: ×” %d ב×ריכות ימים +is: %d sem lifĂ°i lengst +it: i %d che hanno vissuto piĂą a lungo +lv: %d, kuri dzÄ«vojuši visilgÄk +nl: de %d personen die het langst geleefd hebben +no: de %d som har levd lengst +oc: las %d personas qu'an viscut mai longtemps +pl: %d osĂłb, ktĂłre ĹĽyĹ‚y najdĹ‚uĹĽej +pt: os %d que mais viveram +ro: %d cei mai in virsta +ru: %d проживŃих дольŃе вŃех +sk: %d osĂ´b, ktorĂ© Ĺľili najdlhšie +sl: %d oseb, ki so Ĺľivele najdlje +sv: de %d personerna som har levt längst - text -af: teks -bg: текŃŃ‚ -br: testenn -ca: text -cs: text -da: tekst -de: Text -en: text -eo: teksto -es: texto -et: tekst -fi: teksti -fr: texte -he: כתוב -is: texti -it: testo -lv: teksts -nl: tekst -no: tekst -pl: tekst -pt: texto -ro: text -ru: текŃŃ‚ -sk: text -sl: tekst -sv: text + the %s generation +af: die %s geslag +bg: %s поколение +br: ar %s rummad-tud +ca: la %s generaciĂł +cs: %s. generace +da: den %s generation +de: die %s Generation +en: the %s generation +eo: la %s generacio +es: la %s generaciĂłn +et: %s. sugupõlv +fi: %s. sukupolvi +fr: la %s gĂ©nĂ©ration +he: דור ×”%s +is: %s kynslóð +it: la %s generazione +lv: %s. paaudze +nl: de %s generatie +no: %s generasjon +oc: la %s generacion +pl: %s pokolenie +pt: a %s geração +ro: generatia %s +ru: %s-е поколение +sk: %s. generácia +sl: %s. generacija +sv: den %s generationen the anniversary af: die herdenking @@ -10123,6 +11386,7 @@ lv: gadadiena nl: de verjaardag no: merkedagen +oc: l'aniversari pl: rocznica pt: o aniversário ro: aniversarea @@ -10151,6 +11415,7 @@ lv: kÄzu diena nl: de huwelijksverjaardag no: bryllupsdagen +oc: aniversari de maridatge pl: rocznica Ĺ›lubu pt: o aniversário de casamento ro: aniversatia de mariaj @@ -10179,6 +11444,7 @@ lv: datu bÄzÄ“ ir veiktas izmaiņas; nospiediet "back", "reload", un aizpildiet formu nl: het bestand is veranderd; klik "back", "reload" en vul de details nogmaals in no: databasen er endret; gĂĄ tilbake, klikk "oppfrisk", og fyll ut formularet pĂĄ nytt +oc: la basa foguèt modificada, tornatz enrè e tornatz cargar e tornatz editar la ficha pl: w bazie zostaĹ‚y dokonane zmiany; kliknij "wstecz" i "odĹ›wieĹĽ", a nastÄ™pnie ponownie wprowadĹş dane pt: a base mudou: fazer "back", "reload" e preencher novamente o formulário ro: basa de date a fost schimbata; mergi inapoi, ceri formularul si intra datele din nou @@ -10202,223 +11468,90 @@ fi: syntymäpäivä fr: l’anniversaire he: יום ההולדת -is: afmælisdagur -it: il compleanno -lv: dzimšanas diena -nl: de verjaardag -no: fødselsdagen -pl: urodziny -pt: o aniversário de nascimento -ro: aniversarea zilei de nastere -ru: день рождения -sk: narodeniny -sl: rojstni dan -sv: födelsedagen - - the children -af: die kinders -bg: децата -br: ar vugale -ca: els fills -cs: dÄ›ti -da: børnene -de: die Kinder -en: the children -eo: la idoj -es: los hijos -et: lapsed -fi: lapset -fr: les enfants -he: הילדים -is: börnin -it: i figli -lv: bÄ“rns -nl: de kinderen -no: barna -pl: dzieci -pt: os filhos -ro: copii -ru: ребенок -sk: deti -sl: otroci -sv: barnen - - the day after tomorrow -af: oormĂ´re -bg: вдрŃгиден -br: an deiz goude warc'hoazh -ca: demĂ  passat -cs: pozĂ­tří -da: i overmorgen -de: ĂĽbermorgen -en: the day after tomorrow -eo: postmorgaĂą -es: pasado mañana -et: ĂĽlehomme -fi: ylihuomenna -fr: après-demain -he: מחרתיים -is: næsta dag -it: dopo domani -lv: parÄ«t -nl: overmorgen -no: i overmorgen -pl: pojutrze -pt: depois de amanhĂŁ -ro: poimaine -ru: поŃлезавтра -sk: pozajtra -sl: pojutrišnem -sv: i övermorgon - - the difference of age between %t and %t is quite important -de: der Altersunterschied zwischen %t und %t ist sehr groĂź -en: Date of birth of %t and %t are too far together -es: la diferencia de edad entre %t y %t es grande -fr: la diffĂ©rence d’âge entre %t et %t est assez importante -it: il divario d'etĂ  tra %t e %t è importante - - the %d first names -af: die %d voorname -bg: %d ŃобŃтвени имена -br: ar %d raganv -ca: els %d noms -cs: %d kĹ™estnĂ­ch jmen -da: de %d fornavne -de: die %d Vornamen -en: the %d first names -eo: la %d unuaj nomoj -es: los %d nombres -et: %d eesnime -fi: %d etunimeä -fr: les %d prĂ©noms -he: %d שמות הפר×יים -is: %d fyrstu fornöfnin -it: i %d nomi -lv: %d personvÄrdi -nl: de %d voornamen -no: de %d fornavnene -pl: %d imion -pt: os %d nomes -pt-br: os %d prenomes -ro: %d prenume -ru: %d имён -sk: %d mien -sl: %d lastnih imen -sv: de %d förnamnen - - the %d oldest couples perhaps still alive and engaged -af: die %d oudste pare moontlik nog in lewe en verloof -bg: най-отдавнаŃните %d двойки от евентŃално още живи и Ńгодени лица -ca: les parelles mĂ©s grans potser encara vives i juntes -cs: %d nejstarších párĹŻ pravdÄ›podobnÄ› ĹľijĂ­cĂ­ch a zadanĂ˝ch -da: og de %d ældste par muligvis stadig i live og forlovede -de: die %d ältesten verlobten und möglicherweise noch lebenden Paare -en: the %d oldest couples perhaps still alive and engaged -eo: versajne la %d plej altaj paroj ankorau vivas kaj estas fiancigitaj -es: los novios más viejos y quizás todavĂ­a vivos -et: %d vanimat kihlatud ja võib-olla veel elus olevat paari -fi: %d vanhinta mahdollisesti elossa olevaa kihlaparia -fr: les %d couples les plus anciens peut-ĂŞtre encore vivants et fiancĂ©s -he: יתכן ש-%d הזוגות המבוגרים ביותר עודם בחיים ועודם מ×ורסים -is: %d elstu pörin eru hugsanlega enn saman og á lĂ­fi -it: le %d coppie piĂą anziane forse ancora viventi e fidanzate -lv: % iespÄ“jams vÄ“l dzÄ«vu un saderÄ«nÄtu vecÄko pÄru -nl: De %d oudste, mogelijk nog in leven zijnde, verloofde paren -no: Det % eldste par som kanskje fremdeles er i live og forlovet -pl: %d najstarszych par prawdopodobnie jeszcze zyjÄ…cych i pozostajÄ…cych zarÄ™czeni -pt: o %d mais velho casal talvez ainda vivo e noivado -pt-br: os %d mais velhos casais talvez ainda vivos -ro: Cei %d mai virstnici perechi logoditi probabil inca in viata -ru: ŃтарейŃие %d возможно живых ŃŃпрŃгов или помолвленных -sk: %d najstarších párov pravdepodobne ĹľijĂşcich a zadanĂ˝ch -sl: %d najstarejših morda še Ĺľivih in zaroÄŤenih parov -sv: de %d äldsta nu levande paren som kanske fortfarande är förlovade - - the %d oldest perhaps still alive -af: die %d oudstes wat nog leef -bg: най-Ńтарите %d евентŃално още живи лица -br: ar %d den koshañ bev c'hoazh marteze -ca: les %d persones mĂ©s grans, potser encara vives -cs: %d nejstarších snad ještÄ› ĹľijĂ­cĂ­ch osob -da: de %d ældste af de muligt levende -de: die %d ältesten vermutlich noch lebenden Personen -en: the %d oldest perhaps still alive -eo: la %d plej maljunaj eble ankoraĂą vivantaj -es: los %s más viejos quizás todovĂ­a vivo -et: %d vanimat, kes võib-olla on veel elus -fi: %d vanhinta ehkä vielä elävää -fr: les %d les plus âgĂ©s peut-ĂŞtre encore vivants -he: הזקן ×” %d ש×ולי עוד בחיים -is: %d elsti sem kann aĂ° vera á lĂ­fi -it: %d piĂą anziani che possono essere ancora viventi -lv: %d visvecÄkie iespÄ“jams vÄ“l ir dzÄ«vi -nl: de %d oudste, mogelijk nog in leven zijnde, personen -no: de %d eldste som muligens lever -pl: %d najstarszych osĂłb (prawdopodobnie) ĹĽyjÄ…cych -pt: os %d mais velhos talvez ainda vivos -ro: %d cei mai batrini posibil mai in viata -ru: %d ŃĐ°ĐĽŃ‹Ń… Ńтарых еще живŃщих -sk: %d najstaších, snáď ešte ĹľijĂşcich osĂ´b -sl: %d najstarejših, morda še ĹľiveÄŤih -sv: de %d äldsta personerna som kanske lever +is: afmælisdagur +it: il compleanno +lv: dzimšanas diena +nl: de verjaardag +no: fødselsdagen +oc: l'aniversari +pl: urodziny +pt: o aniversário de nascimento +ro: aniversarea zilei de nastere +ru: день рождения +sk: narodeniny +sl: rojstni dan +sv: födelsedagen - the %d surnames -af: die %d vanne -bg: %d фамилни имена -br: ar %d anv-familh -ca: els %d cognoms -cs: %d příjmenĂ­ -da: de %d efternavne -de: die %d Nachnamen -en: the %d surnames -eo: la %d familiaj nomoj -es: los %d apellidos -et: %d perekonnanime -fi: %d sukunimeä -fr: les %d patronymes -he: %d שמות המשפחה -is: %d fyrstu eftirnöfnin -it: i %d cognomi -lv: %d uzvÄrdi -nl: de %d familienamen -no: de %d etternavnene -pl: %d nazwisk -pt: os %d apelidos -pt-br: os %d sobrenomes -ro: %d nume de familie -ru: %d фамилий -sk: %d priezvĂ­sk -sl: %d priimkov -sv: de %d efternamnen + the children +af: die kinders +bg: децата +br: ar vugale +ca: els fills +cs: dÄ›ti +da: børnene +de: die Kinder +en: the children +eo: la idoj +es: los hijos +et: lapsed +fi: lapset +fr: les enfants +he: הילדים +is: börnin +it: i figli +lv: bÄ“rns +nl: de kinderen +no: barna +oc: los enfants +pl: dzieci +pt: os filhos +ro: copii +ru: ребенок +sk: deti +sl: otroci +sv: barnen - the %d who lived the longest -af: die %d wat die langste gelewe het -bg: най-дълго живелите %d лица -br: ar %d o deus bevet ar pellañ -ca: les %d persones que han viscut mĂ©s anys -cs: %d osob kterĂ© Ĺľili nejdĂ©le -da: de %d som har levet længst -de: die %d Personen, die am längsten lebten -en: the %d who lived the longest -eo: la %d, kiuj vivis plejlonge -es: los %d que han vivido más mucho tiempo -et: %d kõige kauem elanut -fi: %d pisimpään elänyttä -fr: les %d ayant vĂ©cu le plus longtemps -he: ×” %d ב×ריכות ימים -is: %d sem lifĂ°i lengst -it: i %d che hanno vissuto piĂą a lungo -lv: %d, kuri dzÄ«vojuši visilgÄk -nl: de %d personen die het langst geleefd hebben -no: de %d som har levd lengst -pl: %d osĂłb, ktĂłre ĹĽyĹ‚y najdĹ‚uĹĽej -pt: os %d que mais viveram -ro: %d cei mai in virsta -ru: %d проживŃих дольŃе вŃех -sk: %d osĂ´b, ktorĂ© Ĺľili najdlhšie -sl: %d oseb, ki so Ĺľivele najdlje -sv: de %d personerna som har levt längst + the day after tomorrow +af: oormĂ´re +bg: вдрŃгиден +br: an deiz goude warc'hoazh +ca: demĂ  passat +cs: pozĂ­tří +da: i overmorgen +de: ĂĽbermorgen +en: the day after tomorrow +eo: postmorgaĂą +es: pasado mañana +et: ĂĽlehomme +fi: ylihuomenna +fr: après-demain +he: מחרתיים +is: næsta dag +it: dopo domani +lv: parÄ«t +nl: overmorgen +no: i overmorgen +oc: deman passat +pl: pojutrze +pt: depois de amanhĂŁ +ro: poimaine +ru: поŃлезавтра +sk: pozajtra +sl: pojutrišnem +sv: i övermorgon + + the difference of age between %t and %t is quite important +de: der Altersunterschied zwischen %t und %t ist sehr groĂź +en: Date of birth of %t and %t are too far together +es: la diferencia de edad entre %t y %t es grande +fi: Henkilöiden %t ja %t ikäero on liian suuri +fr: la diffĂ©rence d’âge entre %t et %t est assez importante +it: il divario d'etĂ  tra %t e %t è importante +nl: leeftijdsverschil tussen %t en %t is vrij belangrijk +no: Fødselsdato til %t og %t er for langt fra hverandre +oc: la diferĂ©ncia d’atge entre %t e %t es pro importanta +pt: a diferença de idade entre %t e %t Ă© bastante importante +sv: Skillnaden i ĂĄlder mellan %t och %t är mycket viktig the father-in-law/the mother-in-law af: die skoonpa/die skoonma @@ -10440,6 +11573,7 @@ lv: vÄ«ratÄ“vs/sievastÄ“vs/vÄ«ramÄte/sievasmÄte nl: de schoonvader/de schoonmoeder no: svigerfaren/svigermoren +oc: lo sògre/la sògra pl: teść/teĹ›ciowa pt: o sogro/a sogra ro: socrul/soacra @@ -10468,6 +11602,7 @@ lv: tÄ“vs/mÄte/vecÄks nl: de vader/de moeder/een ouder no: faren/moren/en av foreldrene +oc: lo paire/la maire/un parent pl: ojciec/matka/rodzic pt: o pai/a mĂŁe/um dos pais ro: tatal/mama/parinti @@ -10497,6 +11632,7 @@ lv: datne pagaidÄm ir slÄ“gta: lĹ«dzu mÄ“ÄŁiniet vÄ“lreiz nl: het bestand is tijdelijk niet toegankelijk: probeer later weer eens no: filen er midlertidig lĂĄst: Vennligst vent og prøv igjen +oc: la basa es temporarament varrolhada: ensajatz tornar. Se marcha pas, esperatz un pauc mai de temps pl: plik jest chwilowo niedostÄ™pny; sprĂłbuj później, ewentualnie chwilÄ™ odczekaj pt: a base está temporariamente inacessĂ­vel: por favor tente novamente. Se nĂŁo funcionar, espere um momento ro: fisierul este blocat; incearca mai tirziu din nou @@ -10509,8 +11645,14 @@ de: das Geburtsdatum der Kinder %t und %t liegt sehr nah beieinander en: Date of birth of the children of %t and %t are too close together es: las fechas de nacimiento de los siguientes hijos de %t y de %t son muy prĂłximas +fi: Henkilöiden %t ja %t lasten syntymäajat ovat liian lähellä toisiaan fr: les enfants suivants de %t et de %t sont nĂ©s très rapprochĂ©s it: le date di nascita dei seguenti figli di %t e di %t sono vicinissime +nl: volgende kinderen van %t en van %t zijn zeer kort na elkaar geboren +no: Fødselsdato til barnet til %t og %t er for nærme hverandre +oc: aqueles enfants de %t e %t son nascuts plan trop apressats +pt: os seguintes filhos de %t e de %t nasceram muito prĂłximos +sv: Följande barn till %t och %t är födda mycket tätt the following children of %t and %t are not in order af: die volgende kinders van %t and %t is nie in die regte volgorde nie @@ -10532,6 +11674,7 @@ lv: %t un %t sekojošais bÄ“rns nav secÄ«bÄ nl: de kinderen van %t en %t staan niet in de goede volgorde no: følgende barn av %t og %t er ikke i kronologisk rekkefølge +oc: los enfants %t e %t son pas dins l'òrdre cronologic pl: nastepujÄ…ce dzieci (rodzice: %t i %t) nie sÄ… uĹ‚oĹĽone w porzÄ…dku chronologicznym pt: os seguintes filhos de %t e %t nĂŁo estĂŁo apresentados em ordem ro: urmatori copii a lui %t si %t nu sint in ordine cronologica @@ -10560,6 +11703,7 @@ lv: mazbÄ“rns nl: de kleinkinderen no: barnebarna +oc: los felens pl: wnuki pt: os netos ro: nepoti @@ -10588,6 +11732,7 @@ lv: vecvecÄki nl: de grootouders no: besteforeldrene +oc: los grands pl: dziadkowie pt: os avĂłs ro: bunici @@ -10616,6 +11761,7 @@ lv: mazmazbÄ“rni nl: de achterkleinkinderen no: oldebarna +oc: los rèirefelens pl: prawnuki pt: os bisnetos ro: stranepoti @@ -10644,6 +11790,7 @@ lv: vecvecvecÄki nl: de overgrootouders no: oldeforeldrene +oc: los rèiregrands pl: pradziadkowie pt: os bisavĂłs ro: strabunici @@ -10672,6 +11819,7 @@ lv: pÄ“dÄ“jie %d dzimušie nl: de jongste %d geboorten no: de siste %d fødte +oc: las %d darrièras naissenças pl: %d ostatnich narodzin pt: os %d nascimentos mais recentes ro: ultimile %d nascuti @@ -10682,11 +11830,17 @@ the latest %d celebrated marriages bg: поŃледните %d чеŃтвŃвани Ńватби -de: die %d letzten Hochzeiten -en: Latest %d marriages (Date of marriage) +de: die %d letzten gefeierten Hochzeiten +en: Last %d marriages (Date of marriage) es: los %d Ăşltimos matrimonios cĂ©lebres -fr: les %d derniers mariages cĂ©lĂ©brĂ©s -it: i %d ultimi matrimoni celebrati +fi: Viimeiset %d avioliittoa (vihkipäivämäärä) +fr: les %d dernières unions cĂ©lĂ©brĂ©es +it: i %d ultime unioni celebrate +nl: de %d laatste uitgevoerde huwelijken +no: Siste %d ekteskap (Ekteskapsdato) +oc: las %d darrièras unions celebradas +pt: as Ăşltimas %d uniões celebradas +sv: Det senaste %d firade bröllopet the latest %d marriages af: die laaste %d huwelike @@ -10708,6 +11862,7 @@ lv: pÄ“dÄ“jÄs %d laulÄ«bas nl: de %d jongste huwelijken no: de %d sist gifte +oc: las %d darrièras unions pl: %d ostatnich Ĺ›lubĂłw pt: os %d casamentos mais recentes ro: ultimi %d insurati @@ -10719,10 +11874,16 @@ the latest %d registered marriages bg: поŃледните %d региŃтрирани Ńватби de: die %d letzten eingetragenen Hochzeiten -en: Latest %d marriages (Date of entry) +en: Last %d marriages (Date of entry) es: los %d Ăşltimos matrimonios registrados -fr: les %d derniers mariages enregistrĂ©s -it: i %d ultimi matrimoni inseriti +fi: Viimeiset %d rekisteröityä avioliittoa (syöttämispäivämäärä) +fr: les %d dernières unions enregistrĂ©es +it: le %d ultime unioni inserite +nl: de %d laatste uitgevoerde huwelijken +no: Siste %d ekteskap (Registreringsdato) +oc: las %d darrièras unions enregistradas +pt: as Ăşltimas %d uniões registadas +sv: Det senast %d registreade äktenskapet the latest %t deaths af: die laaste %t afsterwes @@ -10744,6 +11905,7 @@ lv: pÄ“dÄ“jie %t mirušie nl: de %t recentste overledenen no: de siste %t døde +oc: los %t darrièrs decèsses pl: %t ostatnich zgonĂłw pt: os %t Ăłbitos mais recentes ro: ultimi %t decedati @@ -10756,8 +11918,14 @@ de: die Ă„nderung ist erfolgt: %d Datei(en) wurden korrigiert en: %d entries have been successfully updated es: la modificaciĂłn ha sido hecha: %d ficha/s corregida/s +fi: %d tietuetta on onnistuneesti päivitetty fr: la modification a bien Ă©tĂ© effectuĂ©e : %d fiche(s) corrigĂ©e(s) it: la modifica è stata effettuata : %d scheda/e corretta/e +nl: wijziging goed uitgevoerd : %d fiche(n) verbeterd +no: %d registreringer er blitt oppdatert +oc: la modification se faguèt: %s fichas modificadas +pt: a alteração decorreu com sucesso: %d ficha(s) corrigida(s) +sv: Modifiering av inklämda %d personer the parents af: die ouers @@ -10779,6 +11947,7 @@ lv: vecÄki nl: de ouders no: foreldrene +oc: los parents pl: rodzice pt: os pais ro: parinti @@ -10787,34 +11956,6 @@ sl: starši sv: föräldrarna - the %s generation -af: die %s geslag -bg: %s поколение -br: ar %s rummad-tud -ca: la %s generaciĂł -cs: %s. generace -da: den %s generation -de: die %s Generation -en: the %s generation -eo: la %s generacio -es: la %s generaciĂłn -et: %s. sugupõlv -fi: %s. sukupolvi -fr: la %s gĂ©nĂ©ration -he: דור ×”%s -is: %s kynslóð -it: la %s generazione -lv: %s. paaudze -nl: de %s generatie -no: %s generasjon -pl: %s pokolenie -pt: a %s geração -ro: generatia %s -ru: %s-е поколение -sk: %s. generácia -sl: %s. generacija -sv: den %s generationen - the spouse af: die eggenoot/die eggenote bg: ŃъпрŃгът:a:--Đ°/ŃъпрŃгата @@ -10835,6 +11976,7 @@ lv: laulÄtais nl: echtgenoot/echtgenote no: ektefellen +oc: lo marit/la molhèr pl: mÄ…ĹĽ/ĹĽona pt: o marido/a esposa ro: sotul/sotia @@ -10863,6 +12005,7 @@ lv: viss saraksts nl: de volledige lijst no: hele listen +oc: tota la lista pl: peĹ‚na lista pt: toda a lista ro: toata lista @@ -10888,6 +12031,7 @@ lv: šis forums tiek kontrolÄ“ts nl: dit forum wordt gemodereerd no: dette forumet er endret +oc: aquel fòrum es moderat pl: forum jest moderowane pt: este fĂłrum Ă© moderado ro: acest forum este moderat @@ -10915,6 +12059,7 @@ lv: tituls/tituli nl: titel/titels no: tittel/titler +oc: tĂ­tol/tĂ­tols pl: tytuĹ‚/tytuĹ‚y pt: tĂ­tulo/tĂ­tulos ro: titlu/titluri @@ -10943,6 +12088,7 @@ lv: lai pievienotu bÄ“rnu ÄŁimenei, lietojiet "%s" nl: gebruik "%s" om een kind aan een gezin toe te voegen no: for ĂĄ knytte et barn til en familie, bruk "%s" +oc: per apondre un enfant a una familha, utilizatz "%s" pl: aby dodać dziecko do pary rodzicĂłw uĹĽyj "%s" pt: para acrescentar um filho a uma famĂ­lia utilizar "%s" ro: pentru a adauga un copil utilizeaza "%s" @@ -10960,6 +12106,9 @@ fr: pour changer it: per modificare nl: om te wijzigen +no: Editer +oc: per cambiar +pt: para modificar sv: för att ändra to come @@ -10971,102 +12120,38 @@ it: da venire nl: te komen no: kommende hendelser +oc: a venir +pt: brevemente sv: kommande händelser - today -af: vandag -bg: Đ´Đ˝ĐµŃ -br: hiziv an deiz -ca: avui -cs: dnes -da: i dag -de: heute -en: today -eo: hodiaĂą -es: hoy -et: täna -fi: tänään -fr: aujourd’hui -he: היום -is: Ă­ dag -it: oggi -lv: šodien -nl: vandaag -no: i dag -pl: dzisiaj -pt: hoje -ro: astazi -ru: Ńегодня -sk: dnes -sl: danes -sv: i dag - - tomorrow -af: mĂ´re -bg: Ńтре -br: warc'hoazh -ca: demĂ  -cs: zĂ­tra -da: i morgen -de: morgen -en: tomorrow -eo: morgaĂą -es: mañana -et: homme -fi: huomenna -fr: demain -he: מחר -is: á morgun -it: domani -lv: rÄ«t -nl: morgen -no: i morgen -pl: jutro -pt: amanhĂŁ -ro: maine -ru: завтра -sk: zajtra -sl: jutri -sv: i morgon - - tools -de: hilfsmittel -en: tools -es: herramientas -fi: työkalut -fr: outils -it: utilitari -nl: nuttige zaken -no: verktøy -sv: verktyg - - total -af: totaal -bg: общо -br: en holl -ca: total -cs: celkem -da: totalt -de: Summe -en: total -eo: tuto -es: total -et: kokku -fi: yhteensä -fr: total -he: סה'×› -is: alls -it: totale -lv: kopÄ -nl: totaal -no: totalt -pl: Ĺ‚Ä…cznie -pt: total -ro: in total -ru: вŃего -sk: spolu -sl: skupaj -sv: totalt + to the %s generation +af: tot die %s geslag +bg: Đ´Đľ %s поколение +br: betek ar %s rummad-tud +ca: fins a la %s generaciĂł +cs: aĹľ do %s generace +da: til den %s generation +de: bis zur %s Generation +en: up to the %s generation +eo: Äťis la %s generacio +es: hasta la %s generaciĂłn +et: %s sugupõlveni +fi: %s sukupolveen +fr: jusqu'Ă  la %s gĂ©nĂ©ration +he: לדור ×”%s +is: til %s kynslóðar +it: fino alla %s generazione +lv: lÄ«dz %s. paaudzei +nl: tot de %s generatie +no: til %s generasjon +oc: entrò la %s generacion +pl: do %s pokolenia +pt: atĂ© Ă  %s geração +ro: pina la generatia %s +ru: Đ´Đľ %s поколения +sk: do %s generácie +sl: do %s generacije +sv: till den %s generationen to the children af: tot die kinders @@ -11088,6 +12173,7 @@ lv: lÄ«dz bÄ“rnam nl: tot de kinderen no: til barna +oc: entrò los enfants pl: tylko dzieci pt: atĂ© aos filhos ro: pina la copii @@ -11116,6 +12202,7 @@ lv: lÄ«dz mazbÄ“rnam nl: tot de kleinkinderen no: til barnebarna +oc: entrò los felens pl: dzieci i wnuki pt: atĂ© aos netos ro: pina la nepoti @@ -11144,6 +12231,7 @@ lv: lÄ«dz vecvecÄkiem nl: tot de grootouders no: til besteforeldrene +oc: entrò los grands pl: rodzice i dziadkowie pt: atĂ© aos avĂłs ro: pina la bunici @@ -11172,6 +12260,7 @@ lv: lÄ«dz mazmazbÄ“rniem nl: tot de achterkleinkinderen no: til oldebarna +oc: entrò los rèire-felens pl: do prawnukĂłw pt: atĂ© aos bisnetos ro: pina la stranepoti @@ -11200,6 +12289,7 @@ lv: lÄ«dz vecvecvecÄkiem nl: tot de overgrootouders no: til oldeforeldrene +oc: entrò los rèiregrands pl: do pradziadkĂłw pt: atĂ© aos bisavĂłs ro: pina la strabunici @@ -11228,6 +12318,7 @@ lv: lÄ«dz vecÄkiem nl: tot de ouders no: til foreldrene +oc: entrò los parents pl: tylko rodzice pt: atĂ© aos pais ro: pina la parinti @@ -11236,33 +12327,118 @@ sl: do staršev sv: till föräldrarna - to the %s generation -af: tot die %s geslag -bg: Đ´Đľ %s поколение -br: betek ar %s rummad-tud -ca: fins a la %s generaciĂł -cs: aĹľ do %s generace -da: til den %s generation -de: bis zur %s Generation -en: up to the %s generation -eo: Äťis la %s generacio -es: hasta la %s generaciĂłn -et: %s sugupõlveni -fi: %s sukupolveen -fr: jusqu'Ă  la %s gĂ©nĂ©ration -he: לדור ×”%s -is: til %s kynslóðar -it: fino alla %s generazione -lv: lÄ«dz %s. paaudzei -nl: tot de %s generatie -no: til %s generasjon -pl: do %s pokolenia -pt: atĂ© Ă  %s geração -ro: pina la generatia %s -ru: Đ´Đľ %s поколения -sk: do %s generácie -sl: do %s generacije -sv: till den %s generationen + today +af: vandag +bg: Đ´Đ˝ĐµŃ +br: hiziv an deiz +ca: avui +cs: dnes +da: i dag +de: heute +en: today +eo: hodiaĂą +es: hoy +et: täna +fi: tänään +fr: aujourd’hui +he: היום +is: Ă­ dag +it: oggi +lv: šodien +nl: vandaag +no: i dag +oc: uèi +pl: dzisiaj +pt: hoje +ro: astazi +ru: Ńегодня +sk: dnes +sl: danes +sv: i dag + + tomorrow +af: mĂ´re +bg: Ńтре +br: warc'hoazh +ca: demĂ  +cs: zĂ­tra +da: i morgen +de: morgen +en: tomorrow +eo: morgaĂą +es: mañana +et: homme +fi: huomenna +fr: demain +he: מחר +is: á morgun +it: domani +lv: rÄ«t +nl: morgen +no: i morgen +oc: deman +pl: jutro +pt: amanhĂŁ +ro: maine +ru: завтра +sk: zajtra +sl: jutri +sv: i morgon + + tools +de: hilfsmittel +en: tools +es: herramientas +fi: työkalut +fr: outils +it: utilitari +nl: nuttige zaken +no: verktøy +oc: aisinas +pt: ferramentas +sv: verktyg + + total +af: totaal +bg: общо +br: en holl +ca: total +cs: celkem +da: totalt +de: Summe +en: total +eo: tuto +es: total +et: kokku +fi: yhteensä +fr: total +he: סה'×› +is: alls +it: totale +lv: kopÄ +nl: totaal +no: totalt +oc: total +pl: Ĺ‚Ä…cznie +pt: total +ro: in total +ru: вŃего +sk: spolu +sl: skupaj +sv: totalt + + town +de: Gemeinde +en: Town +es: Lugar +fi: Pitäjä +fr: Commune +it: Comune +nl: Gemeente +no: Sogn +oc: Comuna +pt: Localidade +sv: Socken tree af: boom @@ -11284,6 +12460,7 @@ lv: koks nl: boom no: tre +oc: arbre pl: drzewo pt: árvore ro: arbore @@ -11292,6 +12469,19 @@ sl: drevo sv: träd + trees & lists +de: Bäume & Listen +en: Charts & Lists +es: Ărboles & listas +fi: Kaaviot & Listat +fr: Arbres & Listes +it: Alberi & Elenchi +nl: Grafieken en lijsten +no: Tavler & Lister +oc: Arbres e Listas +pt: Tabelas & Listas +sv: Diagram & Listor + try again bg: опитайте отново da: prøv igen @@ -11304,9 +12494,24 @@ it: riprovare nl: terug proberen no: prøv igjen +oc: tornar ensajar +pt: tente novamente sk: skĂşs znovu sv: försöka igen + try another/relationship computing +de: Klicken Sie hier / um eine andere Berechnungsmethode zu versuchen +en: try another computing option +es: Pulse aquĂ­/para intentar un modo de cálculo diferente +fi: Napsauta tästä kokeillaksesi toista laskentavaihtoehtoa +fr: Cliquez ici/pour essayer un mode de calcul diffĂ©rent +it: Clicca qui/per provare un altro modo di calcolo +nl: Hier klikken om een andere berekeningswijze te proberen +no: forsøk en annen kalkuleringsmulighet +oc: Clicatz aicĂ­/per ensajar un autre mòde de calcul +pt: Clique aqui/para tentar um modo de cálculo diferente +sv: Försök ett annat programmeringssätt + uncles and aunts af: ooms en tantes bg: вŃйчовци, чичовци и лели @@ -11327,6 +12532,7 @@ lv: onkuÄĽi un tantes nl: ooms en tantes no: onkler og tanter +oc: oncles e tantas pl: stryjowie lub wujowie oraz ciotki pt: tios e tias ro: unchi/matuse @@ -11355,6 +12561,7 @@ lv: nenoskaidrots dzimums personai %t nl: onbepaald geslacht voor %t no: udefinert kjønn for %t +oc: sèxe pas definit per %t pl: %t ma nieokreĹ›lonÄ… pĹ‚eć pt: sexo indefinido para %t ro: gen nedefinit pentru %t @@ -11383,6 +12590,7 @@ lv: nezinÄma persona nl: onbekend persoon no: ukjent person +oc: persona desconeguda pl: osoba nieznana pt: pessoa desconhecida ro: persoana necunoscuta @@ -11411,6 +12619,7 @@ lv: nenoteikts nl: niet gespecificeerd no: uspesifisert +oc: pas especificat pl: nieokreĹ›lone pt: nĂŁo especificado ro: nespecificata @@ -11419,6 +12628,35 @@ sl: nedoloÄŤeno sv: ospecificerad + up to +af: tot by +bg: Đ´Đľ +br: betek +ca: fins a +cs: aĹľ po :a: +da: op til +de: bis +en: up to +eo: Äťis +es: hasta +et: kuni +fi: saakka +fr: jusqu’à +he: עד +is: upp aĂ° +it: fino a +lv: lÄ«dz +nl: tot aan +no: opp til +oc: entrò +pl: do +pt: atĂ© +ro: pina la +ru: вплоть Đ´Đľ +sk: aĹľ po :a: +sl: do +sv: upp till + update af: bywerk bg: промяна @@ -11439,6 +12677,7 @@ lv: informÄcijas papildinÄšana nl: actualiseer no: oppdater +oc: mesa a jorn pl: aktualizacja pt: actualizar pt-br: atualizar @@ -11449,33 +12688,18 @@ sv: uppdatera zh: ć›´ć–° - up to -af: tot by -bg: Đ´Đľ -br: betek -ca: fins a -cs: aĹľ po :a: -da: op til -de: bis -en: up to -eo: Äťis -es: hasta -et: kuni -fi: saakka -fr: jusqu’à -he: עד -is: upp aĂ° -it: fino a -lv: lÄ«dz -nl: tot aan -no: opp til -pl: do -pt: atĂ© -ro: pina la -ru: вплоть Đ´Đľ -sk: aĹľ po :a: -sl: do -sv: upp till + update family +de: Lebensgemeinschaften verwalten +en: Edit Family +es: administrar las uniones +fi: Muokata perhe +fr: gĂ©rer les unions +it: gestire le unioni +nl: huwelijken beheren +no: Redigere familie +oc: gerir las unions +pt: atualizar famĂ­lia +sv: Redigera familje use "link" instead of "create" af: gebruik "koppel" eerder as "skep" @@ -11497,6 +12721,7 @@ lv: "izveidot" vietÄ lietojiet "saite" nl: gebruik "connectie" inplaats van "creĂ«ren" no: bruk "koble" istedet for "opprett" +oc: utilizatz "religar" al lòc de "crear" pl: uĹĽyj "link" zamiast "utwĂłrz" pt: use "ligar" em lugar de "criar" ro: utilizeaza "reuneste" in loc de "creaza" @@ -11520,7 +12745,9 @@ lv: lietotÄjs/parole/atcelt nl: gebruiker/wachtwoord/annuleren no: bruker/passord/avbryt +oc: utilizaire/mot de Sta Clara/anullar pl: uĹĽytkownik/hasĹ‚o/anuluj +pt: utilizador/palavra passe/anular ro: utilizator/parola/anulare sl: uporabnik/geslo/prekliÄŤi sv: användare/passord/avbryt @@ -11539,6 +12766,7 @@ it: conferma/elimina nl: valideer/verwijder no: verifiser/slett +oc: validar/escafar pl: sprawdĹş/usuĹ„ pt: validar/eliminar ro: valideaza/sterge @@ -11552,6 +12780,8 @@ es: versiĂłn fr: version it: versione +nl: versie +oc: version view source de: siehe Quelle @@ -11563,6 +12793,7 @@ it: vedere fonte nl: zie bron no: se kilde +oc: veire la font sk: pozri zdroj sv: se källa @@ -11580,6 +12811,7 @@ it: visualizza/mostra/nascondi/riassunto nl: visualiseren/tonen/verbergen/samenvatting no: visualiser/vis/skjul/summarisk +oc: visualiza/aficha/escond/somari pl: wyĹ›wietl/pokaĹĽ/ukryj/podsumowanie pt: visualizar/mostrar/esconder/sumário ro: vizualizeaza/arata/ascunde/sumar @@ -11587,6 +12819,19 @@ sk: vizualizovaĹĄ/ukázaĹĄ/schovaĹĄ/sumarizovaĹĄ sv: visualisera/visa/göm/summering + vital record +de: Individuum +en: Individual +es: Individuo +fi: Henkilö +fr: fiche +it: Persona +nl: Persoon +no: Individ +oc: Persona +pt: Pessoa +sv: Individ + warnings af: waarskuwings bg: предŃпреждения @@ -11607,6 +12852,7 @@ lv: brÄ«dinÄjumi nl: waarschuwingen no: advarsler +oc: avertiments pl: uwaga! pt: avisos ro: avertisment @@ -11624,6 +12870,8 @@ it: luogo di nascita nl: geboorteplaats no: fødested +oc: lòc de naissença +pt: local de nascimento sv: födelseort where dead @@ -11635,17 +12883,21 @@ it: luogo della morte nl: plaats overlijden no: dødssted +oc: lòc de decès +pt: local do Ăłbito sv: dödsort where married de: Ort der Trauung -en: where married +en: Where married es: lugar de matrimonio fi: vihkipaikka -fr: lieu de mariage -it: luogo del matrimonio +fr: lieu de l'union +it: luogo dell'unione nl: huwelijksplaats no: sted for vigsel +oc: lòc de l'union +pt: local da uniĂŁo sv: vigselort with @@ -11668,6 +12920,7 @@ lv: ar nl: met no: med +oc: amb pl: z: pt: com ro: cu @@ -11696,6 +12949,7 @@ lv: liecinieks %s un %s laulÄ«bÄs nl: getuige bij het huwelijk van %s en %s no: forlover ved ekteskap mellom %s og %s +oc: testimòni al maridatge de %s e %s pl: Ĺ›wiadek maĹ‚ĹĽeĹ„stwa pomiÄ™dzy osobami: %s i %s pt: testemunha do casamento de %s e %s ro: martor la mariajul lui %s cu %s @@ -11724,6 +12978,7 @@ lv: liecinieks:a:-u/liecinieki nl: getuige/getuigen no: forlover/forlovere +oc: testimòni/testimònis pl: Ĺ›wiadek:a:--ka/Ĺ›wiadkowie pt: testemunha/testemunhas ro: martor/martori @@ -11752,6 +13007,7 @@ lv: wizard/wizard/friend/friends/exterior nl: beheerder/beheerder/gast/gast/exterior no: administrator/administratorer/venn/venner/eksteriør +oc: fachilhièr/fachilhièr/amic/amic/exterior pl: wizard/wizard/friend/friends/exterior pt: feiticeiro/feiticeiros/amigo/amigos/exterior ro: magician/magician/amic/amic/exterior @@ -11780,6 +13036,7 @@ lv: varÄ“tu bĹ«t viņa/viņas priekštecis nl: zou zijn/haar eigen voorouder zijn no: ville være sin egen ane +oc: seriá son/sa quite(a) aujòl(a) pl: byĹ‚by/byĹ‚aby swoim wĹ‚asnym przodkiem pt: seria seu prĂłpio antepassado ro: ar fi propriul stramos @@ -11788,6 +13045,34 @@ sl: bi bil svoj lasten prednik sv: skulle vara sin egen ana + Y/N +af: J/N +bg: Đ”/Đť +br: Ya/N'eo ket +ca: S/N +cs: A/N +da: J/N +de: J/N +en: Y/N +eo: J/N +es: S/N +et: J/E +fi: K/E +fr: O/N +he: ק/ל +is: J/N +it: S/N +lv: J/N +nl: J/N +no: J/N +oc: O/N +pt: S/N +ro: da/nu +ru: Đ”/Đť +sk: áno/nie +sl: da/ne +sv: J/N + year/month/day af: jaar/maand/dag ar: سنة/شهر/ŮŠŮŮ… @@ -11809,6 +13094,7 @@ lv: gads/mÄ“nesis/diena nl: jaar/maand/dag no: ĂĄr/mĂĄned/dag +oc: an/mes/jorn pl: rok/miesiÄ…c/dzieĹ„ pt: ano/mĂŞs/dia ro: anul/luna/ziua @@ -11838,6 +13124,7 @@ lv: gadi nl: jaar oud no: ĂĄr +oc: ans pl: lat pt: anos ro: ani @@ -11847,34 +13134,6 @@ sv: ĂĄr zh: ĺ˛ - Y/N -af: J/N -bg: Đ”/Đť -br: Ya/N'eo ket -ca: S/N -cs: A/N -da: J/N -de: J/N -en: Y/N -eo: J/N -es: S/N -et: J/E -fi: K/E -fr: O/N -he: ק/ל -is: J/N -it: S/N -lv: J/N -nl: J/N -no: J/N -pl: T/N -pt: S/N -ro: da/nu -ru: Đ”/Đť -sk: áno/nie -sl: da/ne -sv: J/N - you are visible/you are not visible de: sie sind sichtbar/sie sind unsichtbar en: you are visible/you are invisible @@ -11885,6 +13144,8 @@ it: sei visibile/sei invisibile nl: u bent zichtbaar / u bent niet zichbaar no: du er synlig/du er usynlig +oc: sètz vesedor(a)/sètz pas vesedor(a) +pt: vocĂŞ Ă© visĂ­vel/vocĂŞ nĂŁo Ă© visĂ­vel ro: tu esti vizibil/tu nu esti vizibil sv: du är synlig/du är ej synlig @@ -11908,6 +13169,7 @@ lv: Jums vispirms ir jÄapvieno nl: eerst samenvoegen no: du mĂĄ først slĂĄ sammen +oc: devètz primièr fusionar pl: musisz najpierw dokonać scalenia pt: tem que fundir primeiro ro: trebuia intai sa unesti @@ -11936,6 +13198,7 @@ lv: Jums vispirms ir jÄpvieno 2 ÄŁimenes nl: eerst de twee gezinnen samenvoegen no: du mĂĄ først slĂĄ sammen de 2 familiene +oc: devètz primièr fusionar las 2 familhas pl: musisz najpierw scalić 2 rodziny pt: primeiro tem que fundir as 2 famĂ­lias ro: trebuie intai sa unesti cele doua familii @@ -11958,9 +13221,11 @@ it: il vostro messaggio è in attesa di convalida nl: uw bericht wacht op validatie no: Beskjeden din venter pĂĄ validering +oc: vòstre messatge es en espèra de validacion pl: twoja wiadomość czeka na potwierdzenie pt: a sua mensagem aguarda validação ro: mesajul dvs. asteapta sa fie validat ru: ваŃе Ńообщение ожидает проверки sk: tvoja správa ÄŤaká na potvrdenie sv: ditt meddelande väntar pĂĄ giltighet + diff -Nru geneweb-6.08dfsg/hd/lang/start_utf8.txt geneweb-6.08+git20160228+dfsg/hd/lang/start_utf8.txt --- geneweb-6.08dfsg/hd/lang/start_utf8.txt 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/hd/lang/start_utf8.txt 2016-02-28 10:10:47.000000000 +0000 @@ -8,7 +8,7 @@ bg: Genealogy br: Genealogiezh ca: Genealogia -cs: Genealogy +cs: Genealogie da: Genealogi de: Genealogie en: Genealogy @@ -23,6 +23,7 @@ lv: ĢenealoÄŁija nl: Genealogie no: Genealogi +oc: Genealogia pl: Genealogia pt: Genealogia ro: Genealogie @@ -95,6 +96,7 @@ lv: Ciltsrakstu datu bÄze nl: Genealogische databank no: Genealogisk database +oc: Basa de donadas genealogica pl: Genealogiczna baza danych pt: Base de Dados Genealógica ro: Baza de date genealogice @@ -153,6 +155,8 @@ nl: Deze databank "%t" bevat nu %n personen. no: Databasen "%t" inneholder nå %n personer. +oc: La basa de donadas "%t" conten + actualament %n personas. pl: Baza danych "%t" zawiera obecnie osĂłb: %n. pt: A base de dados "%t" contém actualmente %n pessoas. @@ -214,6 +218,9 @@ (wachtwoord) no: [wizard/wizards/friend/friends]0 adgang (passord) +oc: accès [wizard/wizards/friend/friends]0 %P + (mot de Santa Clara). pl: "[wizard/wizards/friend/friends]0" dostÄ™p (hasĹ‚o) pt: Entrada [wizard/wizards/friend/friends]0 @@ -249,6 +256,7 @@ lv: Friend access (password) nl: Toegang als vriend (wachtwoord) no: Venners adgang (passord) +oc: accès amic (mot de Santa Clara) pl: "Friend" dostÄ™p (hasĹ‚o) pt: Entrada amigo (palavra chave) ro: Acces pentru amici (parola) @@ -284,6 +292,7 @@ lv: Password, for friend or wizard access: nl: Wachtwoord, voor toegang als vriend of tovenaar: no: Passord, for venner eller oppdaterings adgang: +oc: Mot de Santa Clara, per accès amic o administrator: pl: HasĹ‚o dla dostÄ™pu "friend" lub "wizard" : pt: Palavra chave para entrada amigo ou feiticeiro: ro: Parola, pentru acces de amic sau magician: @@ -323,6 +332,7 @@ lv: JĹ«s variet meklÄ“t šinÄ« datu bÄzÄ“: nl: Om deze databank te consulteren, kan u een opzoeking doen: no: For å navigere i databasen, kan du søke: +oc: Per navigar dins aquela basa, podètz far vòstra recèrca: pl: Aby poruszać siÄ™ po bazie, moĹĽesz: pt: Para consultar esta base de dados, pode procurar: ro: pentru folosirea basei de date poti sa selectezi: @@ -360,6 +370,7 @@ lv: personas nl: op naam no: etter person +oc: per persona pl: znaleźć osobÄ™: pt: por pessoa ro: persoane @@ -425,6 +436,7 @@ lv: tituls nl: op titel no: etter titel +oc: per títol pl: znaleźć: tytuĹ‚ pt: por título ro: titlu @@ -479,6 +491,7 @@ lv: visus nl: via de lijst van alle no: med liste over alle +oc: per la lista de totes los pl: przejrzeć listÄ™ wszystkich pt: pela lista de todos os ro: pe lista tuturor @@ -509,6 +522,7 @@ lv: uzvÄrdus nl: familienamen no: etternavn +oc: noms de familha pl: nazwisk pt: apelidos pt-br: sobrenomes @@ -523,7 +537,7 @@ bg: ŃобŃтвени имена br: raganvioĂą ca: noms -cs: kĹ™estnĂ­ jmĂ©no +cs: kĹ™estnĂ­ jmĂ©na da: fornavne de: Vornamen en: first names @@ -538,6 +552,7 @@ lv: vÄrdus nl: voornamen no: fornavn +oc: prenoms pl: imion pt: nomes próprios pt-br: prenomes @@ -569,6 +584,7 @@ lv: nl: volgens no: sortert +oc: per pl: uĹ‚oĹĽonych pt: por ro: in @@ -599,6 +615,7 @@ lv: alfabÄ“tiskÄ kÄrtÄ«bÄ nl: alfabet no: alfabetisk +oc: òrdre alfabetic pl: w porzÄ…dku alfabetycznym pt: ordem alfabética ro: ordine alfabetica @@ -628,6 +645,7 @@ lv: pÄ“c sastopamÄ«bas nl: aantal no: etter frekvens +oc: frequéncia pl: wedĹ‚ug czÄ™stoĹ›ci wystÄ™powania pt: frequência ro: dupa frecventa @@ -668,6 +686,7 @@ lv: nl: via no: etter +oc: per pl: przejrzeć listÄ™: pt: por ro: cu @@ -742,6 +761,9 @@ no: gjennom avansert søking. +oc: per la + recèrca + avançada. pl: skorzystać z wyszukiwania zaawansowanego. @@ -791,6 +813,7 @@ lv: Izmaiņu veikšana: nl: U kunt: no: Du kan +oc: Podètz pl: MoĹĽesz: pt: Pode ro: Tu poti @@ -825,6 +848,7 @@ lv: pievienot ÄŁimeni nl: een familie toevoegen no: legge til en familie +oc: apondre una familha pl: dodać rodzinÄ™ (parÄ™) pt: acrescentar uma famĂ­lia ro: adauga o familie @@ -859,6 +883,7 @@ lv: labot piezÄ«mes nl: de aantekeningen wijzigen no: endre notater +oc: modificar las nòtas pl: zmodyfikować uwagi pt: modificar as notas ro: modifica nota @@ -898,6 +923,7 @@ lv: InformÄcija par: nl: U kunt de volgende zaken bekijken: no: Du kan også slå opp +oc: Tanben podètz consultar pl: MoĹĽesz takĹĽe obejrzeć: pt: Também pode consultar ro: poti consulta @@ -973,6 +999,8 @@ nl: Deze paginas zijn sinds %d reeds %q maal bezocht, waaronder %c maal deze verwelkomingspagina. no: Det har vært %q aksesser, %c av dem til denne siden, siden %d. +oc: I a agut %q visitas, mai particularament %c sus aquela pagina, + dempuèi lo %d. pl: Baza zostaĹ‚a od %d odwiedzona %q razy (w tym %c razy strona tytuĹ‚owa). pt: Houve %q consultas, das quais %c foram a esta página, desde %d. ro: Au avut loc %q accese din care %c pe aceatsa pagina din %d @@ -1048,6 +1076,10 @@ no: Hvis din browser ikke automatisk oppdaterer endrede sider (krever oppfrisking av den aktuelle siden), prøv da ĂĄ navigere herfra. +oc: Si vòstre navigaire actualiza pas automaticament las paginas + modificadas (e vos fòrça a actualizar manualament + la pagina), ensajatz de navigar a partir d'aquela + adreça. pl: JeĹĽeli twoja przeglÄ…darka nie odĹ›wieĹĽa automatycznie zmienionych stron (zmuszajÄ…c ciÄ™ do ich rÄ™cznego odĹ›wieĹĽania), kliknij tutaj. @@ -1095,6 +1127,7 @@ is: orĂ°asafn it: lessico no: leksikon +oc: lexic pl: leksykon ro: lexicon sl: leksikon diff -Nru geneweb-6.08dfsg/hd/lang/version.txt geneweb-6.08+git20160228+dfsg/hd/lang/version.txt --- geneweb-6.08dfsg/hd/lang/version.txt 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/hd/lang/version.txt 2016-02-28 10:10:47.000000000 +0000 @@ -33,6 +33,7 @@ nl: U kunt een andere taal kiezen uit een van de volgende mogelijkheden: no: Du kan velge sidevisning på et annet språk blant følgende: +oc: Vos podètz causir una autra lengua, demèst las que son disponiblas: pl: MoĹĽesz wybrać inny jÄ™zyk spoĹ›rĂłd nastÄ™pujÄ…cych: ro: poti sa alegi una din urmatoarele limbi pentru afisaj sl: Lahko izberete drug jezik: @@ -175,6 +176,13 @@ id="ino" style="border: 0"%/>%uno;
  • + %uoc; +
  • +
  • [ en: Wizard rights are now suspended for maintenance. fr: Les droits des magiciens sont actuellement suspendus pour maintenance. +oc: Los drreches dels fachilhièrs son suspenduts per ara per mantenença. ]

    %E diff -Nru geneweb-6.08dfsg/launch/launch.ml geneweb-6.08+git20160228+dfsg/launch/launch.ml --- geneweb-6.08dfsg/launch/launch.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/launch/launch.ml 2016-02-28 10:10:47.000000000 +0000 @@ -223,7 +223,7 @@ [ Some (prev_var, prev) -> do { let buts = Frame.create frame [] in let kont_prev () = do { - Pack.forget [gframe]; + Pack.forget [gframe]; let state = {(state) with config_env = diff -Nru geneweb-6.08dfsg/setup/setup.ml geneweb-6.08+git20160228+dfsg/setup/setup.ml --- geneweb-6.08dfsg/setup/setup.ml 2014-03-24 10:47:50.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/setup/setup.ml 2016-02-28 10:10:47.000000000 +0000 @@ -11,13 +11,13 @@ value only_file = ref ""; value slashify s = - let s1 = String.copy s in + let s1 = Bytes.copy s in do { for i = 0 to String.length s - 1 do { - s1.[i] := - match s.[i] with - [ '\\' -> '/' - | x -> x ] + Bytes.set s1 i + (match s.[i] with + [ '\\' -> '/' + | x -> x ]) }; s1 } @@ -51,13 +51,13 @@ | '&' -> do { String.blit "&" 0 s1 i1 5; i1 + 5 } | '<' -> do { String.blit "<" 0 s1 i1 4; i1 + 4 } | '>' -> do { String.blit ">" 0 s1 i1 4; i1 + 4 } - | c -> do { s1.[i1] := c; succ i1 } ] + | c -> do { Bytes.set s1 i1 c; succ i1 } ] in copy_code_in s1 (succ i) i1 else s1 in if need_code 0 then - let len = compute_len 0 0 in copy_code_in (String.create len) 0 0 + let len = compute_len 0 0 in copy_code_in (Bytes.create len) 0 0 else s ; @@ -754,8 +754,8 @@ | _ -> error conf "request needs \"v\" parameter" ] ; -value print_default_gwf_file conf = - let gwf = +value print_default_gwf_file conf = + let gwf = [ "access_by_key=yes"; "disable_forum=yes"; "hide_private_names=no"; @@ -1203,10 +1203,10 @@ (* RĂ©cupère tous les fichiers et dossier d'un dossier *) (* et renvoie la liste des dossiers et la liste des fichiers. *) let read_files_folders fname = - let list = - List.map + let list = + List.map (fun file -> Filename.concat fname file) - (Array.to_list (Sys.readdir fname)) + (Array.to_list (Sys.readdir fname)) in List.partition Sys.is_directory list in @@ -1224,9 +1224,9 @@ (* Toute l'arborescence de dir *) let (folders, files) = loop [dir] [] [] in do { - List.iter Unix.unlink files; - List.iter Unix.rmdir folders; - Unix.rmdir dir + List.iter (fun f -> try Unix.unlink f with [ _ -> () ]) files; + List.iter (fun f -> try Unix.rmdir f with [ _ -> () ]) folders; + try Unix.rmdir dir with [ Unix.Unix_error _ _ _ -> () ] } ; @@ -1274,7 +1274,7 @@ Sys.rename in_base_dir (Filename.concat "old" in_base_dir); let c = Filename.concat bin_dir.val "gwc" ^ " tmp.gw -nofail -o " ^ in_base ^ - " > comm.log " + " > comm.log 2>&1" in eprintf "$ %s\n" c; flush stderr; @@ -1287,7 +1287,7 @@ print_file conf "bsi_err.htm" else print_file conf "clean_ok.htm" } -; +; value rec check_new_names conf l1 l2 = match (l1, l2) with @@ -1398,7 +1398,7 @@ (fun s b -> if s = "" then " " ^ b ^ ".gw" else s ^ " -sep " ^ b ^ ".gw") "" bases ^ - " -f -o " ^ out_file ^ " > comm.log" + " -f -o " ^ out_file ^ " > comm.log 2>&1" in eprintf "$ %s\n" c; flush stderr; diff -Nru geneweb-6.08dfsg/src/alln.ml geneweb-6.08+git20160228+dfsg/src/alln.ml --- geneweb-6.08dfsg/src/alln.ml 2014-08-26 08:33:46.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/alln.ml 2016-02-28 10:10:47.000000000 +0000 @@ -36,7 +36,7 @@ else k ^ String.make (String.length ini + 1 - String.length k) '_' in for i = 0 to String.length ini_k - 1 do { - if ini_k.[i] = ' ' then ini_k.[i] := '_' else () + if ini_k.[i] = ' ' then Bytes.set ini_k i '_' else () }; let new_list = if ini_k = "_" then new_list @@ -321,7 +321,7 @@ else [ip :: l]) [] my_list else my_list - in + in let cnt = List.length my_list in if cnt = 0 then (list, len) else diff -Nru geneweb-6.08dfsg/src/ansel.ml geneweb-6.08+git20160228+dfsg/src/ansel.ml --- geneweb-6.08dfsg/src/ansel.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/ansel.ml 2016-02-28 10:10:47.000000000 +0000 @@ -38,7 +38,7 @@ in if identical then s else - let s' = String.create len in + let s' = Bytes.create len in loop 0 0 where rec loop i i' = if i = String.length s then s' else @@ -47,46 +47,46 @@ [ 'Ŕ' | 'Č' | 'Ě' | 'Ň' | 'Ů' | 'ŕ' | 'č' | 'ě' | 'ň' | 'ů' -> do { - s'.[i'] := Char.chr 225; s'.[i'+1] := no_accent s.[i]; + Bytes.set s' i' (Char.chr 225); Bytes.set s' (i'+1) (no_accent s.[i]); i' + 1 } | 'Á' | 'É' | 'Í' | 'Ó' | 'Ú' | 'Ý' | 'á' | 'é' | 'í' | 'ó' | 'ú' | 'ý' -> do { - s'.[i'] := Char.chr 226; s'.[i'+1] := no_accent s.[i]; + Bytes.set s' i' (Char.chr 226); Bytes.set s' (i'+1) (no_accent s.[i]); i' + 1 } | 'Â' | 'Ę' | 'Î' | 'Ô' | 'Ű' | 'â' | 'ę' | 'î' | 'ô' | 'ű' -> do { - s'.[i'] := Char.chr 227; s'.[i'+1] := no_accent s.[i]; + Bytes.set s' i' (Char.chr 227); Bytes.set s' (i'+1) (no_accent s.[i]); i' + 1 } | 'Ă' | 'Ń' | 'Ő' | 'ă' | 'ń' | 'ő' -> do { - s'.[i'] := Char.chr 228; s'.[i'+1] := no_accent s.[i]; + Bytes.set s' i' (Char.chr 228); Bytes.set s' (i'+1) (no_accent s.[i]); i' + 1 } | 'Ä' | 'Ë' | 'Ď' | 'Ö' | 'Ü' | 'ä' | 'ë' | 'ď' | 'ö' | 'ü' | '˙' -> do { - s'.[i'] := Char.chr 232; s'.[i'+1] := no_accent s.[i]; + Bytes.set s' i' (Char.chr 232); Bytes.set s' (i'+1) (no_accent s.[i]); i' + 1 } | 'Ĺ' | 'ĺ' -> do { - s'.[i'] := Char.chr 234; s'.[i'+1] := no_accent s.[i]; + Bytes.set s' i' (Char.chr 234); Bytes.set s' (i'+1) (no_accent s.[i]); i' + 1 } | 'Ç' | 'ç' -> do { - s'.[i'] := Char.chr 240; s'.[i'+1] := no_accent s.[i]; + Bytes.set s' i' (Char.chr 240); Bytes.set s' (i'+1) (no_accent s.[i]); i' + 1 } - | 'Ř' -> do { s'.[i'] := Char.chr 162; i' } - | 'ř' -> do { s'.[i'] := Char.chr 178; i' } - | 'ß' -> do { s'.[i'] := Char.chr 207; i' } - | c -> do { s'.[i'] := c; i' } ] + | 'Ř' -> do { Bytes.set s' i' (Char.chr 162); i' } + | 'ř' -> do { Bytes.set s' i' (Char.chr 178); i' } + | 'ß' -> do { Bytes.set s' i' (Char.chr 207); i' } + | c -> do { Bytes.set s' i' c; i' } ] in loop (i + 1) (i' + 1) ; @@ -195,25 +195,25 @@ in if identical then s else - let s' = String.create len in + let s' = Bytes.create len in loop 0 0 where rec loop i i' = if i = String.length s then s' else if i = String.length s - 1 then - do { s'.[i'] := s.[i]; s' } + do { Bytes.set s' i' s.[i]; s' } else let i = match Char.code s.[i] with - [ 162 -> do { s'.[i'] := 'Ř'; i } - | 178 -> do { s'.[i'] := 'ř'; i } - | 207 -> do { s'.[i'] := 'ß'; i } - | 225 -> do { s'.[i'] := grave s.[i+1]; i + 1 } - | 226 -> do { s'.[i'] := acute s.[i+1]; i + 1 } - | 227 -> do { s'.[i'] := circum s.[i+1]; i + 1 } - | 228 -> do { s'.[i'] := tilde s.[i+1]; i + 1 } - | 232 -> do { s'.[i'] := uml s.[i+1]; i + 1 } - | 234 -> do { s'.[i'] := circle s.[i+1]; i + 1 } - | 240 -> do { s'.[i'] := cedil s.[i+1]; i + 1 } - | _ -> do { s'.[i'] := s.[i]; i } ] + [ 162 -> do { Bytes.set s' i' 'Ř'; i } + | 178 -> do { Bytes.set s' i' 'ř'; i } + | 207 -> do { Bytes.set s' i' 'ß'; i } + | 225 -> do { Bytes.set s' i' (grave s.[i+1]); i + 1 } + | 226 -> do { Bytes.set s' i' (acute s.[i+1]); i + 1 } + | 227 -> do { Bytes.set s' i' (circum s.[i+1]); i + 1 } + | 228 -> do { Bytes.set s' i' (tilde s.[i+1]); i + 1 } + | 232 -> do { Bytes.set s' i' (uml s.[i+1]); i + 1 } + | 234 -> do { Bytes.set s' i' (circle s.[i+1]); i + 1 } + | 240 -> do { Bytes.set s' i' (cedil s.[i+1]); i + 1 } + | _ -> do { Bytes.set s' i' s.[i]; i } ] in loop (i + 1) (i' + 1) ; diff -Nru geneweb-6.08dfsg/src/base64.ml geneweb-6.08+git20160228+dfsg/src/base64.ml --- geneweb-6.08dfsg/src/base64.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/base64.ml 2016-02-28 10:10:47.000000000 +0000 @@ -5,7 +5,7 @@ (* Encoding is [A-Z][a-z][0-9]+/= *) (* 3 chars = 24 bits = 4 * 6-bit groups -> 4 chars *) -value index64 = Array.create 128 0; +value index64 = Array.make 128 0; (* Init the index *) do { for i = 0 to 25 do { index64.(i + Char.code 'A') := i }; @@ -19,7 +19,7 @@ let rpos = ref 0 and wpos = ref 0 and len = String.length s in - let res = String.create (len / 4 * 3) in + let res = Bytes.create (len / 4 * 3) in do { while rpos.val < len do { let v1 = index64.(Char.code s.[rpos.val]) in @@ -27,9 +27,9 @@ let v3 = index64.(Char.code s.[rpos.val + 2]) in let v4 = index64.(Char.code s.[rpos.val + 3]) in let i = v1 lsl 18 lor v2 lsl 12 lor v3 lsl 6 lor v4 in - res.[wpos.val] := Char.chr (i lsr 16); - res.[wpos.val + 1] := Char.chr (i lsr 8 land 0xFF); - res.[wpos.val + 2] := Char.chr (i land 0xFF); + Bytes.set res wpos.val (Char.chr (i lsr 16)); + Bytes.set res (wpos.val + 1) (Char.chr (i lsr 8 land 0xFF)); + Bytes.set res (wpos.val + 2) (Char.chr (i land 0xFF)); rpos.val := rpos.val + 4; wpos.val := wpos.val + 3 }; @@ -41,7 +41,7 @@ ; -value char64 = Array.create 64 'a'; +value char64 = Array.make 64 'a'; do { for i = 0 to 25 do { char64.(i) := Char.chr (Char.code 'A' + i) }; for i = 0 to 25 do { char64.(i + 26) := Char.chr (Char.code 'a' + i) }; @@ -62,21 +62,21 @@ | 2 -> (s ^ "\000", origlen + 1) | _ -> match () with [] ] in - let res = String.create (len / 3 * 4) in + let res = Bytes.create (len / 3 * 4) in do { while rpos.val < len do { let i1 = Char.code s.[rpos.val] in let i2 = Char.code s.[rpos.val + 1] in let i3 = Char.code s.[rpos.val + 2] in let i = i1 lsl 16 lor i2 lsl 8 lor i3 in - res.[wpos.val] := char64.(i lsr 18 land 0x3f); - res.[wpos.val + 1] := char64.(i lsr 12 land 0x3f); - res.[wpos.val + 2] := char64.(i lsr 6 land 0x3f); - res.[wpos.val + 3] := char64.(i land 0x3f); + Bytes.set res wpos.val char64.(i lsr 18 land 0x3f); + Bytes.set res (wpos.val + 1) char64.(i lsr 12 land 0x3f); + Bytes.set res (wpos.val + 2) char64.(i lsr 6 land 0x3f); + Bytes.set res (wpos.val + 3) char64.(i land 0x3f); rpos.val := rpos.val + 3; wpos.val := wpos.val + 4 }; - for i = 1 to len - origlen do { res.[String.length res - i] := '=' }; + for i = 1 to len - origlen do { Bytes.set res (String.length res - i) '=' }; res } ; diff -Nru geneweb-6.08dfsg/src/birthday.ml geneweb-6.08+git20160228+dfsg/src/birthday.ml --- geneweb-6.08dfsg/src/birthday.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/birthday.ml 2016-02-28 10:10:47.000000000 +0000 @@ -37,7 +37,7 @@ ; value gen_print conf base mois f_scan dead_people = - let tab = Array.create 31 [] in + let tab = Array.make 31 [] in let title _ = let lab = if dead_people then transl conf "anniversaries" @@ -99,6 +99,11 @@ [ Not_found -> () ]; header conf title; print_link_to_welcome conf True; + if List.for_all (fun l -> List.length l = 0) (Array.to_list tab) then + tag "p" begin + Wserver.wprint "%s.\n" (capitale (transl conf "no anniversary")); + end + else (); Wserver.wprint "

  • . *) if p_getenv conf.env "marr" = Some "on" then - tag "td" "%s" - (if nb_families > 1 then "style=\"border-bottom:none\"" else "") + tag "td" "%s" + (if nb_families > 1 then "style=\"border-bottom:none\"" else "") begin let u = p in - if nb_families > 0 then + if nb_families > 0 then do { let cpl = foi base (get_family u).(0) in let spouse = pget conf base (Gutil.spouse (get_key_index p) cpl) in Util.print_image_sex conf spouse 11; - Wserver.wprint + Wserver.wprint " %s  " (referenced_person_text conf base spouse); } else Wserver.wprint " "; @@ -837,8 +837,8 @@ (* Les autres familles seront affichĂ©es après qu'on ait *) (* fini de remplir le . *) if p_getenv conf.env "marr_date" = Some "on" then - tag "td" "%s" - (if nb_families > 1 then "style=\"border-bottom:none\"" else "") + tag "td" "%s" + (if nb_families > 1 then "style=\"border-bottom:none\"" else "") begin let u = p in if nb_families > 0 then @@ -863,8 +863,8 @@ (* Les autres familles seront affichĂ©es après qu'on ait *) (* fini de remplir le . *) if p_getenv conf.env "marr_place" = Some "on" then - tag "td" "%s" - (if nb_families > 1 then "style=\"border-bottom:none\"" else "") + tag "td" "%s" + (if nb_families > 1 then "style=\"border-bottom:none\"" else "") begin let u = p in if nb_families > 0 then @@ -872,8 +872,8 @@ let spouse = pget conf base (Gutil.spouse (get_key_index p) cpl) in - let mplace = - if authorized_age conf base p && authorized_age conf base spouse + let mplace = + if authorized_age conf base p && authorized_age conf base spouse then Util.string_of_place conf (sou base (get_marriage_place cpl)) else "" @@ -890,8 +890,8 @@ p_getenv conf.env "marr_place" = Some "on" || p_getenv conf.env "marr_date" = Some "on" then - tag "td" "align=\"center\" %s" - (if nb_families > 1 then "style=\"border-bottom:none\"" else "") + tag "td" "align=\"center\" %s" + (if nb_families > 1 then "style=\"border-bottom:none\"" else "") begin let u = p in if nb_families > 0 then @@ -915,12 +915,12 @@ if not p_auth then " " else match get_death p with - [ Death _ d -> + [ Death _ d -> let d = Adef.date_of_cdate d in Date.string_slash_of_date conf d - | _ -> + | _ -> match get_burial p with - [ Cremated cod | Buried cod -> + [ Cremated cod | Buried cod -> match Adef.od_of_codate cod with [ Some d -> Date.string_slash_of_date conf d | _ -> " " ] @@ -935,11 +935,11 @@ if not p_auth then "" else match get_death p with - [ Death _ d -> + [ Death _ d -> Util.string_of_place conf (sou base (get_death_place p)) - | _ -> + | _ -> match get_burial p with - [ Cremated cod | Buried cod -> + [ Cremated cod | Buried cod -> match Adef.od_of_codate cod with [ Some d -> Util.string_of_place conf (sou base (get_burial_place p)) @@ -951,7 +951,7 @@ else (); if p_getenv conf.env "death_age" = Some "on" then tag "td" "%s" rowspan begin - let d = + let d = if not p_auth then "" else match Date.get_birth_death_date p with @@ -971,7 +971,7 @@ else (); if p_getenv conf.env "occu" = Some "on" then tag "td" "%s" rowspan begin - Wserver.wprint + Wserver.wprint "%s  " (if p_auth then sou base (get_occupation p) else ""); end else (); @@ -993,17 +993,17 @@ let fam = foi base (get_family u).(i) in tag "tr" begin if p_getenv conf.env "marr" = Some "on" then - tag "td" "style=\"border-top:none; %s\"" - (if (nb_families - 1) <> i then "border-bottom:none;" else "") + tag "td" "style=\"border-top:none; %s\"" + (if (nb_families - 1) <> i then "border-bottom:none;" else "") begin Util.print_image_sex conf spouse 11; - Wserver.wprint + Wserver.wprint " %s  " (referenced_person_text conf base spouse); end else (); if p_getenv conf.env "marr_date" = Some "on" then - tag "td" "style=\"border-top:none; %s\"" - (if (nb_families - 1) <> i then "border-bottom:none;" else "") + tag "td" "style=\"border-top:none; %s\"" + (if (nb_families - 1) <> i then "border-bottom:none;" else "") begin let mdate = if authorized_age conf base p && @@ -1018,11 +1018,11 @@ end else (); if p_getenv conf.env "marr_place" = Some "on" then - tag "td" "style=\"border-top:none; %s\"" - (if (nb_families - 1) <> i then "border-bottom:none;" else "") + tag "td" "style=\"border-top:none; %s\"" + (if (nb_families - 1) <> i then "border-bottom:none;" else "") begin - let mplace = - if authorized_age conf base p && + let mplace = + if authorized_age conf base p && authorized_age conf base spouse then Util.string_of_place conf (sou base (get_marriage_place cpl)) else "" @@ -1031,8 +1031,8 @@ end else (); if p_getenv conf.env "child" = Some "on" then - tag "td" "align=\"center\" style=\"border-top:none; %s\"" - (if (nb_families - 1) <> i then "border-bottom:none;" else "") + tag "td" "align=\"center\" style=\"border-top:none; %s\"" + (if (nb_families - 1) <> i then "border-bottom:none;" else "") begin Wserver.wprint "%d  " (Array.length (get_children fam)); end @@ -1059,11 +1059,11 @@ value build_desc conf base l = let rec loop l accu = match l with - [ [] -> + [ [] -> (* Comme on a fait un fold_left pour avoir le bon ordre *) (* des enfants, on renverse l'accumulateur pour l'avoir *) (* lui aussi dans le bon ordre. *) - List.rev accu + List.rev accu | [(p, lab) :: l] -> let cnt = ref 0 in let nx_accu = @@ -1073,7 +1073,7 @@ (fun accu ifam -> let fam = foi base ifam in List.fold_left - (fun accu ip -> + (fun accu ip -> let _ = incr cnt in [(pget conf base ip, lab ^ string_of_int cnt.val ^ ".") :: accu]) accu (Array.to_list (get_children fam))) @@ -1086,9 +1086,9 @@ (* ********************************************************************** *) -(* [Fonc] display_descendant_with_table : +(* [Fonc] display_descendant_with_table : config -> base -> int -> person -> unit *) -(** [Description] : Affiche sous la forme d'un tableau la descendance +(** [Description] : Affiche sous la forme d'un tableau la descendance d'une personne. [Args] : - conf : configuration de la base @@ -1107,17 +1107,17 @@ (* est vide, on les calcul par rapport Ă  refl) *) let rec loop lev nb_col first refl l = match l with - [ [] -> + [ [] -> if lev < max_lev then - let nl = build_desc conf base refl in + let nl = build_desc conf base refl in loop (lev + 1) nb_col True nl nl else () - | [(p, lab) :: q] -> + | [(p, lab) :: q] -> do { - if first && lev > 0 && p_getenv conf.env "gen" = Some "on" then + if first && lev > 0 && p_getenv conf.env "gen" = Some "on" then tag "tr" begin tag "th" "align=\"left\" colspan=\"%d\"" nb_col begin - Wserver.wprint "%s %d" + Wserver.wprint "%s %d" (capitale (transl_nth conf "generation/generations" 0)) lev; end; end @@ -1129,7 +1129,7 @@ in do { header conf (descendants_title conf base p); - tag "p" begin + tag "p" begin Wserver.wprint "%s." (capitale (text_to conf max_lev)); end; tag "table" "class=descends_table" begin @@ -1138,10 +1138,10 @@ let nb_col = print_desc_table_header conf base in loop 0 nb_col True [(p, "")] [(p, "")]; end; - tag "p" begin - Wserver.wprint "%s: %d %s" - (capitale (transl conf "total")) - nb_pers.val + tag "p" begin + Wserver.wprint "%s: %d %s" + (capitale (transl conf "total")) + nb_pers.val (transl_nth conf "person/persons" 1); end; trailer conf @@ -1289,7 +1289,7 @@ let td = match po with [ Some (p, auth) -> - let ncol = + let ncol = if v > 1 then nb_column 0 (v - 1) p else Array.length (get_family p) in @@ -1327,7 +1327,7 @@ in let td = let fam = foi base ifam in - let ncol = + let ncol = if v > 1 then fam_nb_column 0 (v - 1) fam else 1 in @@ -1402,7 +1402,7 @@ in let tdal = let tdl = List.fold_left (spouses_txt v) [] gen in - [Array.of_list (List.rev tdl) :: tdal] + [Array.of_list (List.rev tdl) :: tdal] in if v > 1 then loop tdal gen (next_gen gen) (v - 1) @@ -1469,7 +1469,7 @@ if j = Array.length (get_children des) then loop_fam cnt_chil (i + 1) else do { - loop_ind (lev + 1) + loop_ind (lev + 1) (if num_aboville then lab ^ string_of_int cnt_chil ^ "." else lab ^ " ") (pget conf base (get_children des).(j)); diff -Nru geneweb-6.08dfsg/src/diff.ml geneweb-6.08+git20160228+dfsg/src/diff.ml --- geneweb-6.08dfsg/src/diff.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/diff.ml 2016-02-28 10:10:47.000000000 +0000 @@ -131,7 +131,7 @@ try b.(i) := Hashtbl.find htb e with [ Not_found -> Hashtbl.add htb e e ]) b; - let ai = Array.create n 0 in + let ai = Array.make n 0 in let k = loop 0 0 where rec loop i k = if i = n then k diff -Nru geneweb-6.08dfsg/src/dutil.ml geneweb-6.08+git20160228+dfsg/src/dutil.ml --- geneweb-6.08dfsg/src/dutil.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/dutil.ml 2016-02-28 10:10:47.000000000 +0000 @@ -55,7 +55,7 @@ ; value check_magic = - let b = String.create (String.length magic_gwb) in + let b = Bytes.create (String.length magic_gwb) in fun ic -> do { really_input ic b 0 (String.length b); diff -Nru geneweb-6.08dfsg/src/forum.ml geneweb-6.08+git20160228+dfsg/src/forum.ml --- geneweb-6.08dfsg/src/forum.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/forum.ml 2016-02-28 10:10:47.000000000 +0000 @@ -887,7 +887,7 @@ let len = String.length moderator in if String.length conf.user < len - 1 then conf.user else String.sub conf.user 0 (len - 1) - in + in MF.patch fname pos (sprintf "Moderator: /%s" m); True } @@ -969,7 +969,7 @@ match access with [ "publ" -> "priv" | _ -> "publ" ] - in + in MF.patch fname pos (sprintf "Access: %s" new_access); True } diff -Nru geneweb-6.08dfsg/src/fpla.ml geneweb-6.08+git20160228+dfsg/src/fpla.ml --- geneweb-6.08dfsg/src/fpla.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/fpla.ml 2016-02-28 10:10:47.000000000 +0000 @@ -8,7 +8,7 @@ value make_table base = let _ = load_ascends_array base in let _ = load_couples_array base in - let fpla = Array.create (nb_of_persons base) None in + let fpla = Array.make (nb_of_persons base) None in let cnt = ref (nb_of_persons base) in do { while cnt.val > 0 do { diff -Nru geneweb-6.08dfsg/src/gutil.ml geneweb-6.08+git20160228+dfsg/src/gutil.ml --- geneweb-6.08dfsg/src/gutil.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/gutil.ml 2016-02-28 10:10:47.000000000 +0000 @@ -58,24 +58,27 @@ else Some (int_of_string (String.sub s start (i - start)), i) ] ; -value split_key s = - loop 0 where rec loop i = +value split_key s i = + loop i where rec loop i = if i = String.length s then None else if s.[i] = '.' then match find_num s (i + 1) with [ Some (occ, j) -> let first_name = String.sub s 0 i in let surname = String.sub s j (String.length s - j) in - Some (first_name, occ, surname) + Some (i, first_name, occ, surname) | None -> loop (i + 1) ] else loop (i + 1) ; value person_of_string_key base s = - match split_key s with - [ Some (first_name, occ, surname) -> - person_of_key base first_name surname occ - | None -> None ] + loop 0 where rec loop i = + match split_key s i with + [ Some (i, first_name, occ, surname) -> + match person_of_key base first_name surname occ with + [ Some ip -> Some ip + | None -> loop (i + 1) ] + | None -> None ] ; value person_not_a_key_find_all base s = @@ -162,7 +165,7 @@ ; value alphabetic_value = - let tab = Array.create 256 0 in + let tab = Array.make 256 0 in do { for i = 0 to 255 do { tab.(i) := 10 * i }; tab.(Char.code 'ŕ') := tab.(Char.code 'a') + 1; diff -Nru geneweb-6.08dfsg/src/gwc2.ml geneweb-6.08+git20160228+dfsg/src/gwc2.ml --- geneweb-6.08dfsg/src/gwc2.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/gwc2.ml 2016-02-28 10:10:47.000000000 +0000 @@ -17,7 +17,7 @@ [Rem] : Non exportĂ© en clair hors de ce module. *) (* ******************************************************************** *) value check_magic = - let b = String.create (String.length magic_gwo) in + let b = Bytes.create (String.length magic_gwo) in fun fname ic -> do { really_input ic b 0 (String.length b); @@ -126,7 +126,7 @@ ("-mem", Arg.Unit (fun () -> ()), " (obsolete option)"); ("-nolock", Arg.Set Lock.no_lock_flag, " do not lock database."); ("-nofail", Arg.Set Gwcomp.no_fail, " no failure in case of error."); - ("-nopicture", Arg.Set Gwcomp.no_picture, " do not create associative pictures"); + ("-nopicture", Arg.Set Gwcomp.no_picture, " do not create associative pictures"); ("-q", Arg.Clear Mutil.verbose, " no verbose"); ("-v", Arg.Set Mutil.verbose, " verbose")] ; @@ -153,7 +153,7 @@ (* ******************************************************************** *) (* [Fonc] main : unit -> unit *) -(** [Description] : Fonction principale de crĂ©ation d'une base au +(** [Description] : Fonction principale de crĂ©ation d'une base au format gwb2. [Args] : NĂ©ant. [Retour] : NĂ©ant. diff -Nru geneweb-6.08dfsg/src/gwc.ml geneweb-6.08+git20160228+dfsg/src/gwc.ml --- geneweb-6.08dfsg/src/gwc.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/gwc.ml 2016-02-28 10:10:47.000000000 +0000 @@ -6,7 +6,7 @@ open Printf; value check_magic = - let b = String.create (String.length magic_gwo) in + let b = Bytes.create (String.length magic_gwo) in fun fname ic -> do { really_input ic b 0 (String.length b); @@ -107,7 +107,7 @@ ("-mem", Arg.Set Outbase.save_mem, " Save memory, but slower"); ("-nolock", Arg.Set Lock.no_lock_flag, " do not lock database."); ("-nofail", Arg.Set Gwcomp.no_fail, " no failure in case of error."); - ("-nopicture", Arg.Set Gwcomp.no_picture, " do not create associative pictures"); + ("-nopicture", Arg.Set Gwcomp.no_picture, " do not create associative pictures"); ("-q", Arg.Clear Mutil.verbose, " no verbose"); ("-v", Arg.Set Mutil.verbose, " verbose")] ; diff -Nru geneweb-6.08dfsg/src/gwcomp.ml geneweb-6.08+git20160228+dfsg/src/gwcomp.ml --- geneweb-6.08dfsg/src/gwcomp.ml 2014-09-04 09:34:14.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/gwcomp.ml 2016-02-28 10:10:47.000000000 +0000 @@ -31,7 +31,7 @@ in let rec loop_copy t i j = if i >= i2 then t - else if i = i2 - 1 && s.[i] <> '_' then do { t.[j] := s.[i]; t } + else if i = i2 - 1 && s.[i] <> '_' then do { Bytes.set t j s.[i]; t } else do { let (c, i) = match s.[i] with @@ -39,11 +39,11 @@ | '\\' -> (s.[i + 1], i + 1) | x -> (x, i) ] in - t.[j] := c; + Bytes.set t j c; loop_copy t (succ i) (succ j) } in - loop_copy (String.create len) i1 0 + loop_copy (Bytes.create len) i1 0 ; value fields str = diff -Nru geneweb-6.08dfsg/src/gwd.ml geneweb-6.08+git20160228+dfsg/src/gwd.ml --- geneweb-6.08dfsg/src/gwd.ml 2014-08-27 13:47:07.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/gwd.ml 2016-02-28 10:10:47.000000000 +0000 @@ -434,7 +434,7 @@ ; value nonce_private_key = - Lazy.lazy_from_fun + Lazy.from_fun (fun () -> let cnt_dir = Filename.concat Util.cnt_dir.val "cnt" in let fname = Filename.concat cnt_dir "gwd_private.txt" in @@ -728,7 +728,7 @@ Wserver.wprint "

    Internal message: %s

    \n" msg; Wserver.wprint "\n"; - } + } ; value refresh_url cgi request s i = @@ -1205,8 +1205,8 @@ [ Not_found -> default_lang.val ] in let lexicon = input_lexicon (if lang = "" then default_lang else lang) in - List.iter - (fun fname -> + List.iter + (fun fname -> add_lexicon fname (if lang = "" then default_lang else lang) lexicon) lexicon_list.val; (* A l'initialisation de la config, il n'y a pas de sosa_ref. *) @@ -1314,8 +1314,8 @@ (if lang = "" then [] else [("lang", lang)]) @ (if from = "" then [] else [("opt", from)]); base_env = base_env; - allowed_titles = Lazy.lazy_from_fun (allowed_titles env base_env); - denied_titles = Lazy.lazy_from_fun (denied_titles env base_env); + allowed_titles = Lazy.from_fun (allowed_titles env base_env); + denied_titles = Lazy.from_fun (denied_titles env base_env); request = request; lexicon = lexicon; xhs = match p_getenv base_env "doctype" with @@ -1562,13 +1562,13 @@ (* et que le cache du navigateur puisse prendre le relais. *) type misc_fname = [ Css of string - | Js of string + | Js of string | Other of string ] ; value content_misc cgi len misc_fname = do { if not cgi then Wserver.http "" else (); - let (fname, t) = + let (fname, t) = match misc_fname with [ Css fname -> (fname, "text/css") | Js fname -> (fname, "text/javascript") @@ -1588,11 +1588,11 @@ value print_misc_file cgi misc_fname = match misc_fname with [ Css fname | Js fname -> - match + match try Some (Secure.open_in_bin fname) with [ Sys_error _ -> None ] with [ Some ic -> - let buf = String.create 1024 in + let buf = Bytes.create 1024 in let len = in_channel_length ic in do { content_misc cgi len misc_fname; @@ -1846,7 +1846,7 @@ value read_input len = if len >= 0 then do { - let buff = String.create len in really_input stdin buff 0 len; buff + let buff = Bytes.create len in really_input stdin buff 0 len; buff } else do { let buff = ref "" in @@ -1911,13 +1911,13 @@ ; value slashify s = - let s1 = String.copy s in + let s1 = Bytes.copy s in do { for i = 0 to String.length s - 1 do { - s1.[i] := - match s.[i] with - [ '\\' -> '/' - | x -> x ] + Bytes.set s1 i + (match s.[i] with + [ '\\' -> '/' + | x -> x ]) }; s1 } diff -Nru geneweb-6.08dfsg/src/gwu.ml geneweb-6.08+git20160228+dfsg/src/gwu.ml --- geneweb-6.08dfsg/src/gwu.ml 2014-09-04 09:34:14.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/gwu.ml 2016-02-28 10:10:47.000000000 +0000 @@ -40,7 +40,7 @@ value spaces_to_underscore s = do { for i = 0 to String.length s - 1 do { - if s.[i] = ' ' then s.[i] := '_' else () + if s.[i] = ' ' then Bytes.set s i '_' else () }; s } @@ -55,13 +55,13 @@ ; value no_newlines s = - let s' = String.create (String.length s) in + let s' = Bytes.create (String.length s) in do { for i = 0 to String.length s - 1 do { - s'.[i] := - match s.[i] with - [ '\n' | '\r' -> ' ' - | _ -> s.[i] ] + Bytes.set s' i + (match s.[i] with + [ '\n' | '\r' -> ' ' + | _ -> s.[i] ]) }; s' } @@ -1108,7 +1108,7 @@ match List.rev separate_list.val with [ [] -> fun _ -> False | list -> - let mark = Array.create (nb_of_families base) NotScanned in + let mark = Array.make (nb_of_families base) NotScanned in do { List.iter (mark_someone base mark) list; add_small_connex_components base mark; @@ -1177,12 +1177,12 @@ } ] in let gen = - let mark = Array.create (nb_of_persons base) False in + let mark = Array.make (nb_of_persons base) False in let (per_sel, fam_sel) = Select.functions base anc desc surnames.val ancdesc no_spouses_parents.val censor.val with_siblings.val maxlev.val in - let fam_done = Array.create (nb_of_families base) False in + let fam_done = Array.make (nb_of_families base) False in {mark = mark; per_sel = per_sel; fam_sel = fam_sel; fam_done = fam_done; notes_pl_p = []; ext_files = []; notes_alias = notes_aliases in_dir} diff -Nru geneweb-6.08dfsg/src/history.ml geneweb-6.08+git20160228+dfsg/src/history.ml --- geneweb-6.08dfsg/src/history.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/history.ml 2016-02-28 10:10:47.000000000 +0000 @@ -43,10 +43,10 @@ (* ********************************************************************** *) -(* [Fonc] diff_visibility : +(* [Fonc] diff_visibility : config -> base -> gen_person -> gen_person -> string array *) -(** [Description] : Si la visibilitĂ© de la personne a changĂ© (entre - l'ancienne et la nouvelle), alors on revoie un tableau +(** [Description] : Si la visibilitĂ© de la personne a changĂ© (entre + l'ancienne et la nouvelle), alors on revoie un tableau avec la nouvelle visibilitĂ©. [Args] : - conf : configuration de la base @@ -67,7 +67,7 @@ let tmp_conf = {(conf) with wizard = False; friend = False} in let old_visibility = Util.authorized_age tmp_conf base o_p in let new_visibility = Util.authorized_age tmp_conf base n_p in - if old_visibility <> new_visibility then + if old_visibility <> new_visibility then [| "VISIBLE"; k; string_of_bool new_visibility |] else [| |] ; @@ -104,10 +104,10 @@ (* ********************************************************************** *) -(* [Fonc] diff_person : +(* [Fonc] diff_person : config -> base -> gen_person -> gen_person -> string array *) -(** [Description] : Fonction qui ajoutĂ© des paramètres passĂ©s dans la - ligne de commande de notify_change. Elle permet de +(** [Description] : Fonction qui ajoutĂ© des paramètres passĂ©s dans la + ligne de commande de notify_change. Elle permet de savoir quelle genre de modifications ont Ă©tĂ© faites. [Args] : - conf : configuration de la base @@ -120,25 +120,25 @@ value diff_person conf base changed = match changed with [ U_Add_person p | U_Delete_person p -> [| |] - | U_Modify_person o n -> + | U_Modify_person o n -> Array.append (diff_key (Diff_person o n)) (diff_visibility conf base o n) - | U_Merge_person p1 p2 p -> - let args_p1 = - Array.append + | U_Merge_person p1 p2 p -> + let args_p1 = + Array.append (diff_key (Diff_person p1 p)) (diff_visibility conf base p1 p) in - let args_p2 = - Array.append + let args_p2 = + Array.append (diff_key (Diff_person p2 p)) (diff_visibility conf base p2 p) in Array.append args_p1 args_p2 - | U_Send_image _ | U_Delete_image _ - | U_Add_family _ _ | U_Modify_family _ _ _ | U_Delete_family _ _ + | U_Send_image _ | U_Delete_image _ + | U_Add_family _ _ | U_Modify_family _ _ _ | U_Delete_family _ _ | U_Invert_family _ _ | U_Merge_family _ _ _ _ | U_Add_parent _ _ -> [| |] - | U_Change_children_name _ l -> + | U_Change_children_name _ l -> List.fold_left (fun accu ((ofn, osn, oocc, _), (fn, sn, occ, _)) -> - Array.append + Array.append accu (diff_key (Diff_string (ofn, osn, oocc) (fn, sn, occ)))) [| |] l | U_Multi _ @@ -165,10 +165,10 @@ let base_args = match changed with [ U_Add_person p | U_Modify_person _ p | U_Delete_person p - | U_Merge_person _ _ p | U_Send_image p | U_Delete_image p - | U_Add_family p _ | U_Modify_family p _ _ | U_Delete_family p _ - | U_Invert_family p _ | U_Merge_family p _ _ _ | U_Add_parent p _ - | U_Kill_ancestors p | U_Change_children_name p _ | U_Multi p -> + | U_Merge_person _ _ p | U_Send_image p | U_Delete_image p + | U_Add_family p _ | U_Modify_family p _ _ | U_Delete_family p _ + | U_Invert_family p _ | U_Merge_family p _ _ _ | U_Add_parent p _ + | U_Kill_ancestors p | U_Change_children_name p _ | U_Multi p -> let key = slash_name_of_key p.first_name p.surname p.occ in [| key; string_of_int (Adef.int_of_iper (p.key_index)) |] | U_Notes (Some num) file -> [| file; string_of_int num |] @@ -193,8 +193,8 @@ (* ************************************************************************ *) (* [Fonc] gen_record : config -> base -> base_changed -> string -> unit *) (** [Description] : Enregistre dans le fichier historique si la variable - "hitory" du fichier gwf est valorisĂ©e Ă  "yes". Le fait qu'on ait des - gen_person, nous permet de pouvoir faire un diff entre avant et après + "hitory" du fichier gwf est valorisĂ©e Ă  "yes". Le fait qu'on ait des + gen_person, nous permet de pouvoir faire un diff entre avant et après la modification d'une personne. [Args] : - conf : configuration de la base @@ -211,10 +211,10 @@ let item = match changed with [ U_Add_person p | U_Modify_person _ p | U_Delete_person p - | U_Merge_person _ _ p | U_Send_image p | U_Delete_image p - | U_Add_family p _ | U_Modify_family p _ _ | U_Delete_family p _ - | U_Invert_family p _ | U_Merge_family p _ _ _ | U_Add_parent p _ - | U_Kill_ancestors p | U_Change_children_name p _ | U_Multi p -> + | U_Merge_person _ _ p | U_Send_image p | U_Delete_image p + | U_Add_family p _ | U_Modify_family p _ _ | U_Delete_family p _ + | U_Invert_family p _ | U_Merge_family p _ _ _ | U_Add_parent p _ + | U_Kill_ancestors p | U_Change_children_name p _ | U_Multi p -> p.first_name ^ "." ^ string_of_int p.occ ^ " " ^ p.surname | U_Notes (Some num) file -> let s = string_of_int num in @@ -250,7 +250,7 @@ (* ************************************************************************ *) (* [Fonc] record : config -> base -> base_changed -> string -> unit *) -(** [Description] : Suite Ă  la mise Ă  jour de la base, on rĂ©alise les +(** [Description] : Suite Ă  la mise Ă  jour de la base, on rĂ©alise les traitements suivant : - mise Ă  jour (si nĂ©cessaire) du fichier gwf pour le sosa_ref - mise Ă  jour du fichier historique @@ -263,15 +263,15 @@ [Retour] : NĂ©ant [Rem] : Non exportĂ© en clair hors de ce module. *) (* ************************************************************************ *) -value record conf base changed action = +value record conf base changed action = do { (* Mise Ă  jour du fichier gwf si le sosa_ref a changĂ©. *) match changed with - [ U_Modify_person _ p -> + [ U_Modify_person _ p -> let (fn, sn, occ, ip) = (p.first_name, p.surname, p.occ, p.key_index) in update_gwf_sosa conf base (ip, (fn, sn, occ)) | U_Merge_person p1 _ p -> do { - let (fn, sn, occ, ip) = + let (fn, sn, occ, ip) = (p1.first_name, p1.surname, p1.occ, p1.key_index) in update_gwf_sosa conf base (ip, (fn, sn, occ)); @@ -281,9 +281,9 @@ update_gwf_sosa conf base (ip, (fn, sn, occ)); } | U_Change_children_name _ l -> List.iter - (fun (_, (fn, sn, occ, ip)) -> + (fun (_, (fn, sn, occ, ip)) -> update_gwf_sosa conf base (ip, (fn, sn, occ))) - l + l | _ -> () ]; (* Mise Ă  jour du fichier historique et appel de notify_change. *) gen_record conf base changed action @@ -294,7 +294,7 @@ (* ************************************************************************ *) (* [Fonc] notify : config -> base -> string -> unit *) (** [Description] : Appel explicite de notify_change suite Ă  une modification - de masse de la base (typiquement, le dico des lieux). + de masse de la base (typiquement, le dico des lieux). On Ă©vite comme ça la crĂ©ation de 5000 processus. [Args] : - conf : configuration de la base @@ -305,8 +305,8 @@ (* ************************************************************************ *) value notify conf base action = let empty_person = Gwdb.empty_person base (Adef.iper_of_int (-1)) in - let empty_person = - Util.string_gen_person base (gen_person_of_person empty_person) + let empty_person = + Util.string_gen_person base (gen_person_of_person empty_person) in notify_change conf base (U_Multi empty_person) action ; @@ -317,8 +317,8 @@ exception Begin_of_file; value buff_get_rev len = - let s = String.create len in - do { for i = 0 to len - 1 do { s.[i] := Buff.buff.val.[len - 1 - i] }; s } + let s = Bytes.create len in + do { for i = 0 to len - 1 do { Bytes.set s i Buff.buff.val.[len - 1 - i] }; s } ; value rev_input_char ic (rbuff, rpos) pos = @@ -328,7 +328,7 @@ let len = if rbuff.val = "" then 1024 else 2 * String.length rbuff.val in - rbuff.val := String.create len + rbuff.val := Bytes.create len else (); let ppos = max (pos - String.length rbuff.val) 0 in seek_in ic ppos; @@ -404,7 +404,7 @@ value rec eval_var conf base env xx loc = fun - [ ["count"] -> + [ ["count"] -> match get_env "count" env with [ Vcnt c -> VVstring (string_of_int c.val) | _ -> VVstring "" ] diff -Nru geneweb-6.08dfsg/src/hutil.ml geneweb-6.08+git20160228+dfsg/src/hutil.ml --- geneweb-6.08dfsg/src/hutil.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/hutil.ml 2016-02-28 10:10:47.000000000 +0000 @@ -183,9 +183,9 @@ Templ.template_file.val := v; }; -value interp_no_header conf base fname ifun env ep = +value interp_no_header conf base fname ifun env ep = gen_interp False conf base fname ifun env ep; -value interp conf base fname ifun env ep = +value interp conf base fname ifun env ep = gen_interp True conf base fname ifun env ep; diff -Nru geneweb-6.08dfsg/src/image.ml geneweb-6.08+git20160228+dfsg/src/image.ml --- geneweb-6.08dfsg/src/image.ml 2014-08-26 08:33:46.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/image.ml 2016-02-28 10:10:47.000000000 +0000 @@ -49,7 +49,7 @@ value print_image_type cgi fname itype = match try Some (Secure.open_in_bin fname) with [ Sys_error _ -> None ] with [ Some ic -> - let buf = String.create 1024 in + let buf = Bytes.create 1024 in let len = in_channel_length ic in do { content cgi itype len fname; diff -Nru geneweb-6.08dfsg/src/iochan.ml geneweb-6.08+git20160228+dfsg/src/iochan.ml --- geneweb-6.08dfsg/src/iochan.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/iochan.ml 2016-02-28 10:10:47.000000000 +0000 @@ -52,17 +52,17 @@ value input_value_no_header = Iovalue.gen_input iochan_in_funs; value output_byte ioc w = do { - ib.[0] := Char.chr (w land 0xFF); + Bytes.set ib 0 (Char.chr (w land 0xFF)); let len = Unix.write ioc.iofd ib 0 1 in if len <> 1 then failwith "iochan_output_byte" else (); ioc.iopos := ioc.iopos + 1; }; value output_binary_int ioc w = do { - ib.[0] := Char.chr (w lsr 24 land 0xFF); - ib.[1] := Char.chr (w lsr 16 land 0xFF); - ib.[2] := Char.chr (w lsr 8 land 0xFF); - ib.[3] := Char.chr (w land 0xFF); + Bytes.set ib 0 (Char.chr (w lsr 24 land 0xFF)); + Bytes.set ib 1 (Char.chr (w lsr 16 land 0xFF)); + Bytes.set ib 2 (Char.chr (w lsr 8 land 0xFF)); + Bytes.set ib 3 (Char.chr (w land 0xFF)); let len = Unix.write ioc.iofd ib 0 4 in if len <> 4 then failwith "iochan_output_binary_int" else (); ioc.iopos := ioc.iopos + 4; diff -Nru geneweb-6.08dfsg/src/iovalue.ml geneweb-6.08+git20160228+dfsg/src/iovalue.ml --- geneweb-6.08dfsg/src/iovalue.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/iovalue.ml 2016-02-28 10:10:47.000000000 +0000 @@ -34,7 +34,7 @@ else Obj.magic (code land 0x3f) else if code >= <> then let len = code land 0x1F in - let s = String.create len in + let s = Bytes.create len in do { ifuns.input ic s 0 len; Obj.magic s } else match code with @@ -58,16 +58,16 @@ else failwith "input bad code block 64" | <> -> let len = ifuns.input_byte ic in - let s = String.create len in + let s = Bytes.create len in do { ifuns.input ic s 0 len; Obj.magic s } | <> -> let len = ifuns.input_binary_int ic in - let s = String.create len in + let s = Bytes.create len in do { ifuns.input ic s 0 len; Obj.magic s } | code -> failwith (Printf.sprintf "input bad code 0x%x" code) ] and input_block ifuns ic tag size = let v = - if tag = 0 then Obj.magic (Array.create size (Obj.magic 0)) + if tag = 0 then Obj.magic (Array.make size (Obj.magic 0)) else Obj.new_block tag size in do { @@ -203,17 +203,17 @@ (* Digest *) -value dbuf = ref (String.create 256); +value dbuf = ref (Bytes.create 256); value dlen = ref 0; value dput_char c = do { if dlen.val = String.length dbuf.val then do { let nlen = 2 * dlen.val in - let ndbuf = String.create nlen in + let ndbuf = Bytes.create nlen in String.blit dbuf.val 0 ndbuf 0 dlen.val; dbuf.val := ndbuf; } else (); - dbuf.val.[dlen.val] := c; + Bytes.set dbuf.val dlen.val c; incr dlen; } ; @@ -236,11 +236,11 @@ ; value string_code s = - let r = String.create (String.length s * 2) in + let r = Bytes.create (String.length s * 2) in do { for i = 0 to String.length s - 1 do { - r.[2*i] := hexchar (Char.code s.[i] / 16); - r.[2*i+1] := hexchar (Char.code s.[i] mod 16); + Bytes.set r (2*i) (hexchar (Char.code s.[i] / 16)); + Bytes.set r (2*i+1) (hexchar (Char.code s.[i] mod 16)); }; r } diff -Nru geneweb-6.08dfsg/src/mergeDup.ml geneweb-6.08+git20160228+dfsg/src/mergeDup.ml --- geneweb-6.08dfsg/src/mergeDup.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/mergeDup.ml 2016-02-28 10:10:47.000000000 +0000 @@ -56,6 +56,7 @@ in Wserver.wrap_string.val := Util.xml_pretty_print; Perso.interp_notempl_with_menu title "perso_header" conf base p; + tag "h2" begin title False; end; Hutil.print_link_to_welcome conf True; tag "ul" begin tag "li" begin print_link conf base (poi base ip1); end; @@ -91,6 +92,7 @@ in Wserver.wrap_string.val := Util.xml_pretty_print; Perso.interp_notempl_with_menu title "perso_header" conf base p; + tag "h2" begin title False; end; Hutil.print_link_to_welcome conf True; let (ip1, ip2) = let cpl = foi base ifam1 in @@ -145,7 +147,7 @@ print_cand_ind conf base (ip, p) excl ip1 ip2 | Perso.DupFam ifam1 ifam2 -> print_cand_fam conf base (ip, p) excl ifam1 ifam2 - | Perso.NoDup -> + | Perso.NoDup -> print_no_candidate conf base (ip, p) ] | None -> incorrect_request conf ] diff -Nru geneweb-6.08dfsg/src/mergeInd.ml geneweb-6.08+git20160228+dfsg/src/mergeInd.ml --- geneweb-6.08dfsg/src/mergeInd.ml 2014-09-04 09:34:14.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/mergeInd.ml 2016-02-28 10:10:47.000000000 +0000 @@ -413,7 +413,7 @@ ; value is_ancestor base ip1 ip2 = - let visited = Array.create (nb_of_persons base) False in + let visited = Array.make (nb_of_persons base) False in let rec loop ip = if visited.(Adef.int_of_iper ip) then False else if ip = ip1 then True diff -Nru geneweb-6.08dfsg/src/mergeIndOk.ml geneweb-6.08+git20160228+dfsg/src/mergeIndOk.ml --- geneweb-6.08dfsg/src/mergeIndOk.ml 2014-09-04 09:34:14.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/mergeIndOk.ml 2016-02-28 10:10:47.000000000 +0000 @@ -82,8 +82,8 @@ baptism_src = merge_strings base (get_baptism_src p1) ", " (get_baptism_src p2); death = field "death" get_death - (fun x -> - match x with + (fun x -> + match x with [ DontKnowIfDead | OfCourseDead -> True | _ -> False]); death_place = @@ -275,11 +275,11 @@ let get_gen_person i = match p_getint o_conf.env i with [ Some i -> - Util.string_gen_person + Util.string_gen_person base (gen_person_of_person (poi base (Adef.iper_of_int i))) - | None -> - Util.string_gen_person + | None -> + Util.string_gen_person base (gen_person_of_person (poi base (Adef.iper_of_int (-1)))) ] in diff -Nru geneweb-6.08dfsg/src/merge.ml geneweb-6.08+git20160228+dfsg/src/merge.ml --- geneweb-6.08dfsg/src/merge.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/merge.ml 2016-02-28 10:10:47.000000000 +0000 @@ -32,6 +32,7 @@ in do { Perso.interp_notempl_with_menu title "perso_header" conf base p; + tag "h2" begin title False; end; Wserver.wprint "\n"; tag "form" "method=\"get\" action=\"%s\"" conf.command begin tag "p" begin diff -Nru geneweb-6.08dfsg/src/mostdesc.ml geneweb-6.08+git20160228+dfsg/src/mostdesc.ml --- geneweb-6.08dfsg/src/mostdesc.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/mostdesc.ml 2016-02-28 10:10:47.000000000 +0000 @@ -68,8 +68,8 @@ *) let _ = load_descends_array base in let _ = load_unions_array base in - let tab = Array.create (nb_of_persons base) Num.zero in - let entered = Array.create (nb_of_persons base) False in + let tab = Array.make (nb_of_persons base) Num.zero in + let entered = Array.make (nb_of_persons base) False in let q = ref Pq.empty in do { q.val := Pq.add (get_key_index p) q.val; diff -Nru geneweb-6.08dfsg/src/mutil.ml geneweb-6.08+git20160228+dfsg/src/mutil.ml --- geneweb-6.08dfsg/src/mutil.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/mutil.ml 2016-02-28 10:10:47.000000000 +0000 @@ -264,10 +264,10 @@ value tr c1 c2 s = match rindex s c1 with [ Some _ -> - let s' = String.create (String.length s) in + let s' = Bytes.create (String.length s) in do { for i = 0 to String.length s - 1 do { - s'.[i] := if s.[i] = c1 then c2 else s.[i] + Bytes.set s' i (if s.[i] = c1 then c2 else s.[i]) }; s' } @@ -283,7 +283,7 @@ else if Char.code c < 0xC0 then let len = Buff.store len (Char.chr 0xC2) in loop (i + 1) (Buff.store len c) - else + else let len = Buff.store len (Char.chr 0xC3) in loop (i + 1) (Buff.store len (Char.chr (Char.code c - 0x40))) ; diff -Nru geneweb-6.08dfsg/src/name.ml geneweb-6.08+git20160228+dfsg/src/name.ml --- geneweb-6.08dfsg/src/name.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/name.ml 2016-02-28 10:10:47.000000000 +0000 @@ -72,8 +72,13 @@ | 0xBD | 0xBF -> "y" | 0xBE -> "th" | _ -> - let c = Char.lowercase (Char.chr (Char.code s.[i+1] + 0x40)) in - String.make 1 c ] + (* Si le caractčre est en dehors de la table ASCII, + alors on ignore le caratčre. Cela peut se produire + si l'entrée est mauvaise, ex: JĂ©rĂöme /FOO/ *) + try + let c = Char.lowercase (Char.chr (Char.code s.[i+1] + 0x40)) in + String.make 1 c + with Invalid_argument "Char.chr" -> "" ] | 0xC4 -> match Char.code s.[i+1] with [ 0x80 | 0x82 | 0x84 -> f "A" @@ -340,7 +345,7 @@ match Char.code s.[i+1] with [ 0x80 -> match Char.code s.[i+2] with - [ 0x99 -> " " + [ 0x99 -> " " | _ -> String.sub s i nbc ] | _ -> String.sub s i nbc] *) @@ -440,7 +445,7 @@ (* ******************************************************************** *) (* [Fonc] purge : string -> string *) (** [Description] : Supprime tous les caractčres interdits (défini par - forbidden_char) présents dans la chaine passée en + forbidden_char) présents dans la chaine passée en argument. [Args] : - s : string que l'on veut purger diff -Nru geneweb-6.08dfsg/src/notesLinks.ml geneweb-6.08+git20160228+dfsg/src/notesLinks.ml --- geneweb-6.08dfsg/src/notesLinks.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/notesLinks.ml 2016-02-28 10:10:47.000000000 +0000 @@ -146,7 +146,7 @@ match try Some (open_in_bin fname) with [ Sys_error _ -> None ] with [ Some ic -> do { - let b = String.create (String.length magic_notes_links) in + let b = Bytes.create (String.length magic_notes_links) in really_input ic b 0 (String.length b); let r = if b <> magic_notes_links then [] diff -Nru geneweb-6.08dfsg/src/notes.ml geneweb-6.08+git20160228+dfsg/src/notes.ml --- geneweb-6.08dfsg/src/notes.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/notes.ml 2016-02-28 10:10:47.000000000 +0000 @@ -72,7 +72,7 @@ Wserver.wprint "(%s)" (transl conf "linked pages"); end else () - in + in gen_print_link_to_welcome what_links_page conf True; tag "p" begin xtag "br"; diff -Nru geneweb-6.08dfsg/src/num.ml geneweb-6.08+git20160228+dfsg/src/num.ml --- geneweb-6.08dfsg/src/num.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/num.ml 2016-02-28 10:10:47.000000000 +0000 @@ -134,7 +134,7 @@ loop (i - 1) [d :: l] r in Array.of_list (normalize l) -; +; value modl x n = let r = sub x (mul0 (div x n) n) in if Array.length r = 0 then 0 else r.(0) @@ -180,12 +180,12 @@ let digits = if digits = [] then [0] else digits in let len = List.length digits in let slen = String.length sep in - let s = String.create (len + (len - 1) / 3 * slen) in + let s = Bytes.create (len + (len - 1) / 3 * slen) in let _ = List.fold_left (fun (i, j) d -> do { - s.[j] := Char.chr (code_of_digit d); + Bytes.set s j (Char.chr (code_of_digit d)); if i < len - 1 && (len - 1 - i) mod 3 = 0 then do { String.blit sep 0 s (j + 1) slen; (i + 1, j + 1 + slen) diff -Nru geneweb-6.08dfsg/src/outbase.ml geneweb-6.08+git20160228+dfsg/src/outbase.ml --- geneweb-6.08dfsg/src/outbase.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/outbase.ml 2016-02-28 10:10:47.000000000 +0000 @@ -97,7 +97,7 @@ ; value make_name_index base = - let t = Array.create table_size [| |] in + let t = Array.make table_size [| |] in let add_name key valu = let key = Name.crush (Name.abbrev key) in let i = Hashtbl.hash key mod Array.length t in @@ -148,7 +148,7 @@ ; value make_strings_of_fsname base = - let t = Array.create table_size [| |] in + let t = Array.make table_size [| |] in do { for i = 0 to base.data.persons.len - 1 do { let p = poi base (Adef.iper_of_int i) in @@ -191,12 +191,12 @@ let () = base.data.strings.load_array () in let strings_array = base.data.strings in let taba = - Array.create + Array.make (min Sys.max_array_length (prime_after (max 2 (10 * strings_array.len)))) (-1) in - let tabl = Array.create strings_array.len (-1) in + let tabl = Array.make strings_array.len (-1) in do { for i = 0 to strings_array.len - 1 do { let ia = Hashtbl.hash (base.data.strings.get i) mod Array.length taba in diff -Nru geneweb-6.08dfsg/src/perso.ml geneweb-6.08+git20160228+dfsg/src/perso.ml --- geneweb-6.08dfsg/src/perso.ml 2014-09-04 09:34:14.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/perso.ml 2016-02-28 10:10:47.000000000 +0000 @@ -197,7 +197,7 @@ try Util.create_topological_sort conf base with [ Consang.TopologicalSortError p -> print_base_loop conf base p ] in - let mark = Array.create (nb_of_persons base) False in + let mark = Array.make (nb_of_persons base) False in let rec gene_find = fun [ [] -> Left [] @@ -234,7 +234,7 @@ ; (* Male version value find_sosa_aux conf base a p = - let mark = Array.create base.data.persons.len False in + let mark = Array.make base.data.persons.len False in let rec find z ip = if ip = a.key_index then Some z else if mark.(Adef.int_of_iper ip) then None @@ -427,12 +427,12 @@ match Util.find_sosa_ref conf base with [ Some sosa_ref -> let nb_persons = nb_of_persons base in - let mark = Array.create nb_persons False in + let mark = Array.make nb_persons False in (* Tableau qui va socker au fur et Ă  mesure les ancĂŞtres du sosa_ref. *) (* Attention, on crĂ©Ă© un tableau de la longueur de la base + 1 car on *) (* commence Ă  l'indice 1 ! *) let sosa_accu = - Array.create (nb_persons + 1) (Num.zero, Adef.iper_of_int 0) + Array.make (nb_persons + 1) (Num.zero, Adef.iper_of_int 0) in let () = Array.set sosa_accu 1 (Num.one, get_key_index sosa_ref) in let rec loop i len = @@ -511,7 +511,7 @@ [ Some p_sosa -> let sosa_ref_l = let sosa_ref () = sosa_ref in - Lazy.lazy_from_fun sosa_ref + Lazy.from_fun sosa_ref in let t_sosa = init_sosa_t conf base p_sosa in match find_sosa conf base p sosa_ref_l t_sosa with @@ -553,16 +553,21 @@ in Wserver.wprint "" (commd conf) sosa_link; - Wserver.wprint "\"sosa\" " - (string_of_num (transl conf "(thousand separator)") sosa_num); + let title = + if (is_hide_names conf ref) && not (fast_auth_age conf ref) then "" + else + let direct_ancestor = + Name.strip_c (p_first_name base ref) '"' ^ " " + ^ Name.strip_c (p_surname base ref) '"' + in + Printf.sprintf + (fcapitale + (ftransl conf "direct ancestor of %s")) direct_ancestor ^ + Printf.sprintf ", Sosa: %s" + (string_of_num (transl conf "(thousand separator)") sosa_num) + in + Wserver.wprint "\"sosa\"" + (image_prefix conf) title; if conf.cancel_links || not link then () else Wserver.wprint " "; } @@ -573,7 +578,7 @@ value max_ancestor_level conf base ip max_lev = let x = ref 0 in - let mark = Array.create (nb_of_persons base) False in + let mark = Array.make (nb_of_persons base) False in let rec loop level ip = if mark.(Adef.int_of_iper ip) then () else do { @@ -627,8 +632,8 @@ in (* the table 'levt' may be not necessary, since I added 'flevt'; kept because '%max_desc_level;' is still used... *) - let levt = Array.create (nb_of_persons base) infinite in - let flevt = Array.create (nb_of_families base) infinite in + let levt = Array.make (nb_of_persons base) infinite in + let flevt = Array.make (nb_of_families base) infinite in let get = pget conf base in let ini_ip = get_key_index p in let rec fill lev = @@ -813,7 +818,7 @@ [ Some v -> v (* + 1 *) | None -> 0 ] in - let mark = Array.create (nb_of_persons base) Num.zero in + let mark = Array.make (nb_of_persons base) Num.zero in let rec get_generations level gpll gpl = let gpll = [gpl :: gpll] in if level < max_level then @@ -1113,7 +1118,7 @@ value build_surnames_list conf base v p = let ht = Hashtbl.create 701 in - let mark = Array.create (nb_of_persons base) 5 in + let mark = Array.make (nb_of_persons base) 5 in let auth = conf.wizard || conf.friend in let add_surname sosa p surn dp = let r = @@ -1196,7 +1201,7 @@ (* ************************************************************************* *) value build_list_eclair conf base v p = let ht = Hashtbl.create 701 in - let mark = Array.create (nb_of_persons base) False in + let mark = Array.make (nb_of_persons base) False in (* Fonction d'ajout dans la Hashtbl. A la clĂ© (surname, place) on associe *) (* la personne (pour l'interprĂ©tation dans le template), la possible date *) (* de dĂ©but, la possible date de fin, la liste des personnes/Ă©vènements. *) @@ -1548,6 +1553,7 @@ else "" ; value string_of_image_size = gen_string_of_img_sz max_im_wid max_im_wid; +value string_of_image_medium_size = gen_string_of_img_sz 160 120; value string_of_image_small_size = gen_string_of_img_sz 100 75; value get_sosa conf base env r p = @@ -2538,25 +2544,26 @@ [ Some ifam -> Array.length (get_children (foi base ifam)) > 1 | None -> False ] | "has_sources" -> - if (is_hide_names conf p) && not p_auth then False - else if sou base (get_psources p) <> "" then True - else if - p_auth && - (sou base (get_birth_src p) <> "" || - sou base (get_baptism_src p) <> "" || - sou base (get_death_src p) <> "" || - sou base (get_burial_src p) <> "") then - True - else - List.exists - (fun ifam -> - let fam = foi base ifam in - p_auth && sou base (get_marriage_src fam) <> "" || - sou base (get_fsources fam) <> "") - (Array.to_list (get_family p)) + p_auth && + (sou base (get_psources p) <> "" || + sou base (get_birth_src p) <> "" || + sou base (get_baptism_src p) <> "" || + sou base (get_death_src p) <> "" || + sou base (get_burial_src p) <> "" || + List.exists + (fun ifam -> + let fam = foi base ifam in + let isp = Gutil.spouse (get_key_index p) fam in + let sp = poi base isp in + (* On sait que p_auth vaut vrai. *) + let m_auth = authorized_age conf base sp in + m_auth && + (sou base (get_marriage_src fam) <> "" || + sou base (get_fsources fam) <> "")) + (Array.to_list (get_family p))) | "has_surnames_aliases" -> if not p_auth && (is_hide_names conf p) then False - else get_qualifiers p <> [] + else get_surnames_aliases p <> [] | "is_buried" -> match get_burial p with [ Buried _ -> p_auth @@ -2678,6 +2685,7 @@ | "image" -> if not p_auth then "" else sou base (get_image p) | "image_html_url" -> string_of_image_url conf base env ep True | "image_size" -> string_of_image_size conf base env ep + | "image_medium_size" -> string_of_image_medium_size conf base env ep | "image_small_size" -> string_of_image_small_size conf base env ep | "image_url" -> string_of_image_url conf base env ep False | "ind_access" -> @@ -2687,7 +2695,7 @@ | "mark_descendants" -> match get_env "desc_mark" env with [ Vdmark r -> - let tab = Array.create (nb_of_persons base) False in + let tab = Array.make (nb_of_persons base) False in let rec mark_descendants len p = let i = Adef.int_of_iper (get_key_index p) in if tab.(i) then () @@ -3219,7 +3227,7 @@ | _ -> 0 ] | _ -> raise Not_found ] in - let mark = Array.create (nb_of_persons base) Num.zero in + let mark = Array.make (nb_of_persons base) Num.zero in loop [GP_person Num.one (get_key_index p) None] 1 0 where rec loop gpl i n = if i > max_level then () else @@ -3246,7 +3254,7 @@ [ Vint n -> n | _ -> 0 ] in - let mark = Array.create (nb_of_persons base) Num.zero in + let mark = Array.make (nb_of_persons base) Num.zero in loop [GP_person Num.one (get_key_index p) None] 1 where rec loop gpl i = if i > max_level then () else @@ -3544,19 +3552,15 @@ if src = "" then srcl else insert_loop (Util.translate_eval typ) src srcl in - (* On brise la logique interne de GeneWeb en constituant les *) - (* sources de la personne sans ses informations de dĂ©cès, puis *) - (* les sources de sa famille et enfin ses informations de dĂ©cès. *) - (* Ce qui Ă©vite : naissance, baptĂŞme, dĂ©cès, mariage. *) - let srcl = [] in - let srcl = - if not (is_hide_names conf p) || p_auth then - insert - (transl_nth conf "person/persons" 0) (sou base (get_psources p)) srcl - else srcl - in let srcl = if p_auth then + (* On ajoute les source dans cet ordre : *) + (* psource, naissance, baptĂŞme, mariage, fsource, dĂ©cès, inhumation. *) + let srcl = [] in + let srcl = + insert (transl_nth conf "person/persons" 0) + (sou base (get_psources p)) srcl + in let srcl = insert (transl_nth conf "birth" 0) (sou base (get_birth_src p)) srcl in @@ -3564,29 +3568,28 @@ insert (transl_nth conf "baptism" 0) (sou base (get_baptism_src p)) srcl in - srcl - else srcl - in - let (srcl, _) = - Array.fold_left - (fun (srcl, i) ifam -> - let fam = foi base ifam in - let lab = - if Array.length (get_family p) = 1 then "" - else " " ^ string_of_int i - in - let srcl = - if p_auth then - let src_typ = transl_nth conf "marriage/marriages" 0 in - insert (src_typ ^ lab) (sou base (get_marriage_src fam)) srcl - else srcl - in - let src_typ = transl_nth conf "family/families" 0 in - (insert (src_typ ^ lab) (sou base (get_fsources fam)) srcl, i + 1)) - (srcl, 1) (get_family p) - in - let srcl = - if p_auth then + let (srcl, _) = + Array.fold_left + (fun (srcl, i) ifam -> + let fam = foi base ifam in + let isp = Gutil.spouse (get_key_index p) fam in + let sp = poi base isp in + (* On sait que p_auth vaut vrai. *) + let m_auth = authorized_age conf base sp in + if m_auth then + let lab = + if Array.length (get_family p) = 1 then "" + else " " ^ string_of_int i + in + let srcl = + let src_typ = transl_nth conf "marriage/marriages" 0 in + insert (src_typ ^ lab) (sou base (get_marriage_src fam)) srcl + in + let src_typ = transl_nth conf "family/families" 0 in + (insert (src_typ ^ lab) (sou base (get_fsources fam)) srcl, i + 1) + else (srcl, i + 1)) + (srcl, 1) (get_family p) + in let srcl = insert (transl_nth conf "death" 0) (sou base (get_death_src p)) srcl in @@ -3594,7 +3597,7 @@ insert (transl_nth conf "burial" 0) (sou base (get_burial_src p)) srcl in srcl - else srcl + else [] in (* Affiche les sources et met Ă  jour les variables "first" et "last". *) let rec loop first = @@ -3730,7 +3733,7 @@ let sosa_ref = Util.find_sosa_ref conf base in let sosa_ref_l = let sosa_ref () = sosa_ref in - Lazy.lazy_from_fun sosa_ref + Lazy.from_fun sosa_ref in let t_sosa = match sosa_ref with @@ -3743,11 +3746,11 @@ in let desc_level_table_l = let dlt () = make_desc_level_table conf base emal p in - Lazy.lazy_from_fun dlt + Lazy.from_fun dlt in let desc_level_table_l_save = let dlt () = make_desc_level_table conf base emal p in - Lazy.lazy_from_fun dlt + Lazy.from_fun dlt in let mal () = Vint (max_ancestor_level conf base (get_key_index p) emal + 1) @@ -3771,13 +3774,13 @@ ("sosa", Vsosa (ref [])); ("sosa_ref", Vsosa_ref sosa_ref_l); ("t_sosa", Vt_sosa t_sosa); - ("max_anc_level", Vlazy (Lazy.lazy_from_fun mal)); - ("max_cous_level", Vlazy (Lazy.lazy_from_fun mcl)); - ("max_desc_level", Vlazy (Lazy.lazy_from_fun mdl)); + ("max_anc_level", Vlazy (Lazy.from_fun mal)); + ("max_cous_level", Vlazy (Lazy.from_fun mcl)); + ("max_desc_level", Vlazy (Lazy.from_fun mdl)); ("desc_level_table", Vdesclevtab desc_level_table_l); ("desc_level_table_save", Vdesclevtab desc_level_table_l_save); - ("nldb", Vlazy (Lazy.lazy_from_fun nldb)); - ("all_gp", Vlazy (Lazy.lazy_from_fun all_gp))] + ("nldb", Vlazy (Lazy.from_fun nldb)); + ("all_gp", Vlazy (Lazy.from_fun all_gp))] in if menu then (* Petit calcul pour voir si le fichier est vide => on *) diff -Nru geneweb-6.08dfsg/src/perso.mli geneweb-6.08+git20160228+dfsg/src/perso.mli --- geneweb-6.08dfsg/src/perso.mli 2014-08-27 13:47:07.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/perso.mli 2016-02-28 10:10:47.000000000 +0000 @@ -7,16 +7,16 @@ value string_of_titles : config -> base -> bool -> string -> person -> string; value string_of_marriage_text : config -> base -> family -> string; value interp_templ : string -> config -> base -> person -> unit; -value interp_templ_with_menu : +value interp_templ_with_menu : (bool -> unit) -> string -> config -> base -> person -> unit; -value interp_notempl_with_menu : +value interp_notempl_with_menu : (bool -> unit) -> string -> config -> base -> person -> unit; value print : config -> base -> person -> unit; value print_ascend : config -> base -> person -> unit; value print_what_links : config -> base -> person -> unit; -value build_sosa_ht : config -> base -> unit; +value build_sosa_ht : config -> base -> unit; value get_sosa_person : config -> base -> person -> Num.t; value get_single_sosa : config -> base -> person -> Num.t; value print_sosa : config -> base -> person -> bool -> unit; diff -Nru geneweb-6.08dfsg/src/place.ml geneweb-6.08+git20160228+dfsg/src/place.ml --- geneweb-6.08dfsg/src/place.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/place.ml 2016-02-28 10:10:47.000000000 +0000 @@ -13,7 +13,7 @@ (* petit hack (pour GeneaNet) en attendant une vraie gestion des lieux *) (* transforme "[foo-bar] - boobar (baz)" en "foo-bar, boobar (baz)" *) let s = - Str.global_replace (Str.regexp "^\[\([^]]+\)\] *- *\(.*\)") "\1, \2" s + Str.global_replace (Str.regexp "^\[\([^]]+\)\] *- *\(.*\)") "\1, \2" s in let rec loop iend list i ibeg = if i = iend then @@ -173,10 +173,10 @@ snl in let snl = - List.sort - (fun (_, _, sn1) (_, _, sn2) -> Gutil.alphabetic_order sn1 sn2) + List.sort + (fun (_, _, sn1) (_, _, sn2) -> Gutil.alphabetic_order sn1 sn2) snl - in + in let snl = List.fold_right (fun (len, p, sn) -> @@ -237,7 +237,7 @@ (s, len, ip) ) list in - let list = + let list = List.sort (fun (s1, _, _) (s2, _, _) -> Gutil.alphabetic_order s1 s2) list in let list = @@ -272,8 +272,8 @@ tag "p" begin List.iter (fun (s, len, ip) -> do { - stag "a" "href=\"%sm=PS%s;k=%s\"" - (commd conf) opt (Util.code_varenv s) + stag "a" "href=\"%sm=PS%s;k=%s\"" + (commd conf) opt (Util.code_varenv s) begin Wserver.wprint "%s" s; end; @@ -298,12 +298,12 @@ match (pl1, pl2) with [ (_, []) -> 1 | ([], _) -> -1 - | ([s1 :: pl11], [s2 :: pl22]) -> + | ([s1 :: pl11], [s2 :: pl22]) -> if Gutil.alphabetic_order s1 s2 = 0 then sort_place_utf8 pl11 pl22 else Gutil.alphabetic_order s1 s2 ] in - let list = - List.sort (fun (pl1, _) (pl2, _) -> sort_place_utf8 pl1 pl2) list + let list = + List.sort (fun (pl1, _) (pl2, _) -> sort_place_utf8 pl1 pl2) list in let title _ = Wserver.wprint "%s / %s" (capitale (transl conf "place")) diff -Nru geneweb-6.08dfsg/src/pr_dep.ml geneweb-6.08+git20160228+dfsg/src/pr_dep.ml --- geneweb-6.08dfsg/src/pr_dep.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/pr_dep.ml 2016-02-28 10:10:47.000000000 +0000 @@ -44,7 +44,7 @@ | TyAli _ t1 t2 -> do { ctyp t1; ctyp t2 } | TyApp _ t1 t2 -> do { ctyp t1; ctyp t2 } | TyAny _ -> () - | TyArr _ t1 t2 -> do { ctyp t1; ctyp t2 } + | TyArr _ t1 t2 -> do { ctyp t1; ctyp t2 } | TyLab _ _ t -> ctyp t | TyLid _ _ -> () | TyMan _ t1 t2 -> do { ctyp t1; ctyp t2 } @@ -166,7 +166,7 @@ and label_expr (p, e) = do { patt p; expr e } and match_case (p, w, e) = do { patt p; vala (option expr) w; expr e; } and module_type = - fun + fun [ <:module_type< $uid:m$ . $_$ >> -> addmodule m | <:module_type< functor ($uid:_$ : $mt1$) -> $mt2$ >> -> do { module_type mt1; diff -Nru geneweb-6.08dfsg/src/q_codes.ml geneweb-6.08+git20160228+dfsg/src/q_codes.ml --- geneweb-6.08dfsg/src/q_codes.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/q_codes.ml 2016-02-28 10:10:47.000000000 +0000 @@ -2,7 +2,7 @@ (* Copyright (c) 1998-2007 INRIA *) value f _ = - fun + fun [ "PREFIX_SMALL_BLOCK" -> "0x80" | "PREFIX_SMALL_INT" -> "0x40" | "PREFIX_SMALL_STRING" -> "0x20" diff -Nru geneweb-6.08dfsg/src/relationLink.ml geneweb-6.08+git20160228+dfsg/src/relationLink.ml --- geneweb-6.08dfsg/src/relationLink.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/relationLink.ml 2016-02-28 10:10:47.000000000 +0000 @@ -56,7 +56,7 @@ (struct type t = int; value leq x y = not (tsort_leq tstab x y); end) in let default = {dmin = infinity; dmax = 0; mark = False} in - let dist = Array.create (nb_of_persons base) default in + let dist = Array.make (nb_of_persons base) default in let q = ref Pq.empty in let add_children ip = let u = pget conf base ip in @@ -219,7 +219,7 @@ let (s, d, spo) = spouse_text conf base n ip ipl in do { if in_tab && (info.bd > 0 || info.td_prop <> "") then - Wserver.wprint "
    " + Wserver.wprint "
    " info.bd info.td_prop else (); Wserver.wprint "%s\n" (someone_text conf base ip); diff -Nru geneweb-6.08dfsg/src/relation.ml geneweb-6.08+git20160228+dfsg/src/relation.ml --- geneweb-6.08dfsg/src/relation.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/relation.ml 2016-02-28 10:10:47.000000000 +0000 @@ -194,7 +194,7 @@ let hts = Dag.make_tree_hts conf base elem_txt vbar_txt invert set [] d in Dag.print_slices_menu_or_dag_page conf base page_title hts next_txt ; -end ELSE declare +end ELSE declare value old_print_relationship_dag conf base elem_txt vbar_txt path next_txt = incorrect_request conf ; @@ -234,7 +234,7 @@ ; value print_relationship_dag conf base elem_txt vbar_txt path next_txt = - if p_getenv conf.env "new" <> Some "on" then + if p_getenv conf.env "new" <> Some "on" then old_print_relationship_dag conf base elem_txt vbar_txt path next_txt else (* This new version is bugged: when displaying e.g. a relationship @@ -307,8 +307,8 @@ ; value get_shortest_path_relation conf base ip1 ip2 excl_faml = - let mark_per = Array.create (nb_of_persons base) NotVisited in - let mark_fam = Array.create (nb_of_families base) False in + let mark_per = Array.make (nb_of_persons base) NotVisited in + let mark_fam = Array.make (nb_of_families base) False in do { List.iter (fun i -> @@ -520,7 +520,7 @@ stag "a" "href=\"%s;m=R;%s\"" (commd conf) (acces conf base p1) begin Wserver.wprint "%s" - (capitale + (capitale (transl_nth conf "try another/relationship computing" 0)); end; Wserver.wprint " %s.\n" @@ -798,7 +798,7 @@ let sp2 = pp2 <> None in if x2 = 0 then if sp1 && x1 = 1 then - (parent_in_law_label conf (get_sex ini_p2) (get_sex ini_p1), + (parent_in_law_label conf (get_sex ini_p1) (get_sex ini_p2), False, sp2) else let info = ((info, x1), fun r -> r.Consang.lens1) in @@ -1025,10 +1025,10 @@ value print_solution conf base long n p1 p2 sol = let (pp1, pp2, (x1, x2, list), reltab) = sol in do { - tag "p" begin - xtag "img" "src=\"%s/%s\" alt=\"\"" + tag "p" begin + xtag "img" "src=\"%s/%s\" alt=\"\"" (Util.image_prefix conf) "picto_fleche_bleu.png"; - print_link_name conf base n p1 p2 sol; + print_link_name conf base n p1 p2 sol; end; if x1 = 0 || x2 = 0 then print_solution_ancestor conf base long p1 p2 pp1 pp2 x1 x2 list @@ -1073,8 +1073,8 @@ in if something then do { let rest = ref False in - if is_anc then - xtag "img" "src=\"%s/%s\" alt=\"\"" + if is_anc then + xtag "img" "src=\"%s/%s\" alt=\"\"" (Util.image_prefix conf) "picto_fleche_bleu.png" else Wserver.wprint "
      \n"; M.iter @@ -1164,7 +1164,7 @@ in let (p, a) = if x1 = 0 then (p2, p1) else (p1, p2) in tag "p" begin - xtag "img" "src=\"%s/%s\" alt=\"\"" + xtag "img" "src=\"%s/%s\" alt=\"\"" (Util.image_prefix conf) "picto_fleche_bleu.png"; Wserver.wprint ""; Wserver.wprint "%s" @@ -1178,7 +1178,7 @@ xtag "img" "src=\"%s/%s\" alt=\"\"" (Util.image_prefix conf) "picto_rel_asc.png"; stag "a" "href=\"%sm=A;t=D;%s;%s;l=%d\"" - (commd conf) (acces conf base p) + (commd conf) (acces conf base p) (acces_n conf base "1" a) maxlen begin Wserver.wprint "%s" (capitale (transl conf "see")); @@ -1486,7 +1486,7 @@ stag "a" "href=\"%s;m=R;%s\"" (commd conf) (acces conf base p1) begin Wserver.wprint "%s" - (capitale + (capitale (transl_nth conf "try another/relationship computing" 0)); end; Wserver.wprint " %s.\n" @@ -1611,7 +1611,7 @@ loop path pl | None -> loop path pl ] | [_] | [] -> path ] - in + in if path = [] then print_no_relationship conf base pl else let elem_txt p = diff -Nru geneweb-6.08dfsg/src/robot.ml geneweb-6.08+git20160228+dfsg/src/robot.ml --- geneweb-6.08dfsg/src/robot.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/robot.ml 2016-02-28 10:10:47.000000000 +0000 @@ -70,7 +70,7 @@ ; value input_excl = - let b = String.create (String.length magic_robot) in + let b = Bytes.create (String.length magic_robot) in fun ic -> do { really_input ic b 0 (String.length b); diff -Nru geneweb-6.08dfsg/src/searchName.ml geneweb-6.08+git20160228+dfsg/src/searchName.ml --- geneweb-6.08dfsg/src/searchName.ml 2014-08-26 13:50:27.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/searchName.ml 2016-02-28 10:10:47.000000000 +0000 @@ -44,6 +44,12 @@ ; *) +value empty_surname_or_firsntame base p = + is_empty_string (get_surname p) || is_quest_string (get_surname p) || + is_empty_string (get_first_name p) || is_quest_string (get_first_name p) || + Name.lower (sou base (get_surname p)) = "" || + Name.lower (sou base (get_first_name p)) = "" +; value person_is_misc_name conf base p k = let k = Name.strip_lower k in @@ -242,7 +248,7 @@ compact_list conf base pl ; -value search_misc_name conf base an = +value search_approx_key conf base an = let ipl = person_not_a_key_find_all base an in let (an, ipl) = if ipl = [] then @@ -260,7 +266,7 @@ if is_hidden p then l else [p :: l]) [] ipl in - let pl = select_misc_name conf base pl an in + let pl = select_approx_key conf base pl an in let pl = if not conf.wizard && not conf.friend then List.fold_right @@ -271,6 +277,13 @@ pl [] else pl in + let pl = + List.fold_right + (fun p pl -> + if empty_surname_or_firsntame base p then pl + else [p :: pl]) + pl [] + in compact_list conf base pl ; @@ -290,36 +303,7 @@ else pl) pl [] else pl - | None -> - let ipl = person_not_a_key_find_all base an in - let (an, ipl) = - if ipl = [] then - match name_with_roman_number an with - [ Some an1 -> - let ipl = person_ht_find_all base an1 in - if ipl = [] then (an, []) else (an1, ipl) - | None -> (an, ipl) ] - else (an, ipl) - in - let pl = - List.fold_left - (fun l ip -> - let p = pget conf base ip in - if is_hidden p then l else [p :: l]) - [] ipl - in - let pl = select_approx_key conf base pl an in - let pl = - if not conf.wizard && not conf.friend then - List.fold_right - (fun p pl -> - if not (is_hide_names conf p) || Util.fast_auth_age conf p - then [p :: pl] - else pl) - pl [] - else pl - in - compact_list conf base pl ] + | None -> [] ] ; value search_approx_surname conf base an = @@ -333,8 +317,9 @@ (* main *) type search_type = - [ Sosa | Key | Surname | FirstName | MiscName - | ApproxSurname | ApproxFirstName | PartialKey ] + [ Sosa | Key | Surname | FirstName | ApproxKey | + ApproxSurname | ApproxFirstName | PartialKey | + DefaultSurname ] ; value search conf base an search_order specify unknown = @@ -370,8 +355,8 @@ conf.cancel_links := False; Some.search_first_name_print conf base an }] - | [MiscName :: l] -> - let pl = search_misc_name conf base an in + | [ApproxKey :: l] -> + let pl = search_approx_key conf base an in match pl with [ [] -> loop l | [p] -> Perso.print conf base p @@ -390,7 +375,13 @@ let pl = search_partial_key conf base an in match pl with [ [] -> loop l - | pl -> specify conf base an pl ] ] + | [p] -> Perso.print conf base p + | pl -> specify conf base an pl ] + | [DefaultSurname :: l] -> + do { + conf.cancel_links := False; + Some.search_surname_print conf base unknown an + }] ; @@ -413,13 +404,15 @@ in match (real_input "p", real_input "n") with [ (Some fn, Some sn) -> - let order = [ Key; MiscName; PartialKey ] in + let order = [ Key; ApproxKey; PartialKey ] in search conf base (fn ^ " " ^ sn) order specify unknown | (Some fn, None) -> - let order = [ FirstName; ApproxFirstName ] in + let order = [ FirstName ] in search conf base fn order specify unknown | (None, Some sn) -> - let order = [ Sosa; Key; MiscName; Surname; ApproxSurname; PartialKey ] in + let order = + [ Sosa; Key; Surname; ApproxKey; PartialKey; DefaultSurname ] + in search conf base sn order specify unknown | (None, None) -> incorrect_request conf ] ; diff -Nru geneweb-6.08dfsg/src/secure.ml geneweb-6.08+git20160228+dfsg/src/secure.ml --- geneweb-6.08dfsg/src/secure.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/secure.ml 2016-02-28 10:10:47.000000000 +0000 @@ -66,7 +66,7 @@ | [] -> if Filename.is_relative fname then if List.mem Filename.parent_dir_name df then raise Exit - else () + else () else raise Exit ] } with diff -Nru geneweb-6.08dfsg/src/select.ml geneweb-6.08+git20160228+dfsg/src/select.ml --- geneweb-6.08dfsg/src/select.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/select.ml 2016-02-28 10:10:47.000000000 +0000 @@ -232,7 +232,7 @@ value select_descendants base per_tab fam_tab no_spouses_parents flag iper maxlev = - let mark = Array.create (nb_of_families base) False in + let mark = Array.make (nb_of_families base) False in let select_family ifam cpl = let i = Adef.int_of_ifam ifam in do { @@ -273,7 +273,7 @@ value select_descendants_ancestors base per_tab fam_tab no_spouses_parents ip = let new_mark = let r = ref 0 in fun () -> do { incr r; r.val } in - let tab = Array.create (nb_of_persons base) (new_mark ()) in + let tab = Array.make (nb_of_persons base) (new_mark ()) in let anc_mark = new_mark () in let anclist = loop [] ip where rec loop list ip = @@ -361,18 +361,18 @@ match (anc, desc, ancdesc) with [ (None, None, None) -> if censor <> 0 || censor = -1 then - let per_tab = Array.create (nb_of_persons base) 0 in - let fam_tab = Array.create (nb_of_families base) 0 in + let per_tab = Array.make (nb_of_persons base) 0 in + let fam_tab = Array.make (nb_of_families base) 0 in let _ = - if censor = -1 then restrict_base base per_tab fam_tab 1 + if censor = -1 then restrict_base base per_tab fam_tab 1 else censor_base base per_tab fam_tab 1 threshold in (fun i -> per_tab.(Adef.int_of_iper i) = 0, fun i -> fam_tab.(Adef.int_of_ifam i) = 0) else (fun _ -> True, fun _ -> True) | (None, None, Some iadper) -> - let per_tab = Array.create (nb_of_persons base) 0 in - let fam_tab = Array.create (nb_of_families base) 0 in + let per_tab = Array.make (nb_of_persons base) 0 in + let fam_tab = Array.make (nb_of_families base) 0 in let _ = if censor = -1 then restrict_base base per_tab fam_tab 4 else if censor <> 0 then censor_base base per_tab fam_tab 4 threshold @@ -389,8 +389,8 @@ fl < 4 && fl > 0) } | _ -> - let per_tab = Array.create (nb_of_persons base) 0 in - let fam_tab = Array.create (nb_of_families base) 0 in + let per_tab = Array.make (nb_of_persons base) 0 in + let fam_tab = Array.make (nb_of_families base) 0 in let _ = if censor = -1 then restrict_base base per_tab fam_tab 4 else if censor <> 0 then censor_base base per_tab fam_tab 4 threshold @@ -422,8 +422,8 @@ ; value select_surnames base surnames no_spouses_parents = - let per_tab = Array.create (nb_of_persons base) False in - let fam_tab = Array.create (nb_of_families base) False in + let per_tab = Array.make (nb_of_persons base) False in + let fam_tab = Array.make (nb_of_families base) False in do { List.iter (select_surname base per_tab fam_tab no_spouses_parents) surnames; diff -Nru geneweb-6.08dfsg/src/sendImage.ml geneweb-6.08+git20160228+dfsg/src/sendImage.ml --- geneweb-6.08dfsg/src/sendImage.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/sendImage.ml 2016-02-28 10:10:47.000000000 +0000 @@ -60,11 +60,11 @@ if Util.has_image conf base p then do { tag "p" begin - stag "a" "href=\"%sm=DEL_IMAGE;i=%d\"" + stag "a" "href=\"%sm=DEL_IMAGE;i=%d\"" (commd conf) (Adef.int_of_iper (get_key_index p)) begin - Wserver.wprint "%s %s" - (capitale (transl conf "delete")) + Wserver.wprint "%s %s" + (capitale (transl conf "delete")) (transl_nth conf "image/images" 0); end; end; @@ -98,6 +98,7 @@ let digest = Update.digest_person (UpdateInd.string_person_of base p) in do { Perso.interp_notempl_with_menu title "perso_header" conf base p; + tag "h2" begin title False; end; tag "form" "method=\"post\" action=\"%s\" enctype=\"multipart/form-data\"" conf.command begin @@ -328,7 +329,7 @@ move_file_to_old conf ".png" fname bfname else (); write_file (fname ^ typ) content; - let changed = + let changed = U_Send_image (Util.string_gen_person base (gen_person_of_person p)) in History.record conf base changed "si"; @@ -380,7 +381,7 @@ else if Sys.file_exists (fname ^ ".png") then move_file_to_old conf ".png" fname bfname else incorrect conf; - let changed = + let changed = U_Delete_image (Util.string_gen_person base (gen_person_of_person p)) in History.record conf base changed "di"; diff -Nru geneweb-6.08dfsg/src/some.ml geneweb-6.08+git20160228+dfsg/src/some.ml --- geneweb-6.08dfsg/src/some.ml 2014-08-26 13:50:27.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/some.ml 2016-02-28 10:10:47.000000000 +0000 @@ -918,7 +918,20 @@ (List.fold_right PerSet.add iperl1 iperl, strl)) list (PerSet.empty, []) in - PerSet.elements iperl + let iperl = PerSet.elements iperl in + let bhl = select_ancestors conf base name_inj iperl in + let bhl = + List.map + (fun bh -> + {bh_ancestor = pget conf base bh.bh_ancestor; + bh_well_named_ancestors = + List.map (pget conf base) bh.bh_well_named_ancestors}) + bhl + in + match (bhl, list) with + [ ([], _) -> [] + | (_, [(s, (strl, iperl))]) -> iperl + | _ -> [] ] ; value search_surname_print conf base not_found_fun x = diff -Nru geneweb-6.08dfsg/src/srcfile.ml geneweb-6.08+git20160228+dfsg/src/srcfile.ml --- geneweb-6.08dfsg/src/srcfile.ml 2014-08-26 13:50:53.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/srcfile.ml 2016-02-28 10:10:47.000000000 +0000 @@ -292,7 +292,7 @@ | c -> "%" ^ String.make 1 c ] ; -module Lbuff = Buff.Make (struct value buff = ref (String.create 80); end); +module Lbuff = Buff.Make (struct value buff = ref (Bytes.create 80); end); value rec lexicon_translate conf base nomin strm first_c = let (upp, s) = @@ -614,7 +614,7 @@ let env = let sosa_ref_l = let sosa_ref () = Util.find_sosa_ref conf base in - Lazy.lazy_from_fun sosa_ref + Lazy.from_fun sosa_ref in [("sosa_ref", Vsosa_ref sosa_ref_l)] in diff -Nru geneweb-6.08dfsg/src/templAst.mli geneweb-6.08+git20160228+dfsg/src/templAst.mli --- geneweb-6.08dfsg/src/templAst.mli 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/templAst.mli 2016-02-28 10:10:47.000000000 +0000 @@ -16,7 +16,7 @@ | Alet of string and list ast and list ast | Aop1 of loc and string and ast | Aop2 of loc and string and ast and ast - | Aint of loc and string + | Aint of loc and string | Aimport of string and list ast] and loc = (int * int) ; diff -Nru geneweb-6.08dfsg/src/templ.ml geneweb-6.08+git20160228+dfsg/src/templ.ml --- geneweb-6.08dfsg/src/templ.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/templ.ml 2016-02-28 10:10:47.000000000 +0000 @@ -168,7 +168,7 @@ | [: s = get_ident 0 :] ep -> Tok (bp, ep) (IDENT s) ] ; -module Buff2 = Buff.Make (struct value buff = ref (String.create 80); end); +module Buff2 = Buff.Make (struct value buff = ref (Bytes.create 80); end); value rec parse_var = parser @@ -335,7 +335,8 @@ let s = loop 0 where rec loop i = if i = String.length s then s - else if s.[i] = ' ' || s.[i] = '\t' then loop (i + 1) + else if s.[i] = ' ' || s.[i] = '\t' || s.[i] = '\r' then + loop (i + 1) else if s.[i] = '\n' then String.sub s (i + 1) (String.length s - i - 1) else s @@ -353,10 +354,14 @@ [Afor i min max (loop al) :: loop astl] | [(Atransl _ _ _ _ | Awid_hei _ as ast1); (Atext _ _ as ast2) :: astl] -> [ast1; ast2 :: loop astl] + | [Aimport file al :: astl] -> + [Aimport file (loop al) :: loop astl] | [ast :: astl] -> [ast :: loop astl] | [] -> [] ] ; +value imported_files = ref []; + value parse_templ conf strm = let rec parse_astl astl bol len end_list strm = match strm with parser bp @@ -451,22 +456,26 @@ [ Stream.Failure | Stream.Error _ -> let bp = Stream.count strm - 1 in (Atext (bp, bp + 1) "let syntax error", "") ] - in + in (List.rev [ast :: astl], tok) and parse_import astl end_list strm = let ast = - try - let file = get_ident 0 strm in - let al = - match Util.open_templ conf file with - [ Some ic -> - let strm2 = (Stream.of_channel ic) in - let (al, _) = parse_astl [] True 0 [] strm2 in - Some (Aimport file al) - | None -> None ] - in - al - with + try + let file = get_value 0 strm in + (* Protection pour ne pas inclure plusieurs fois un mĂŞme template ? *) + if not (List.mem file imported_files.val) then + let al = + match Util.open_templ conf file with + [ Some ic -> + let () = imported_files.val := [ file :: imported_files.val] in + let strm2 = (Stream.of_channel ic) in + let (al, _) = parse_astl [] False 0 [] strm2 in + do { close_in ic; Some (Aimport file al) } + | None -> None ] + in + al + else None + with [ Stream.Failure | Stream.Error _ -> None ] in let (alk, tok) = parse_astl [] False 0 end_list strm in @@ -517,7 +526,7 @@ in Aif e al1 al2 and parse_for strm = - try + try let iterator = get_ident 0 strm in match strm with parser [ [: `';' :] -> @@ -599,13 +608,13 @@ let s1 = sf s in let strm = Stream.of_string s1 in let (_, s2, sl2) = get_compound_var strm in - let (s, sl) = + let (s, sl) = if Stream.peek strm <> None then (s, sl) else (s2, sl2 @ sl) in Aforeach (loc, sf s, List.map sf sl) (List.map (substl sf) pl) (substl sf al) - | Afor i min max al -> + | Afor i min max al -> Afor (sf i) (subst sf min) (subst sf max) (substl sf al) | Adefine f xl al alk -> Adefine (sf f) (List.map sf xl) (substl sf al) (substl sf alk) @@ -692,7 +701,7 @@ sprintf "%02d:%02d:%02d" hh mm ss | _ -> raise Not_found ] and eval_simple_variable conf = - fun + fun [ "action" -> conf.command | "border" -> string_of_int conf.border | "charset" -> conf.charset @@ -766,10 +775,10 @@ (fun accu (k, v) -> List.remove_assoc k accu) conf.env (conf.henv @ conf.senv) in - List.fold_left - (fun c (k, v) -> c ^ k ^ "=" ^ v ^ ";") + List.fold_left + (fun c (k, v) -> c ^ k ^ "=" ^ v ^ ";") "" l - | "url" -> + | "url" -> let c = Util.commd conf in (* On supprime de env toutes les paires qui sont dans (henv @ senv) *) let l = @@ -777,8 +786,8 @@ (fun accu (k, v) -> List.remove_assoc k accu) conf.env (conf.henv @ conf.senv) in - List.fold_left - (fun c (k, v) -> c ^ k ^ "=" ^ v ^ ";") + List.fold_left + (fun c (k, v) -> c ^ k ^ "=" ^ v ^ ";") c l | "version" -> Version.txt | "/" -> conf.xhs @@ -915,7 +924,7 @@ [ ["cancel_links"] -> VVbool conf.cancel_links | ["cgi"] -> VVbool conf.cgi | ["false"] -> VVbool False - | ["has_referer"] -> (* deprecated since version 5.00 *) + | ["has_referer"] -> (* deprecated since version 5.00 *) VVbool (Wserver.extract_param "referer: " '\n' conf.request <> "") | ["just_friend_wizard"] -> VVbool conf.just_friend_wizard | ["friend"] -> VVbool conf.friend @@ -1111,7 +1120,7 @@ eval_predefined_apply : env 'a -> string -> list (expr_val 'b) -> string; get_vother : 'a -> option (vother 'b); set_vother : vother 'b -> 'a; - print_foreach : + print_foreach : (env 'a -> 'b -> ast -> unit) -> (env 'a -> 'b -> ast -> string) -> env 'a -> 'b -> loc -> string -> list string -> @@ -1348,9 +1357,6 @@ | None -> old_include_hed_trl conf base_opt ("." ^ name) ] ; -value import = ref 0; -value imported_files = ref []; - value rec interp_ast conf base ifun env = let m_env = ref env in let rec eval_ast env ep a = @@ -1445,21 +1451,21 @@ if eval_bool_expr conf (eval_var, eval_apply) e then alt else ale in String.concat "" (List.map eval_ast al) - and eval_for env ep iterator min max al = + and eval_for env ep iterator min max al = let rec loop env min max accu = let new_env = env in let v = eval_ast_expr_list new_env ep [min] in - let new_env = set_val ifun.set_vother iterator v new_env in + let new_env = set_val ifun.set_vother iterator v new_env in let eval_var = eval_var conf ifun new_env ep in let eval_apply = eval_apply new_env ep in let eval_ast = eval_ast new_env ep in - let int_min = - int_of_string (eval_string_expr conf (eval_var, eval_apply) min) + let int_min = + int_of_string (eval_string_expr conf (eval_var, eval_apply) min) in - let int_max = - int_of_string (eval_string_expr conf (eval_var, eval_apply) max) + let int_max = + int_of_string (eval_string_expr conf (eval_var, eval_apply) max) in - if int_min < int_max then + if int_min < int_max then let instr = (String.concat "" (List.map eval_ast al)) in let accu = accu ^ instr in loop new_env (Aop2 (0, 0) "+" min (Aint (0, 0) "1")) max accu @@ -1489,15 +1495,10 @@ | [Avar _ "sq" []; Atext loc s :: al] -> let s = squeeze_spaces s in print_ast_list env ep [Atext loc s :: al] - | [Aimport templ astl :: al] -> - (* Protection pour ne pas inclure plusieurs fois un mĂŞme template ? *) - if not (List.mem templ imported_files.val) then do { - (*incr import;*) - print_ast_list env ep astl; - (*decr import;*) - print_ast_list m_env.val ep al; - } - else () + | [Aimport templ astl :: al] -> do { + print_ast_list env ep astl; + print_ast_list m_env.val ep al; + } | [a] -> print_ast env ep a | [a :: al] -> do { print_ast env ep a; @@ -1528,16 +1529,16 @@ let rec loop env min max = let new_env = env in let v = eval_ast_expr_list new_env ep [min] in - let new_env = set_val ifun.set_vother i v new_env in + let new_env = set_val ifun.set_vother i v new_env in let eval_var = eval_var conf ifun new_env ep in let eval_apply = eval_apply new_env ep in - let int_min = - int_of_string (eval_string_expr conf (eval_var, eval_apply) min) + let int_min = + int_of_string (eval_string_expr conf (eval_var, eval_apply) min) in - let int_max = - int_of_string (eval_string_expr conf (eval_var, eval_apply) max) + let int_max = + int_of_string (eval_string_expr conf (eval_var, eval_apply) max) in - if int_min < int_max then + if int_min < int_max then let _ = print_ast_list new_env ep al in loop new_env (Aop2 (0, 0) "+" min (Aint (0, 0) "1")) max else () diff -Nru geneweb-6.08dfsg/src/templ.mli geneweb-6.08+git20160228+dfsg/src/templ.mli --- geneweb-6.08dfsg/src/templ.mli 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/templ.mli 2016-02-28 10:10:47.000000000 +0000 @@ -17,7 +17,7 @@ eval_predefined_apply : env 'a -> string -> list (expr_val 'b) -> string; get_vother : 'a -> option (vother 'b); set_vother : vother 'b -> 'a; - print_foreach : + print_foreach : (env 'a -> 'b -> ast -> unit) -> (env 'a -> 'b -> ast -> string) -> env 'a -> 'b -> loc -> string -> list string -> diff -Nru geneweb-6.08dfsg/src/translate.ml geneweb-6.08+git20160228+dfsg/src/translate.ml --- geneweb-6.08dfsg/src/translate.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/translate.ml 2016-02-28 10:10:47.000000000 +0000 @@ -2,7 +2,7 @@ (* $Id: translate.ml,v 5.9 2007-09-12 09:58:44 ddr Exp $ *) (* Copyright (c) 1998-2007 INRIA *) -module Buff = Buff.Make (struct value buff = ref (String.create 80); end); +module Buff = Buff.Make (struct value buff = ref (Bytes.create 80); end); value skip_lang s = loop where rec loop i = @@ -209,11 +209,11 @@ if to_the_end then let rec loop i j = if i < String.length s then do { - t.[j] := s.[i]; loop (i + 1) (j + 1) + Bytes.set t j s.[i]; loop (i + 1) (j + 1) } else do { let j = - if j > 0 && t.[j - 1] <> ' ' then do { t.[j] := ' '; j + 1 } + if j > 0 && t.[j - 1] <> ' ' then do { Bytes.set t j ' '; j + 1 } else j in String.blit s l t j len; @@ -225,22 +225,22 @@ let rec loop i j = if i < String.length s then if s.[i] = ' ' then do { - t.[j] := ' '; + Bytes.set t j ' '; String.blit s l t (j + 1) len; (i, j + 1 + len) } - else do { t.[j] := s.[i]; loop (i + 1) (j + 1) } + else do { Bytes.set t j s.[i]; loop (i + 1) (j + 1) } else if k < String.length s && s.[k] = ' ' then do { - t.[j] := ' '; String.blit s l t (j + 1) len; (i, j + 1 + len) + Bytes.set t j ' '; String.blit s l t (j + 1) len; (i, j + 1 + len) } else do { String.blit s l t j len; (i, j + len) } in loop i j in loop True i j - else do { t.[j] := s.[i]; loop changed (i + 1) (j + 1) } + else do { Bytes.set t j s.[i]; loop changed (i + 1) (j + 1) } else if i < String.length s then do { - t.[j] := s.[i]; loop changed (i + 1) (j + 1) + Bytes.set t j s.[i]; loop changed (i + 1) (j + 1) } else if changed then eval_shift (String.sub t 0 j) else String.sub t 0 j diff -Nru geneweb-6.08dfsg/src/updateData.ml geneweb-6.08+git20160228+dfsg/src/updateData.ml --- geneweb-6.08dfsg/src/updateData.ml 2014-09-04 09:34:14.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/updateData.ml 2016-02-28 10:10:47.000000000 +0000 @@ -267,7 +267,7 @@ else k ^ String.make (String.length ini + 1 - String.length k) '_' in for i = 0 to String.length ini_k - 1 do { - if ini_k.[i] = ' ' then ini_k.[i] := '_' else () + if ini_k.[i] = ' ' then Bytes.set ini_k i '_' else () }; let new_list = if ini_k = "_" then new_list diff -Nru geneweb-6.08dfsg/src/updateFam.ml geneweb-6.08+git20160228+dfsg/src/updateFam.ml --- geneweb-6.08dfsg/src/updateFam.ml 2014-09-04 09:34:14.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/updateFam.ml 2016-02-28 10:10:47.000000000 +0000 @@ -379,11 +379,20 @@ fun [ ["include_perso_header"] -> match p_getint conf.env "ip" with - [ Some i -> do { - let p = poi base (Adef.iper_of_int i) in - Perso.interp_templ_with_menu (fun _ -> ()) "perso_header" conf base p; - VVstring "" - } + [ Some i -> + let has_base_loop = + try do { + let _ = Util.create_topological_sort conf base in + False + } with [ Consang.TopologicalSortError p -> True ] + in + if has_base_loop then VVstring "" + else do { + let p = poi base (Adef.iper_of_int i) in + Perso.interp_templ_with_menu + (fun _ -> ()) "perso_header" conf base p; + VVstring "" + } | None -> VVstring "" ] | _ -> raise Not_found ] and eval_int_env var env = @@ -452,6 +461,7 @@ | None -> Gwdb.empty_person base (Adef.iper_of_int (-1)) ] in Perso.interp_notempl_with_menu title "perso_header" conf base p; + tag "h2" begin title False; end; print_link_to_welcome conf True; Wserver.wprint "\n"; tag "form" "method=\"post\" action=\"%s\"" conf.command begin diff -Nru geneweb-6.08dfsg/src/updateFam.mli geneweb-6.08+git20160228+dfsg/src/updateFam.mli --- geneweb-6.08dfsg/src/updateFam.mli 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/updateFam.mli 2016-02-28 10:10:47.000000000 +0000 @@ -18,7 +18,7 @@ value print_inv : config -> base -> unit; value print_add_parents : config -> base -> unit; -value change_order : +value change_order : config -> base -> iper -> person -> ifam -> int -> list ifam; value print_change_order : config -> base -> unit; diff -Nru geneweb-6.08dfsg/src/updateInd.ml geneweb-6.08+git20160228+dfsg/src/updateInd.ml --- geneweb-6.08dfsg/src/updateInd.ml 2014-09-04 09:34:14.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/updateInd.ml 2016-02-28 10:10:47.000000000 +0000 @@ -345,11 +345,20 @@ fun [ ["include_perso_header"] -> match p_getint conf.env "i" with - [ Some i -> do { - let p = poi base (Adef.iper_of_int i) in - Perso.interp_templ_with_menu (fun _ -> ()) "perso_header" conf base p; - VVstring "" - } + [ Some i -> + let has_base_loop = + try do { + let _ = Util.create_topological_sort conf base in + False + } with [ Consang.TopologicalSortError p -> True ] + in + if has_base_loop then VVstring "" + else do { + let p = poi base (Adef.iper_of_int i) in + Perso.interp_templ_with_menu + (fun _ -> ()) "perso_header" conf base p; + VVstring "" + } | None -> VVstring "" ] | _ -> raise Not_found ] and eval_int_env var env = @@ -429,6 +438,7 @@ in do { Perso.interp_notempl_with_menu title "perso_header" conf base p; + tag "h2" begin title False; end; tag "form" "method=\"post\" action=\"%s\"" conf.command begin tag "p" begin Util.hidden_env conf; diff -Nru geneweb-6.08dfsg/src/updateIndOk.ml geneweb-6.08+git20160228+dfsg/src/updateIndOk.ml --- geneweb-6.08dfsg/src/updateIndOk.ml 2014-09-04 09:34:14.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/updateIndOk.ml 2016-02-28 10:10:47.000000000 +0000 @@ -109,7 +109,7 @@ match get_nth conf "add_relation" cnt with [ Some "on" -> let r = - {r_type = Adoption; r_fath = None; r_moth = None; r_sources = ""} + {r_type = GodParent; r_fath = None; r_moth = None; r_sources = ""} in ([r :: rl], True) | _ -> (rl, ext) ] @@ -166,7 +166,7 @@ | "CandidateParent" -> CandidateParent | "GodParent" -> GodParent | "FosterParent" -> FosterParent - | _ -> Adoption ] + | _ -> GodParent ] in Some {r_type = r_type; r_fath = r_fath; r_moth = r_moth; r_sources = ""} with diff -Nru geneweb-6.08dfsg/src/update.ml geneweb-6.08+git20160228+dfsg/src/update.ml --- geneweb-6.08dfsg/src/update.ml 2014-09-04 09:34:14.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/update.ml 2016-02-28 10:10:47.000000000 +0000 @@ -473,6 +473,20 @@ else do { Wserver.wprint "%s\n" (capitale (transl conf "warnings")); tag "ul" begin + (* On rend la liste unique, parce qu'il se peut qu'un warning soit *) + (* levĂ© par plusieurs fonctions diffĂ©rents selon le context. *) + let wl = + let ht = Hashtbl.create 1 in + loop wl [] where rec loop wl accu = + match wl with + [ [] -> accu + | [x :: wl] -> + if Hashtbl.mem ht (Hashtbl.hash x) then loop wl accu + else do { + Hashtbl.add ht (Hashtbl.hash x) True; + loop wl [x :: accu] + } ] + in List.iter (fun w -> do { diff -Nru geneweb-6.08dfsg/src/update.mli geneweb-6.08+git20160228+dfsg/src/update.mli --- geneweb-6.08dfsg/src/update.mli 2014-08-27 13:47:07.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/update.mli 2016-02-28 10:10:47.000000000 +0000 @@ -40,7 +40,7 @@ value print_warnings : config -> base -> list CheckItem.base_warning -> unit; value print_miscs : config -> base -> list CheckItem.base_misc -> unit; value print_warnings_and_miscs : - config -> base -> + config -> base -> (list CheckItem.base_warning * list CheckItem.base_misc) -> unit; value error : config -> base -> CheckItem.base_error -> 'a; diff -Nru geneweb-6.08dfsg/src/util.ml geneweb-6.08+git20160228+dfsg/src/util.ml --- geneweb-6.08dfsg/src/util.ml 2014-09-04 09:34:14.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/util.ml 2016-02-28 10:10:47.000000000 +0000 @@ -142,7 +142,7 @@ type format2 'a 'b = format4 'a unit string 'b; value fcapitale (a : format4 'a 'b 'c 'd) : format4 'a 'b 'c 'd = - Obj.magic capitale a + Scanf.format_from_string (capitale (string_of_format a)) a ; value nth_field_abs w n = @@ -272,7 +272,7 @@ ; value check_format ini_fmt (r : string) = - let s : string = Obj.magic (ini_fmt : format4 'a 'b 'c 'd) in + let s = string_of_format ini_fmt in let rec loop i j = if i < String.length s - 1 && j < String.length r - 1 then match (s.[i], s.[i + 1], r.[j], r.[j + 1]) with @@ -286,7 +286,7 @@ else if j < String.length r - 1 then if r.[j] = '%' then None else loop i (j + 1) else - Some (Obj.magic r : format4 'a 'b 'c 'd) + Some (Scanf.format_from_string r ini_fmt) in loop 0 0 ; @@ -294,7 +294,7 @@ value valid_format ini_fmt r = match check_format ini_fmt r with [ Some fmt -> fmt - | None -> Obj.magic (tnf (Obj.magic ini_fmt)) ] + | None -> Scanf.format_from_string (tnf r) ini_fmt ] ; value cftransl conf fmt = @@ -317,14 +317,14 @@ loop 0 ; -value ftransl conf s = valid_format s (transl conf (Obj.magic s : string)); +value ftransl conf s = valid_format s (transl conf (string_of_format s)); value ftransl_nth conf s p = - valid_format s (transl_nth conf (Obj.magic s : string) p) + valid_format s (transl_nth conf (string_of_format s) p) ; value fdecline conf w s = - valid_format w (gen_decline (Obj.magic w : string) s) + valid_format w (gen_decline (string_of_format w) s) ; value translate_eval s = Translate.eval (nominative s); @@ -481,13 +481,13 @@ | '&' -> do { String.blit "&" 0 s1 i1 5; i1 + 5 } | '<' -> do { String.blit "<" 0 s1 i1 4; i1 + 4 } | '>' -> do { String.blit ">" 0 s1 i1 4; i1 + 4 } - | c -> do { s1.[i1] := c; succ i1 } ] + | c -> do { Bytes.set s1 i1 c; succ i1 } ] in copy_code_in s1 (succ i) i1 else s1 in if need_code 0 then - let len = compute_len 0 0 in copy_code_in (String.create len) 0 0 + let len = compute_len 0 0 in copy_code_in (Bytes.create len) 0 0 else s ; @@ -1207,6 +1207,22 @@ | _ -> "?" ] ; +value explode s c = + let rec loop list i j = + if i = 0 then + if s.[i] = c then ["" :: list] + else + let ss = String.sub s 0 j in + [ss :: list] + else + if s.[i] = c then + let ss = String.sub s (i + 1) (j - i - 1) in + loop [ss :: list] (i - 1) i + else loop list (i - 1) j + in + let len = String.length s in + loop [] (len - 1) len +; (* ************************************************************************ *) (* [Fonc] etc_file_name : config -> string -> string *) @@ -1220,6 +1236,9 @@ [Rem] : Exporté en clair hors de ce module. *) (* ************************************************************************ *) value etc_file_name conf fname = + (* On recherche si dans le nom du fichier, on a specifié son *) + (* répertoire, i.e. si fname est écrit comme ceci : dir/file *) + let fname = List.fold_left (Filename.concat) "" (explode fname '/') in (* On cherche le fichier dans cet ordre : - dans la base (bases/etc/base_name/name.txt) - dans la base (bases/etc/templx/name.txt) @@ -1670,7 +1689,7 @@ ["a"; "b"; "blockquote"; "br"; "center"; "cite"; "dd"; "dir"; "div"; "dl"; "dt"; "em"; "font"; "hr"; "h1"; "h2"; "h3"; "h4"; "h5"; "h6"; "i"; "img"; "li"; "ol"; "p"; "pre"; "span"; "strong"; "sub"; "sup"; "table"; "tbody"; - "td"; "th"; "tr"; "tt"; "u"; "ul"; "!--"; "area"; "map"] + "td"; "tfoot"; "th"; "thead"; "tr"; "tt"; "u"; "ul"; "!--"; "area"; "map"] ; value allowed_tags_file = ref ""; @@ -1689,10 +1708,10 @@ else default_good_tag_list ; -value good_tags_list = Lazy.lazy_from_fun good_tag_list_fun; +value good_tags_list = Lazy.from_fun good_tag_list_fun; value good_tag s i = List.mem (tag_id s i) (Lazy.force good_tags_list); -module Lbuff = Buff.Make (struct value buff = ref (String.create 80); end); +module Lbuff = Buff.Make (struct value buff = ref (Bytes.create 80); end); value filter_html_tags s = loop 0 0 where rec loop len i = @@ -2057,11 +2076,11 @@ ; value hexa_string s = - let s' = String.create (2 * String.length s) in + let s' = Bytes.create (2 * String.length s) in do { for i = 0 to String.length s - 1 do { - s'.[2*i] := "0123456789ABCDEF".[Char.code s.[i] / 16]; - s'.[2*i+1] := "0123456789ABCDEF".[Char.code s.[i] mod 16]; + Bytes.set s' (2*i) "0123456789ABCDEF".[Char.code s.[i] / 16]; + Bytes.set s' (2*i+1) "0123456789ABCDEF".[Char.code s.[i] mod 16]; }; s' } @@ -2356,7 +2375,7 @@ ; value png_image_size ic = - let magic = let s = String.create 4 in do { really_input ic s 0 4; s } in + let magic = let s = Bytes.create 4 in do { really_input ic s 0 4; s } in if magic = "\137PNG" then do { seek_in ic 16; let wid = input_binary_int ic in @@ -2367,7 +2386,7 @@ ; value gif_image_size ic = - let magic = let s = String.create 4 in do { really_input ic s 0 4; s } in + let magic = let s = Bytes.create 4 in do { really_input ic s 0 4; s } in if magic = "GIF8" then do { seek_in ic 6; let wid = let x = input_byte ic in input_byte ic * 256 + x in @@ -2379,7 +2398,7 @@ value jpeg_image_size ic = let magic = - let str = String.create 10 in do { really_input ic str 0 10; str } + let str = Bytes.create 10 in do { really_input ic str 0 10; str } in if Char.code magic.[0] = 0xff && Char.code magic.[1] = 0xd8 && (let m = String.sub magic 6 4 in m = "JFIF" || m = "Exif") then @@ -2554,7 +2573,7 @@ let () = load_ascends_array base in let () = load_couples_array base in Consang.topological_sort base (pget conf) - | Some "no_tstab" -> Array.create (nb_of_persons base) 0 + | Some "no_tstab" -> Array.make (nb_of_persons base) 0 | _ -> let bfile = base_path [] (conf.bname ^ ".gwb") in lock (Mutil.lock_file bfile) with @@ -2751,16 +2770,16 @@ ; value gen_only_printable or_nl s = - let s' = String.create (String.length s) in + let s' = Bytes.create (String.length s) in do { for i = 0 to String.length s - 1 do { - s'.[i] := - if Mutil.utf_8_db.val && Char.code s.[i] > 127 then s.[i] - else - match s.[i] with - [ ' '..'~' | '\160'..'\255' -> s.[i] - | '\n' -> if or_nl then '\n' else ' ' - | _ -> ' ' ] + Bytes.set s' i + (if Mutil.utf_8_db.val && Char.code s.[i] > 127 then s.[i] + else + match s.[i] with + [ ' '..'~' | '\160'..'\255' -> s.[i] + | '\n' -> if or_nl then '\n' else ' ' + | _ -> ' ' ]) }; strip_spaces s' } diff -Nru geneweb-6.08dfsg/src/version.ml geneweb-6.08+git20160228+dfsg/src/version.ml --- geneweb-6.08dfsg/src/version.ml 2014-09-04 09:34:14.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/version.ml 2016-02-28 10:10:47.000000000 +0000 @@ -1,7 +1,7 @@ (* $Id: version.ml,v 5.8 2011-01-06 09:59:58 ddr Exp $ *) (* Copyright (c) 1998-2007 INRIA *) -value txt = "6.08 - exp"; +value txt = "6.08"; value available_languages = ["af"; "bg"; "br"; "ca"; "cs"; "da"; "de"; "en"; "es"; "eo"; "et"; "fi"; diff -Nru geneweb-6.08dfsg/src/wiki.ml geneweb-6.08+git20160228+dfsg/src/wiki.ml --- geneweb-6.08dfsg/src/wiki.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/src/wiki.ml 2016-02-28 10:10:47.000000000 +0000 @@ -36,8 +36,8 @@ __SHORT_TOC__ : short summary (unnumbered) __NOTOC__ : no (automatic) numbered summary *) -module Buff2 = Buff.Make (struct value buff = ref (String.create 80); end); -module Buff = Buff.Make (struct value buff = ref (String.create 80); end); +module Buff2 = Buff.Make (struct value buff = ref (Bytes.create 80); end); +module Buff = Buff.Make (struct value buff = ref (Bytes.create 80); end); value first_cnt = 1; @@ -478,7 +478,7 @@ loop2 [s] sl else loop1 [s :: parag] sl | [] -> Some (parag, [], True) ] - and loop2 parag = + and loop2 parag = fun [ ["" :: sl] -> Some (parag, sl, False) | [s :: sl] -> diff -Nru geneweb-6.08dfsg/tools/Makefile.inc geneweb-6.08+git20160228+dfsg/tools/Makefile.inc --- geneweb-6.08dfsg/tools/Makefile.inc 2014-03-24 13:27:43.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/tools/Makefile.inc 1970-01-01 00:00:00.000000000 +0000 @@ -1,43 +0,0 @@ -# $Id: Makefile.inc.unix,v 1.6 2007-09-12 09:58:44 ddr Exp $ - -TOP=.. -CAMLP5_COMM=TOP=$(TOP) $(TOP)/tools/camlp5_comm.sh -CAMLP5F=-DUNIX -CAMLP5D=~/.opam/system/lib/camlp5/ -LIBUNIX=-cclib -lunix -OCAMLC=ocamlc.opt -warn-error A -OCAMLOPT=ocamlopt.opt -warn-error A -annot -OCAMLI= -OCAMLD= -STRIP=strip -RM=/bin/rm -f -EXE= -STATIC=-ccopt -static -STATIC= -TEST_DIR=test $$(basename "$<") = "$<" || { echo "Please run 'make' in directory '$$(dirname "$<")' first"; exit 1; } - -all:: -opt:: - -clean:: - $(RM) *.out *.opt *.cm[oixa] *.cmxa *.pp[oi] *.o *.a *.obj *.lib *.lck *.bak *~ .#* *.annot - -.SUFFIXES: .ml .cmo .mli .cmi .cmx - -.mli.cmi: - @$(TEST_DIR) - @$(CAMLP5_COMM) $(CAMLP5F) $< -o $*.ppi - $(OCAMLC) $(OCAMLI) -I $(CAMLP5D) -c -intf $*.ppi - $(RM) $*.ppi - -.ml.cmo: - @$(TEST_DIR) - @$(CAMLP5_COMM) $(CAMLP5F) $< -o $*.ppo - $(OCAMLC) $(OCAMLI) $(OCAMLD) -I $(CAMLP5D) -c -impl $*.ppo - $(RM) $*.ppo - -.ml.cmx: - @$(TEST_DIR) - @$(CAMLP5_COMM) $(CAMLP5F) $< -o $*.ppo - $(OCAMLOPT) $(OCAMLI) -I $(CAMLP5D) -c -impl $*.ppo - $(RM) $*.ppo diff -Nru geneweb-6.08dfsg/tools/Makefile.inc.unix geneweb-6.08+git20160228+dfsg/tools/Makefile.inc.unix --- geneweb-6.08dfsg/tools/Makefile.inc.unix 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/tools/Makefile.inc.unix 2016-02-28 10:10:47.000000000 +0000 @@ -1,5 +1,6 @@ # $Id: Makefile.inc.unix,v 1.6 2007-09-12 09:58:44 ddr Exp $ +GW_DIR= TOP=.. CAMLP5_COMM=TOP=$(TOP) $(TOP)/tools/camlp5_comm.sh CAMLP5F=-DUNIX @@ -16,6 +17,8 @@ STATIC= TEST_DIR=test $$(basename "$<") = "$<" || { echo "Please run 'make' in directory '$$(dirname "$<")' first"; exit 1; } +include $(GW_DIR)/tools/Makefile.ocaml + all:: opt:: diff -Nru geneweb-6.08dfsg/tools/Makefile.inc.win geneweb-6.08+git20160228+dfsg/tools/Makefile.inc.win --- geneweb-6.08dfsg/tools/Makefile.inc.win 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/tools/Makefile.inc.win 2016-02-28 10:10:47.000000000 +0000 @@ -1,5 +1,6 @@ # $Id: Makefile.inc.win,v 5.7 2007-09-12 09:58:44 ddr Exp $ +GW_DIR= TOP=.. CAMLP5_COMM=TOP=$(TOP) $(TOP)/tools/camlp5_comm.sh CAMLP5F=-DWIN95 @@ -15,6 +16,8 @@ STATIC= TEST_DIR=test $$(basename "$<") = "$<" || { echo "Please run 'make' in directory '$$(dirname "$<")' first"; exit 1; } +include $(GW_DIR)/tools/Makefile.ocaml + all:: opt:: diff -Nru geneweb-6.08dfsg/tools/Makefile.ocaml.inc geneweb-6.08+git20160228+dfsg/tools/Makefile.ocaml.inc --- geneweb-6.08dfsg/tools/Makefile.ocaml.inc 1970-01-01 00:00:00.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/tools/Makefile.ocaml.inc 2016-02-28 10:10:47.000000000 +0000 @@ -0,0 +1 @@ +CAMLP5D=+camlp5 diff -Nru geneweb-6.08dfsg/wserver/pa_macro5.ml geneweb-6.08+git20160228+dfsg/wserver/pa_macro5.ml --- geneweb-6.08dfsg/wserver/pa_macro5.ml 2014-03-24 10:07:10.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/wserver/pa_macro5.ml 2016-02-28 10:10:47.000000000 +0000 @@ -99,15 +99,13 @@ | [] -> [] ] ; -value oversion = do { - let v = String.copy Sys.ocaml_version in - for i = 0 to String.length v - 1 do { - match v.[i] with - [ '0'..'9' -> () - | _ -> v.[i] := '_' ]; - }; - v -}; +value oversion = + String.map + (fun + [ '0'..'9' as c -> c + | _ -> '_' ]) + Sys.ocaml_version +; value defined = ref diff -Nru geneweb-6.08dfsg/wserver/wserver.ml geneweb-6.08+git20160228+dfsg/wserver/wserver.ml --- geneweb-6.08dfsg/wserver/wserver.ml 2014-08-27 13:47:07.000000000 +0000 +++ geneweb-6.08+git20160228+dfsg/wserver/wserver.ml 2016-02-28 10:10:47.000000000 +0000 @@ -57,11 +57,11 @@ match s.[i] with [ '%' when i + 2 < String.length s -> do { let v = hexa_val s.[i+1] * 16 + hexa_val s.[i+2] in - s1.[i1] := Char.chr v; + Bytes.set s1 i1 (Char.chr v); i + 3 } - | '+' -> do { s1.[i1] := ' '; succ i } - | x -> do { s1.[i1] := x; succ i } ] + | '+' -> do { Bytes.set s1 i1 ' '; succ i } + | x -> do { Bytes.set s1 i1 x; succ i } ] in copy_decode_in s1 i (succ i1) else s1 @@ -79,7 +79,7 @@ in if need_decode 0 then let len = compute_len 0 0 in - let s1 = String.create len in + let s1 = Bytes.create len in let s = copy_decode_in s1 0 0 in if strip_spaces then strip_heading_and_trailing_spaces s else s else s @@ -114,22 +114,22 @@ if i < String.length s then let i1 = match s.[i] with - [ ' ' -> do { s1.[i1] := '+'; succ i1 } + [ ' ' -> do { Bytes.set s1 i1 '+'; succ i1 } | c -> if special c then do { - s1.[i1] := '%'; - s1.[i1+1] := hexa_digit (Char.code c / 16); - s1.[i1+2] := hexa_digit (Char.code c mod 16); + Bytes.set s1 i1 '%'; + Bytes.set s1 (i1+1) (hexa_digit (Char.code c / 16)); + Bytes.set s1 (i1+2) (hexa_digit (Char.code c mod 16)); i1 + 3 } - else do { s1.[i1] := c; succ i1 } ] + else do { Bytes.set s1 i1 c; succ i1 } ] in copy_code_in s1 (succ i) i1 else s1 in if need_code 0 then let len = compute_len 0 0 in - copy_code_in (String.create len) 0 0 + copy_code_in (Bytes.create len) 0 0 else s ; @@ -219,12 +219,12 @@ | [] -> "" ] ; -value buff = ref (String.create 80); +value buff = ref (Bytes.create 80); value store len x = do { if len >= String.length buff.val then - buff.val := buff.val ^ String.create (String.length buff.val) + buff.val := buff.val ^ Bytes.create (String.length buff.val) else (); - buff.val.[len] := x; + Bytes.set buff.val len x; succ len }; value get_buff len = String.sub buff.val 0 len; @@ -272,12 +272,12 @@ match extract_param "content-length: " ' ' request with [ "" -> "" | x -> do { - let str = String.create (int_of_string x) in + let str = Bytes.create (int_of_string x) in for i = 0 to String.length str - 1 do { - str.[i] := - match strm with parser - [ [: `x :] -> x - | [: :] -> ' ' ]; + Bytes.set str i + (match strm with parser + [ [: `x :] -> x + | [: :] -> ' ' ]); }; str } ] @@ -342,7 +342,7 @@ try flush stderr with _ -> (); }; -value buff = String.create 1024; +value buff = Bytes.create 1024; IFDEF WIN95 THEN value copy_what_necessary t oc = @@ -504,7 +504,7 @@ Unix.close s; wserver_sock.val := t; wserver_oc.val := Unix.out_channel_of_descr t; -(* +(* j'ai l'impression que cette fermeture fait parfois bloquer le serveur... try Unix.close t with _ -> (); *)