summaryrefslogtreecommitdiff
path: root/includes/extras/functions.pl.php
diff options
context:
space:
mode:
authorVeit Olschinski <veit@olschinski.de>2010-04-05 10:29:41 +0000
committerVeit Olschinski <veit@olschinski.de>2010-04-05 10:29:41 +0000
commit5bc7b36708d272081ffd2df5658ddf12275447dd (patch)
tree7884d88bd634f62d94e0239c911305ac4349dba8 /includes/extras/functions.pl.php
parent5dbb23df7f03aeb32c6c5a3fa6139dd479f9c0b4 (diff)
downloadwebtrees-5bc7b36708d272081ffd2df5658ddf12275447dd.tar.gz
webtrees-5bc7b36708d272081ffd2df5658ddf12275447dd.tar.bz2
webtrees-5bc7b36708d272081ffd2df5658ddf12275447dd.zip
Diffstat (limited to 'includes/extras/functions.pl.php')
-rw-r--r--includes/extras/functions.pl.php592
1 files changed, 592 insertions, 0 deletions
diff --git a/includes/extras/functions.pl.php b/includes/extras/functions.pl.php
new file mode 100644
index 0000000000..4777b81728
--- /dev/null
+++ b/includes/extras/functions.pl.php
@@ -0,0 +1,592 @@
+<?php
+/**
+ *
+ * webtrees: Web based Family History software
+ * Copyright (C) 2010 webtrees development team.
+ *
+ * Derived from PhpGedView
+ * Copyright (C) 2002 to 2010 PGV Development Team. All rights reserved.
+ *
+ * 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; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * @package webtrees
+ * @version $Id$
+ */
+
+if (!defined('WT_WEBTREES')) {
+ header('HTTP/1.0 403 Forbidden');
+ exit;
+}
+
+define('WT_FUNCTIONS_PL_PHP', '');
+
+////////////////////////////////////////////////////////////////////////////////
+// Localise a date. Lokalizacja daty.
+////////////////////////////////////////////////////////////////////////////////
+function date_localisation_pl(&$q1, &$d1, &$q2, &$d2, &$q3) {
+ static $NOMINATIVE_MONTHS=NULL;
+ static $GENITIVE_MONTHS=NULL;
+ static $INSTRUMENTAL_MONTHS=NULL;
+ static $LOCATIVE_MONTHS=NULL;
+
+ if (empty($NOMINATIVE_MONTHS)) {
+ $NOMINATIVE_MONTHS=array(i18n::translate('January'), i18n::translate('February'), i18n::translate('March'), i18n::translate('April'), i18n::translate('May'), i18n::translate('June'), i18n::translate('July'), i18n::translate('August'), i18n::translate('September'), i18n::translate('October'), i18n::translate('November'), i18n::translate('December'));
+ $GENITIVE_MONTHS=array('stycznia', 'lutego', 'marca', 'kwietnia', 'maja', 'czerwca', 'lipca', 'sierpnia', 'września', 'października', 'listopada', 'grudnia');
+ $INSTRUMENTAL_MONTHS=array('styczniem', 'lutym', 'marcem', 'kwietniem', 'majem', 'czerwcem', 'lipcem', 'sierpniem', 'wrześniem', 'październikiem', 'listopadem', 'grudniem');
+ $LOCATIVE_MONTHS=array('styczniu', 'lutym', 'marcu', 'kwietniu', 'maju', 'czerwcu', 'lipcu', 'sierpniu', 'wrześniu', 'październiku', 'listopadzie', 'grudniu');
+ }
+
+ // Months with a day number are genitive, regardless of qualifier
+ for ($i=0; $i<12; ++$i) {
+ $d1=preg_replace("/(\d+ ){$NOMINATIVE_MONTHS[$i]}/", "$1{$GENITIVE_MONTHS[$i]}", $d1);
+ $d2=preg_replace("/(\d+ ){$NOMINATIVE_MONTHS[$i]}/", "$1{$GENITIVE_MONTHS[$i]}", $d2);
+ }
+
+ // Months without a day number (i.e. month at start) depend on the qualifier
+ switch ($q1) {
+ case 'from': case 'to': case 'abt': case 'apx': case 'cir':
+ for ($i=0; $i<12; ++$i)
+ $d1=preg_replace("/^{$NOMINATIVE_MONTHS[$i]}/", $GENITIVE_MONTHS[$i], $d1);
+ break;
+ case 'bet': case 'bef':
+ for ($i=0; $i<12; ++$i)
+ $d1=preg_replace("/^{$NOMINATIVE_MONTHS[$i]}/", $INSTRUMENTAL_MONTHS[$i], $d1);
+ break;
+ case 'aft':
+ for ($i=0; $i<12; ++$i)
+ $d1=preg_replace("/^{$NOMINATIVE_MONTHS[$i]}/", $LOCATIVE_MONTHS[$i], $d1);
+ break;
+ }
+ switch ($q2) {
+ case 'to':
+ for ($i=0; $i<12; ++$i)
+ $d2=preg_replace("/^{$NOMINATIVE_MONTHS[$i]}/", $GENITIVE_MONTHS[$i], $d2);
+ break;
+ case 'and':
+ for ($i=0; $i<12; ++$i)
+ $d2=preg_replace("/^{$NOMINATIVE_MONTHS[$i]}/", $INSTRUMENTAL_MONTHS[$i], $d2);
+ break;
+ }
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// Localise an age. Lokalizacja wieku.
+////////////////////////////////////////////////////////////////////////////////
+function age_localisation_pl(&$agestring, &$show_years) {
+ $show_years=true;
+ $agestring=preg_replace(
+ array(
+ '/\bchi(ld)?\b/i',
+ '/\binf(ant)?\b/i',
+ '/\bsti(llborn)?\b/i',
+ '/\b1y/i',
+ '/\b2y/i','/\b3y/i','/\b4y/i',
+ '/\b22y/i','/\b23y/i','/\b24y/i',
+ '/\b32y/i','/\b33y/i','/\b34y/i',
+ '/\b42y/i','/\b43y/i','/\b44y/i',
+ '/\b52y/i','/\b53y/i','/\b54y/i',
+ '/\b62y/i','/\b63y/i','/\b64y/i',
+ '/\b72y/i','/\b73y/i','/\b74y/i',
+ '/\b82y/i','/\b83y/i','/\b84y/i',
+ '/\b92y/i','/\b93y/i','/\b94y/i',
+ '/\b102y/i','/\b103y/i','/\b104y/i',
+ '/\b122y/i','/\b123y/i','/\b124y/i',
+ '/\b132y/i','/\b133y/i','/\b134y/i',
+ '/(\d+)y/i',
+ '/\b1m/i',
+ '/\b2m/i','/\b3m/i','/\b4m/i',
+ '/\b22m/i','/\b23m/i','/\b24m/i',
+ '/(\d+)m/i',
+ '/\b1d/i',
+ '/(\d+)d/i',
+ '/\b1w/i',
+ '/\b2w/i','/\b3w/i','/\b4w/i',
+ '/\b22w/i','/\b23w/i','/\b24w/i',
+ '/(\d+)w/i'
+ ),
+ array(
+ i18n::translate('Child'),
+ i18n::translate('Infant'),
+ i18n::translate('Stillborn'),
+ $show_years ? '1 '.i18n::translate('year') : '1',
+ $show_years ? '2 '.i18n::translate('years') : '2', $show_years ? '3 '.i18n::translate('years') : '3', $show_years ? '4 '.i18n::translate('years') : '4',
+ $show_years ? '22 '.i18n::translate('years') : '22', $show_years ? '23 '.i18n::translate('years') : '23', $show_years ? '24 '.i18n::translate('years') : '24',
+ $show_years ? '32 '.i18n::translate('years') : '32', $show_years ? '33 '.i18n::translate('years') : '33', $show_years ? '34 '.i18n::translate('years') : '34',
+ $show_years ? '42 '.i18n::translate('years') : '42', $show_years ? '43 '.i18n::translate('years') : '43', $show_years ? '44 '.i18n::translate('years') : '44',
+ $show_years ? '52 '.i18n::translate('years') : '52', $show_years ? '53 '.i18n::translate('years') : '53', $show_years ? '54 '.i18n::translate('years') : '54',
+ $show_years ? '62 '.i18n::translate('years') : '62', $show_years ? '63 '.i18n::translate('years') : '63', $show_years ? '64 '.i18n::translate('years') : '64',
+ $show_years ? '72 '.i18n::translate('years') : '72', $show_years ? '73 '.i18n::translate('years') : '73', $show_years ? '74 '.i18n::translate('years') : '74',
+ $show_years ? '82 '.i18n::translate('years') : '82', $show_years ? '83 '.i18n::translate('years') : '83', $show_years ? '84 '.i18n::translate('years') : '84',
+ $show_years ? '92 '.i18n::translate('years') : '92', $show_years ? '93 '.i18n::translate('years') : '93', $show_years ? '94 '.i18n::translate('years') : '94',
+ $show_years ? '102 '.i18n::translate('years') : '102', $show_years ? '103 '.i18n::translate('years') : '103', $show_years ? '104 '.i18n::translate('years') : '104',
+ $show_years ? '122 '.i18n::translate('years') : '122', $show_years ? '123 '.i18n::translate('years') : '123', $show_years ? '124 '.i18n::translate('years') : '124',
+ $show_years ? '132 '.i18n::translate('years') : '132', $show_years ? '133 '.i18n::translate('years') : '133', $show_years ? '134 '.i18n::translate('years') : '134',
+ $show_years ? '$1 '.i18n::translate('years') : '$1',
+ '1 '.i18n::translate('month'),
+ '2 miesiące', '3 miesiące', '4 miesiące',
+ '22 miesiące', '23 miesiące', '24 miesiące',
+ '$1 '.i18n::translate('months'),
+ '1 '.i18n::translate('day'),
+ '$1 '.i18n::translate('days'),
+ '1 '.i18n::translate('week'),
+ '2 tygodnie', '3 tygodnie', '4 tygodnie',
+ '22 tygodnie', '23 tygodnie', '24 tygodnie',
+ '$1 '.i18n::translate('weeks')
+ ),
+ $agestring
+ );
+}
+function age2_localisation_pl($years) {
+ if ($years==1) $years .= " ".i18n::translate('year');
+ else if ($years > 1 && $years < 5) $years .= " ".i18n::translate('years');
+ else if (substr($years, -1, 1) > 1 && substr($years, -1, 1) < 5 && substr($years, -2, 1) != 1) $years .= " ".i18n::translate('years');
+ else $years .= " ".i18n::translate('years');
+ return $years;
+}
+////////////////////////////////////////////////////////////////////////////////
+// Localise a date differences. Lokalizacja różnic dat.
+////////////////////////////////////////////////////////////////////////////////
+function date_diff_localisation_pl(&$label, &$gap) {
+ $yrs = round($gap/12);
+ if ($gap == 12 || $gap == -12) $label .= $yrs." ".i18n::translate('year'); // 1 rok
+ else if (($yrs > 1 && $yrs < 5) || ($yrs < -1 && $yrs > -5)) $label .= $yrs." ".i18n::translate('years'); // 2-4 lata
+ else if (($yrs > 21 || $yrs < -21) && substr($yrs, -1, 1) > 1 && substr($yrs, -1, 1) < 5 && substr($yrs, -2, 1) != 1) $label .= $yrs." ".i18n::translate('years');
+ else if ($gap > 20 or $gap < -20) $label .= $yrs." ".i18n::translate('years'); // x lat
+ else if ($gap == 1 || $gap == -1) $label .= $gap." ".i18n::translate('month'); // 1 miesiąc
+ else if (($gap > 1 && $gap < 5) || ($gap < -1 && $gap > -5)) $label .= $gap." miesiące"; // 2-4 miesiące
+ else if ($gap != 0) $label .= $gap." ".i18n::translate('months'); // x miesięcy
+}
+////////////////////////////////////////////////////////////////////////////////
+// Localise a number of people. Lokalizacja liczby osób.
+////////////////////////////////////////////////////////////////////////////////
+function num_people_localisation_pl(&$count) {
+ if ($count == 1)
+ print "<br /><b>".$count." ".i18n::translate('Individual')."</b>"; // 1 osoba
+ else if ($count > 1 && $count < 5)
+ print "<br /><b>".$count." ".i18n::translate('Individuals')."</b>"; // 2-4 osoby
+ else if ($count > 21 && substr($count, -1, 1) > 1 && substr($count, -1, 1) < 5 && substr($count, -2, 1) != 1)
+ print "<br /><b>".$count." ".i18n::translate('Individuals')."</b>"; // x2-x4 osoby
+ else
+ print "<br /><b>".$count." ".i18n::translate('Individuals')."</b>"; // x osób
+}
+///////////////////////////////////////////////////////////////////////////////////////////
+// Localise the _AKAN, _AKA, ALIA and _INTE facts. Lokalizacja faktów _AKAN, _AKA, ALIA i _INTE.
+///////////////////////////////////////////////////////////////////////////////////////////
+function fact_AKA_localisation_pl(&$fact, &$pid) {
+
+ $person = Person::getInstance($pid);
+ $sex = $person->getSex();
+ if ($fact == "_INTE") {
+ if ($sex == "M") $fact = "Pochowany"; // mężczyzna
+ else if ($sex == "F") $fact = "Pochowana"; // kobieta
+ }
+ else {
+ if ($sex == "M") $fact = "Znany także jako"; // mężczyzna
+ else if ($sex == "F") $fact = "Znana także jako"; // kobieta
+ }
+}
+///////////////////////////////////////////////////////////////////////////////////////////
+// Localise the _NMR facts. Lokalizacja faktów _NMR.
+///////////////////////////////////////////////////////////////////////////////////////////
+function fact_NMR_localisation_pl($fact, &$fid) {
+
+ $family = Family::getInstance($fid);
+ $husb = $family->getHusband();
+ $wife = $family->getWife();
+ if ($fact == "_NMR") {
+ if (empty($wife) && !empty($husb)) $fact = "Nieżonaty"; // mężczyzna
+ else if (empty($husb) && !empty($wife)) $fact = "Niezamężna"; // kobieta
+ }
+ else if ($fact == "_NMAR") {
+ if (empty($wife) && !empty($husb)) $fact = "Nigdy nieżonaty"; // mężczyzna
+ else if (empty($husb) && !empty($wife)) $fact = "Nigdy niezamężna"; // kobieta
+ }
+ return $fact;
+}
+///////////////////////////////////////////////////////////////////////////////////////////
+// Localise the AGNC fact. Lokalizacja faktu AGNC.
+///////////////////////////////////////////////////////////////////////////////////////////
+function fact_AGNC_localisation_pl($fact, $main_fact) {
+
+ if ($main_fact == "EDUC") {
+ $fact = "Szkoła/uczelnia";
+ }
+ else if ($main_fact == "OCCU") {
+ $fact = "Miejsce pracy";
+ }
+ else if ($main_fact == "ORDN") {
+ $fact = "Seminarium duchowne";
+ }
+}
+////////////////////////////////////////////////////////////////////////////////
+// Localise the close relatives facts. Lokalizacja faktów dotyczących bliskich
+////////////////////////////////////////////////////////////////////////////////
+function cr_facts_localisation_pl(&$factrec, &$fact, &$explode_fact, &$pid) {
+
+ $ct = preg_match_all("/\d ASSO @(.*)@/", $factrec, $match, PREG_SET_ORDER);
+ if ($ct>0) $pid2 = $match[0][1];
+ if (isset($pid2)) {
+ $sex1 = Person::getInstance($pid)->getSex();
+ $sex2 = Person::getInstance($pid2)->getSex();
+
+ if ($explode_fact[1] == "BIRT") {
+ switch ($explode_fact[2]) {
+ case "SIBL":
+ if ($sex2 == "M") $fact = "Narodziny brata";
+ else if ($sex2 == "F") $fact = "Narodziny siostry";
+ break;
+ case "GCHI":
+ if ($sex2 == "M") $fact = "Narodziny wnuka";
+ else if ($sex2 == "F") $fact = "Narodziny wnuczki";
+ break;
+ case "GGCH":
+ if ($sex2 == "M") $fact = "Narodziny prawnuka";
+ else if ($sex2 == "F") $fact = "Narodziny prawnuczki";
+ break;
+ case "COUS":
+ if ($sex2 == "M") $fact = "Narodziny kuzyna";
+ else if ($sex2 == "F") $fact = "Narodziny kuzynki";
+ break;
+ case "FSIB":
+ if ($sex2 == "M") $fact = "Narodziny brata ojca";
+ else if ($sex2 == "F") $fact = "Narodziny siostry ojca";
+ break;
+ case "MSIB":
+ if ($sex2 == "M") $fact = "Narodziny brata matki";
+ else if ($sex2 == "F") $fact = "Narodziny siostry matki";
+ break;
+ case "NEPH":
+ $node = get_relationship($pid, $pid2);
+ if (isset($node["path"][1])) {
+ $sex3 = Person::getInstance($node["path"][1])->getSex();
+ if ($sex2 == "M") {
+ if ($sex3 == "M") $fact = "Narodziny bratanka";
+ else if ($sex3 == "F") $fact = "Narodziny siostrzeńca";
+ }
+ else if ($sex2 == "F") {
+ if ($sex3 == "M") $fact = "Narodziny bratanicy";
+ else if ($sex3 == "F") $fact = "Narodziny siostrzenicy";
+ }
+ }
+ break;
+ }
+ }
+ else if ($explode_fact[1] != "") {
+ switch ($explode_fact[2]) {
+ case "SIBL":
+ if ($sex2 == "M") $fact = i18n::translate($explode_fact[1])." brata";
+ else if ($sex2 == "F") $fact = i18n::translate($explode_fact[1])." siostry";
+ break;
+ case "GCHI":
+ if ($sex2 == "M") $fact = i18n::translate($explode_fact[1])." wnuka";
+ else if ($sex2 == "F") $fact = i18n::translate($explode_fact[1])." wnuczki";
+ break;
+ case "GGCH":
+ if ($sex2 == "M") $fact = i18n::translate($explode_fact[1])." prawnuka";
+ else if ($sex2 == "F") $fact = i18n::translate($explode_fact[1])." prawnuczki";
+ break;
+ case "GPAR":
+ if ($sex2 == "M") $fact = i18n::translate($explode_fact[1])." dziadka";
+ else if ($sex2 == "F") $fact = i18n::translate($explode_fact[1])." babci";
+ break;
+ case "GGPA":
+ if ($sex2 == "M") $fact = i18n::translate($explode_fact[1])." pradziadka";
+ else if ($sex2 == "F") $fact = i18n::translate($explode_fact[1])." prababci";
+ break;
+ case "COUS":
+ if ($sex2 == "M") $fact = i18n::translate($explode_fact[1])." kuzyna";
+ else if ($sex2 == "F") $fact = i18n::translate($explode_fact[1])." kuzynki";
+ break;
+ case "FSIB":
+ if ($sex2 == "M") $fact = i18n::translate($explode_fact[1])." brata ojca";
+ else if ($sex2 == "F") $fact = i18n::translate($explode_fact[1])." siostry ojca";
+ break;
+ case "MSIB":
+ if ($sex2 == "M") $fact = i18n::translate($explode_fact[1])." brata matki";
+ else if ($sex2 == "F") $fact = i18n::translate($explode_fact[1])." siostry matki";
+ break;
+ case "SPOU":
+ if ($sex2 == "M" || $sex1 == "F") $fact = i18n::translate($explode_fact[1])." męża";
+ else if ($sex2 == "F" || $sex1 == "M") $fact = i18n::translate($explode_fact[1])." żony";
+ break;
+ case "NEPH":
+ $node = get_relationship($pid, $pid2);
+ if (isset($node["path"][1])) {
+ $sex3 = Person::getInstance($node["path"][1])->getSex();
+ if ($sex2 == "M") {
+ if ($sex3 == "M") $fact = i18n::translate($explode_fact[1])." bratanka";
+ else if ($sex3 == "F") $fact = i18n::translate($explode_fact[1])." siostrzeńca";
+ }
+ else if ($sex2 == "F") {
+ if ($sex3 == "M") $fact = i18n::translate($explode_fact[1])." bratanicy";
+ else if ($sex3 == "F") $fact = i18n::translate($explode_fact[1])." siostrzenicy";
+ }
+ }
+ break;
+ }
+ }
+ }
+}
+////////////////////////////////////////////////////////////////////////////////
+// Localise the relationships. Lokalizacja pokrewieństwa.
+////////////////////////////////////////////////////////////////////////////////
+function rela_localisation_pl(&$rela, &$pid2) {
+ if (isset($pid2)) {
+ $record = Person::getInstance($pid2);
+ if (!empty($record)) {
+ $sex = $record->getSex();
+ switch ($rela) {
+ case i18n::translate('Informant'):
+ if ($sex == "M") $rela = "Informator";
+ else if ($sex == "F") $rela = "Informatorka";
+ break;
+ case i18n::translate('Lodger'):
+ if ($sex == "M") $rela = "Lokator";
+ else if ($sex == "F") $rela = "Lokatorka";
+ break;
+ case i18n::translate('Slave'):
+ if ($sex == "M") $rela = "Niewolnik";
+ else if ($sex == "F") $rela = "Niewolnica";
+ break;
+ case i18n::translate('Attending'):
+ if ($sex == "M") $rela = "Obsługujący";
+ else if ($sex == "F") $rela = "Obsługująca";
+ break;
+ case i18n::translate('Guardian'):
+ if ($sex == "M") $rela = "Opiekun";
+ else if ($sex == "F") $rela = "Opiekunka";
+ break;
+ case i18n::translate('Nurse'):
+ if ($sex == "M") $rela = "Pielęgniarz";
+ else if ($sex == "F") $rela = "Pielęgniarka";
+ break;
+ case i18n::translate('Attendant'):
+ if ($sex == "M") $rela = "Pomocnik";
+ else if ($sex == "F") $rela = "Pomocnica";
+ break;
+ case i18n::translate('Employee'):
+ if ($sex == "M") $rela = "Pracownik";
+ else if ($sex == "F") $rela = "Pracownica";
+ break;
+ case i18n::translate('Friend'):
+ if ($sex == "M") $rela = "Przyjaciel";
+ else if ($sex == "F") $rela = "Przyjaciółka";
+ break;
+ case i18n::translate('Servant'):
+ if ($sex == "M") $rela = "Służący";
+ else if ($sex == "F") $rela = "Służąca";
+ break;
+ case i18n::translate('Seller'):
+ if ($sex == "M") $rela = "Sprzedawca";
+ else if ($sex == "F") $rela = "Sprzedawczyni";
+ break;
+ case i18n::translate('Owner'):
+ if ($sex == "M") $rela = "Właściciel";
+ else if ($sex == "F") $rela = "Właścicielka";
+ break;
+ case i18n::translate('Ward'):
+ if ($sex == "M") $rela = "Wychowanek";
+ else if ($sex == "F") $rela = "Wychowanka";
+ break;
+ }
+ }
+ }
+ return $rela;
+}
+
+function getRelationshipText_pl($relationshipDescription, $node, $pid1, $pid2) {
+ if ($relationshipDescription != false) {
+ return utf8_strtolower($relationshipDescription);
+ }
+ return false;
+}
+
+//-- functions to calculate polish specific genitive names
+function getFirstRelationsName_pl($pid) {
+ // In Polish we want the genitive form of the name
+ $person=Person::getInstance($pid);
+ if ($person) {
+ $fname=$person->getFullName();
+ }
+ else {
+ $fname='';
+ }
+ //return $fname;
+
+ // tested
+ $pname='';
+ $sex = Person::getInstance($pid)->getSex();
+ if ($sex == "M") {
+ $names = explode(" ", $fname);
+ foreach ($names as $name) {
+ if (preg_match('/ski$/', $name)) {
+ $pname .= " ".preg_replace('/ski$/', 'skiego', $name);
+ }
+ else if (preg_match('/cki$/', $name)) {
+ $pname .= " ".preg_replace('/cki$/', 'ckiego', $name);
+ }
+ else if (preg_match('/dzki$/', $name)) {
+ $pname .= " ".preg_replace('/dzki$/', 'dzkiego', $name);
+ }
+ else if (preg_match('/żki$/', $name)) {
+ $pname .= " ".preg_replace('/żki$/', 'żkiego', $name);
+ }
+ else if (preg_match('/y$/', $name)) {
+ $pname .= " ".preg_replace('/y$/','ego', $name);
+ }
+ else if (preg_match('/i$/', $name)) {
+ $pname .= " ".preg_replace('/i$/','iego', $name);
+ }
+ else if (preg_match('/ek$/', $name)) {
+ $pname .= " ".preg_replace('/ek$/','ka', $name);
+ }
+ else if (preg_match('/eł$/', $name)) {
+ $pname .= " ".preg_replace('/eł$/','ła', $name);
+ }
+ else if (preg_match('/el$/', $name)) {
+ $pname .= " ".preg_replace('/el$/','la', $name);
+ }
+ else if (preg_match('/ń$/', $name)) {
+ $pname .= " ".preg_replace('/ń$/','nia', $name);
+ }
+ else if (preg_match('/ź$/', $name)) {
+ $pname .= " ".preg_replace('/ź$/','zia', $name);
+ }
+ else if (preg_match('/niec$/', $name)) {
+ $pname .= " ".preg_replace('/niec$/','ńca', $name);
+ }
+ else if (preg_match('/iec$/', $name)) {
+ $pname .= " ".preg_replace('/iec$/','ca', $name);
+ }
+ else if (preg_match('/ec$/', $name)) {
+ $pname .= " ".preg_replace('/ec$/','ca', $name);
+ }
+ else if (preg_match('/er$/', $name)) {
+ $pname .= " ".preg_replace('/er$/','ra', $name);
+ }
+ // go
+ else if (preg_match('/go$/', $name)) {
+ $pname .= " ".preg_replace('/go$/','gi', $name);
+ }
+ // io
+ else if (preg_match('/io$/', $name)) {
+ $pname .= " ".preg_replace('/io$/','ii', $name);
+ }
+ // jo
+ else if (preg_match('/jo$/', $name)) {
+ $pname .= " ".preg_replace('/jo$/','ji', $name);
+ }
+ // ko
+ else if (preg_match('/ko$/', $name)) {
+ $pname .= " ".preg_replace('/ko$/','ki', $name);
+ }
+ // bo, co, do, fo, ho, lo, ło, mo, no, po, ro, so, to, wo, zo
+ else if (preg_match('/o$/', $name)) {
+ $pname .= " ".preg_replace('/o$/','y', $name);
+ }
+ // ga
+ else if (preg_match('/ga$/', $name)) {
+ $pname .= " ".preg_replace('/ga$/','gi', $name);
+ }
+ // ia
+ else if (preg_match('/ia$/', $name)) {
+ $pname .= " ".preg_replace('/ia$/','i', $name);
+ }
+ // ja
+ else if (preg_match('/ja$/', $name)) {
+ $pname .= " ".preg_replace('/ja$/','ji', $name);
+ }
+ // ka
+ else if (preg_match('/ka$/', $name)) {
+ $pname .= " ".preg_replace('/ka$/','ki', $name);
+ }
+ // ba, ca, da, fa, ha, la, ła, ma, na, pa, ra, sa, ta, wa, za
+ else if (preg_match('/a$/', $name)) {
+ $pname .= " ".preg_replace('/a$/','y', $name);
+ }
+ else if (preg_match('/ek]$/', $name)) {
+ $pname .= " ".preg_replace('/ek]$/','ka]', $name);
+ }
+ else if (preg_match('/"$/', $name)) {
+ $pname .= " ".preg_replace('/"$/','a"', $name);
+ }
+ else
+ $pname .= " ".$name."a";
+ }
+ }
+ else if ($sex == "F") {
+ $names = explode(" ", $fname);
+ foreach ($names as $name) {
+ if (preg_match('/raska$/', $name)) {
+ $pname .= " ".preg_replace('/ska$/', 'ski', $name);
+ }
+ else if (preg_match('/ska$/', $name)) {
+ $pname .= " ".preg_replace('/ska$/', 'skiej', $name);
+ }
+ else if (preg_match('/cka$/', $name)) {
+ $pname .= " ".preg_replace('/cka$/', 'ckiej', $name);
+ }
+ else if (preg_match('/dzka$/', $name)) {
+ $pname .= " ".preg_replace('/dzka$/', 'dzkiej', $name);
+ }
+ else if (preg_match('/żka$/', $name)) {
+ $pname .= " ".preg_replace('/żka$/', 'żkiej', $name);
+ }
+ else if (preg_match('/ka"$/', $name)) {
+ $pname .= " ".preg_replace('/ka"$/', 'ki"', $name);
+ }
+ else if (preg_match('/ska]$/', $name)) {
+ $pname .= " ".preg_replace('/ska]$/', 'skiej]', $name);
+ }
+ else if (preg_match('/cka]$/', $name)) {
+ $pname .= " ".preg_replace('/cka]$/', 'ckiej]', $name);
+ }
+ else if (preg_match('/dzka]$/', $name)) {
+ $pname .= " ".preg_replace('/dzka]$/', 'dzkiej]', $name);
+ }
+ else if (preg_match('/żka]$/', $name)) {
+ $pname .= " ".preg_replace('/żka]$/', 'żkiej]', $name);
+ }
+ else if (preg_match('/ka]$/', $name)) {
+ $pname .= " ".preg_replace('/ka]$/', 'ki]', $name);
+ }
+ else if (preg_match('/a]$/', $name)) {
+ $pname .= " ".preg_replace('/a]$/','y]', $name);
+ }
+ else
+ $pname .= " ".preg_replace(array('/eja$/','/ja$/','/ia$/','/la$/','/ga$/','/ea$/','/ka$/','/a$/'), array('ei','ji','ii','li','gi','ei','ki','y'), $name);
+ }
+ }
+ else {
+ $pname = "osoby: ".$pname;
+ }
+ if (!empty($pname)) return trim($pname);
+ else return $fname;
+}
+
+function century_localisation_pl($n, $show=true) {
+ $arab = array(1, 4, 5, 9, 10);
+ $roman = array("I", "IV", "V", "IX", "X");
+ $roman_century = "";
+ for ($i=4; $i>=0; $i--) {
+ while ($n>=$arab[$i]) {
+ $n-=$arab[$i];
+ $roman_century .= $roman[$i];
+ }
+ }
+ if ($show) return $roman_century." w.";
+ else return $roman_century;
+}
+?>