├── resources ├── css │ ├── style.css │ ├── webtrees │ │ └── compgen.png │ ├── minimal.css │ └── webtrees.css ├── lang │ ├── ca.mo │ ├── cs.mo │ ├── de.mo │ ├── fr.mo │ ├── it.mo │ ├── nl.mo │ ├── pt.mo │ ├── ru.mo │ ├── sk.mo │ ├── sv.mo │ ├── ta.mo │ ├── tr.mo │ ├── uk.mo │ ├── vi.mo │ ├── nb_NO.mo │ ├── pt.po │ ├── messages.pot │ ├── sv.po │ └── nb_NO.po ├── views │ ├── icons │ │ ├── map-gov.phtml │ │ └── place.phtml │ ├── edit │ │ ├── icon-fact-map-gov.phtml │ │ ├── icon-fact-reload-gov.phtml │ │ ├── gov-language-edit-control.phtml │ │ ├── gov-type-id-edit-control.phtml │ │ └── gov-id-edit-control.phtml │ ├── modals │ │ └── edit-gov-mapping.phtml │ ├── admin │ │ ├── gov-data-list.phtml │ │ ├── gov-data-edit.phtml │ │ └── gov-data.phtml │ └── script │ │ └── tom-select-initializer-gov.phtml └── gov │ └── languages.csv.example ├── gov.png ├── gov2.png ├── GOVServerUnavailableException.php ├── WhatsNew ├── WhatsNew4.php ├── WhatsNew2.php ├── WhatsNew5.php ├── WhatsNew3.php └── WhatsNew1.php ├── autoload.php ├── po.bat ├── ResolvedProperty.php ├── Model ├── GovHierarchyRequest.php ├── GovHierarchy.php ├── GovHierarchyRequestArgs.php └── JulianDayInterval.php ├── Http └── RequestHandlers │ ├── GovDataDelete.php │ ├── GovDataList.php │ ├── GovData.php │ ├── GovDataSave.php │ └── GovDataEdit.php ├── Schema ├── Migration2.php ├── Migration1.php └── Migration0.php ├── HelpTexts.php ├── module.php ├── TomSelectGovId.php ├── GovProperty.php ├── patchedWebtrees └── Elements │ ├── GovIdentifierExt.php │ └── GovIdTypeExt.php ├── PlaceholderModule.php ├── EditGovMappingController.php ├── README.md ├── metadata.json └── Gov4WebtreesModuleTrait.php /resources/css/style.css: -------------------------------------------------------------------------------- 1 | .govText2{ 2 | font-size: smaller 3 | } 4 | -------------------------------------------------------------------------------- /gov.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vesta-webtrees-2-custom-modules/vesta_gov4webtrees/HEAD/gov.png -------------------------------------------------------------------------------- /gov2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vesta-webtrees-2-custom-modules/vesta_gov4webtrees/HEAD/gov2.png -------------------------------------------------------------------------------- /resources/lang/ca.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vesta-webtrees-2-custom-modules/vesta_gov4webtrees/HEAD/resources/lang/ca.mo -------------------------------------------------------------------------------- /resources/lang/cs.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vesta-webtrees-2-custom-modules/vesta_gov4webtrees/HEAD/resources/lang/cs.mo -------------------------------------------------------------------------------- /resources/lang/de.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vesta-webtrees-2-custom-modules/vesta_gov4webtrees/HEAD/resources/lang/de.mo -------------------------------------------------------------------------------- /resources/lang/fr.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vesta-webtrees-2-custom-modules/vesta_gov4webtrees/HEAD/resources/lang/fr.mo -------------------------------------------------------------------------------- /resources/lang/it.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vesta-webtrees-2-custom-modules/vesta_gov4webtrees/HEAD/resources/lang/it.mo -------------------------------------------------------------------------------- /resources/lang/nl.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vesta-webtrees-2-custom-modules/vesta_gov4webtrees/HEAD/resources/lang/nl.mo -------------------------------------------------------------------------------- /resources/lang/pt.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vesta-webtrees-2-custom-modules/vesta_gov4webtrees/HEAD/resources/lang/pt.mo -------------------------------------------------------------------------------- /resources/lang/ru.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vesta-webtrees-2-custom-modules/vesta_gov4webtrees/HEAD/resources/lang/ru.mo -------------------------------------------------------------------------------- /resources/lang/sk.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vesta-webtrees-2-custom-modules/vesta_gov4webtrees/HEAD/resources/lang/sk.mo -------------------------------------------------------------------------------- /resources/lang/sv.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vesta-webtrees-2-custom-modules/vesta_gov4webtrees/HEAD/resources/lang/sv.mo -------------------------------------------------------------------------------- /resources/lang/ta.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vesta-webtrees-2-custom-modules/vesta_gov4webtrees/HEAD/resources/lang/ta.mo -------------------------------------------------------------------------------- /resources/lang/tr.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vesta-webtrees-2-custom-modules/vesta_gov4webtrees/HEAD/resources/lang/tr.mo -------------------------------------------------------------------------------- /resources/lang/uk.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vesta-webtrees-2-custom-modules/vesta_gov4webtrees/HEAD/resources/lang/uk.mo -------------------------------------------------------------------------------- /resources/lang/vi.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vesta-webtrees-2-custom-modules/vesta_gov4webtrees/HEAD/resources/lang/vi.mo -------------------------------------------------------------------------------- /resources/lang/nb_NO.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vesta-webtrees-2-custom-modules/vesta_gov4webtrees/HEAD/resources/lang/nb_NO.mo -------------------------------------------------------------------------------- /resources/css/webtrees/compgen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vesta-webtrees-2-custom-modules/vesta_gov4webtrees/HEAD/resources/css/webtrees/compgen.png -------------------------------------------------------------------------------- /GOVServerUnavailableException.php: -------------------------------------------------------------------------------- 1 | 4 | 5 | -------------------------------------------------------------------------------- /resources/views/icons/place.phtml: -------------------------------------------------------------------------------- 1 | 4 | 5 | -------------------------------------------------------------------------------- /resources/css/minimal.css: -------------------------------------------------------------------------------- 1 | .wt-icon-map-gov { 2 | display: inline-block; 3 | vertical-align: middle; 4 | background-repeat: no-repeat; 5 | background-size: cover; 6 | } 7 | 8 | .wt-icon-shared-place { 9 | display: inline-block; 10 | vertical-align: middle; 11 | background-repeat: no-repeat; 12 | background-size: cover; 13 | } 14 | -------------------------------------------------------------------------------- /WhatsNew/WhatsNew4.php: -------------------------------------------------------------------------------- 1 | addPsr4('Cissee\\Webtrees\\Module\\Gov4Webtrees\\', __DIR__); 7 | $loader->addPsr4('Cissee\\Webtrees\\Module\\Gov4Webtrees\\Model\\', __DIR__ . "/Model"); 8 | $loader->addPsr4('Cissee\\WebtreesExt\\Elements\\', __DIR__ . "/patchedWebtrees/Elements"); 9 | $loader->register(); 10 | 11 | //why don't we have to autoload Cissee\Webtrees\Module\Gov4Webtrees\Http\RequestHandlers? 12 | -------------------------------------------------------------------------------- /po.bat: -------------------------------------------------------------------------------- 1 | git grep -I --name-only --fixed-strings -e I18N:: -- *.php *.phtml | xargs xgettext --package-name=vesta --package-version=1.0 --msgid-bugs-address=ric@richard-cissee.de --output=resources/lang/messages.pot --no-wrap --language=PHP --add-comments=I18N --from-code=utf-8 --keyword --keyword=translate:1 --keyword=translateContext:1c,2 --keyword=plural:1,2 2 | git ls-files *.po | xargs -I INPUT msgmerge --no-wrap --sort-output --no-fuzzy-matching --quiet --backup=off INPUT "resources/lang/messages.pot" -U 3 | pause -------------------------------------------------------------------------------- /ResolvedProperty.php: -------------------------------------------------------------------------------- 1 | prop; 12 | } 13 | 14 | public function getSticky(): bool { 15 | return $this->sticky; 16 | } 17 | 18 | public function __construct( 19 | $prop, 20 | bool $sticky) { 21 | 22 | $this->prop = $prop; 23 | $this->sticky = $sticky; 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /WhatsNew/WhatsNew1.php: -------------------------------------------------------------------------------- 1 | $moduleName, 10 | 'action' => 'EditGovMapping', 11 | 'place-name' => $fact->place()->gedcomName(), 12 | 'tree' => $fact->record()->tree()->name() 13 | ])); 14 | ?>" 15 | data-wt-select-id="" 16 | title=""> 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /resources/views/edit/icon-fact-reload-gov.phtml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 22 | -------------------------------------------------------------------------------- /resources/gov/languages.csv.example: -------------------------------------------------------------------------------- 1 | #First column: informational only for easier editing, not actually evaluated 2 | #Second column: GOV id 3 | #Third and other columns: language code as used within the GOV system (see http://wiki-de.genealogy.net/GOV/FAQ#fremdsprachige_Namen) 4 | #a lower-cased code indicates a fallback language 5 | #an upper-cased code indicates that the name in the respective language is to be displayed unconditionally (if necessary as an additional name in parentheses) 6 | # 7 | #An empty GOV id indicates a global fallback which is also used for the GOV type names 8 | # 9 | #rows starting with '#' are ignored as comments 10 | # 11 | Böhmen;adm_368374;DEU;CZE;slo;eng 12 | Königreich Ungarn;object_1047424;HUN;SLO;deu;eng 13 | World;;deu;eng 14 | -------------------------------------------------------------------------------- /resources/views/edit/gov-language-edit-control.phtml: -------------------------------------------------------------------------------- 1 | '; 9 | $selectedValue = $value; 10 | if (!array_key_exists($selectedValue, $govLanguages) && ($selectedValue !== null)) { 11 | $html .= ''; 12 | } 13 | foreach (['' => ''] + $govLanguages as $langName => $langValue) { 14 | $html .= ''; 13 | } 14 | */ 15 | //['' => ''] + 16 | foreach ($govTypeIdsByTypeGroup as $typeGroupName => $govTypeIds) { 17 | $html .= ''; 18 | foreach ($govTypeIds as $typeName => $typeValue) { 19 | $html .= ''; 26 | } 27 | 28 | $html .= ''; 29 | 30 | echo $html; 31 | ?> 32 | -------------------------------------------------------------------------------- /Model/GovHierarchyRequest.php: -------------------------------------------------------------------------------- 1 | govId; 14 | } 15 | 16 | public function type(): ?int { 17 | return $this->type; 18 | } 19 | 20 | public function hasLocalModifications(): bool { 21 | return $this->hasLocalModifications; 22 | } 23 | 24 | public function interval(): JulianDayInterval { 25 | return $this->interval; 26 | } 27 | 28 | public function __construct( 29 | ?string $govId, 30 | ?int $type, 31 | bool $hasLocalModifications, 32 | JulianDayInterval $interval) { 33 | 34 | $this->govId = $govId; 35 | $this->type = $type; 36 | $this->hasLocalModifications = $hasLocalModifications; 37 | $this->interval = $interval; 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /Http/RequestHandlers/GovDataDelete.php: -------------------------------------------------------------------------------- 1 | getAttribute('type'); 27 | $key = (int)$request->getAttribute('key'); 28 | 29 | if (($type != null) && ($key != null)) { 30 | $prop = FunctionsGov::getProp($type, $key); 31 | } 32 | 33 | if ($prop === null) { 34 | return redirect(route(GovDataList::class)); 35 | } 36 | 37 | FunctionsGov::deletePropIfSticky($type, $key); 38 | 39 | $govId = $prop->getGovId(); 40 | $url = route(GovData::class, ['gov_id' => $govId]); 41 | return redirect($url); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /Schema/Migration2.php: -------------------------------------------------------------------------------- 1 | hasTable('gov_descriptions')) { 19 | DB::schema()->drop('gov_descriptions'); 20 | } 21 | 22 | //add 'sticky' column 23 | if (!DB::schema()->hasColumn('gov_labels', 'sticky')) { 24 | DB::schema()->table('gov_labels', static function (Blueprint $table): void { 25 | $table->boolean('sticky')->default(false)->after('to'); 26 | }); 27 | } 28 | 29 | if (!DB::schema()->hasColumn('gov_parents', 'sticky')) { 30 | DB::schema()->table('gov_parents', static function (Blueprint $table): void { 31 | $table->boolean('sticky')->default(false)->after('to'); 32 | }); 33 | } 34 | 35 | if (!DB::schema()->hasColumn('gov_types', 'sticky')) { 36 | DB::schema()->table('gov_types', static function (Blueprint $table): void { 37 | $table->boolean('sticky')->default(false)->after('to'); 38 | }); 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /HelpTexts.php: -------------------------------------------------------------------------------- 1 | ' . 17 | I18N::translate('You have multiple GOV Ids for the same place name.') . ' ' . 18 | I18N::translate('This was allowed in the webtrees 1.x version of this module, but turned out to be a bad idea for various reasons.') . ' ' . 19 | I18N::translate('Resetting this GOV Id will resolve this by assigning the new GOV Id as the single GOV Id of this place.') . ' ' . 20 | '

' . 21 | I18N::translate('You can still use GOV parish ids for religious events, and administrative ids for other events, but you\'ll have to disambiguate your place names accordingly.') . 22 | '

'; 23 | break; 24 | */ 25 | 26 | default: 27 | $title = MoreI18N::xlate('Help'); 28 | $text = MoreI18N::xlate('The help text has not been written for this item.'); 29 | break; 30 | } 31 | 32 | return view('modals/help', [ 33 | 'title' => $title, 34 | 'text' => $text, 35 | ]); 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /Schema/Migration1.php: -------------------------------------------------------------------------------- 1 | hasColumn('gov_ids', 'type') || DB::schema()->hasColumn('gov_ids', 'version')) { 19 | if (!DB::schema()->hasTable('gov_ids_temp')) { 20 | DB::schema()->create('gov_ids_temp', function (Blueprint $table): void { 21 | $table->integer('id', true); 22 | $table->text('name'); 23 | $table->string('gov_id', 32); 24 | }); 25 | } else { 26 | DB::table('gov_ids_temp')->delete(); 27 | } 28 | 29 | $datas = DB::table('gov_ids')->select(['id', 'name', 'gov_id'])->get(); 30 | $inserts = array(); 31 | foreach ($datas as $data) { 32 | $inserts[] = ['id' => $data->id, 33 | 'name' => $data->name, 34 | 'gov_id' => $data->gov_id]; 35 | } 36 | DB::table('gov_ids_temp')->insert($inserts); 37 | DB::schema()->drop('gov_ids'); 38 | DB::schema()->rename('gov_ids_temp', 'gov_ids'); 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /Model/GovHierarchy.php: -------------------------------------------------------------------------------- 1 | govId; 16 | } 17 | 18 | public function interval(): JulianDayInterval { 19 | return $this->interval; 20 | } 21 | 22 | public function adjustedLanguages(): ?array { 23 | return $this->adjustedLanguages; 24 | } 25 | 26 | public function labelsHtml(): string { 27 | return $this->labelsHtml; 28 | } 29 | 30 | public function typesHtml(): string { 31 | return $this->typesHtml; 32 | } 33 | 34 | public function hasLocalModifications(): bool { 35 | return $this->hasLocalModifications; 36 | } 37 | 38 | public function __construct( 39 | ?string $govId, 40 | JulianDayInterval $interval, 41 | ?array $adjustedLanguages, 42 | string $labelsHtml, 43 | string $typesHtml, 44 | bool $hasLocalModifications) { 45 | 46 | $this->govId = $govId; 47 | $this->interval = $interval; 48 | $this->adjustedLanguages = $adjustedLanguages; 49 | $this->labelsHtml = $labelsHtml; 50 | $this->typesHtml = $typesHtml; 51 | $this->hasLocalModifications = $hasLocalModifications; 52 | } 53 | 54 | public static function empty( 55 | JulianDayInterval $interval, 56 | array $adjustedLanguages): GovHierarchy { 57 | 58 | return new GovHierarchy(null, $interval, $adjustedLanguages, '', '', false); 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /Model/GovHierarchyRequestArgs.php: -------------------------------------------------------------------------------- 1 | locale; 19 | } 20 | 21 | public function languages(): array { 22 | return $this->languages; 23 | } 24 | 25 | public function languagesForTypes(): array { 26 | return $this->languagesForTypes; 27 | } 28 | 29 | public function compactDisplay(): bool { 30 | return $this->compactDisplay; 31 | } 32 | 33 | public function withInternalLinks(): int { 34 | return $this->withInternalLinks; 35 | } 36 | 37 | public function showSettlements(): bool { 38 | return $this->showSettlements; 39 | } 40 | 41 | public function showOrganizational(): bool { 42 | return $this->showOrganizational; 43 | } 44 | 45 | public function __construct( 46 | LocaleInterface $locale, 47 | array $languages, 48 | array $languagesForTypes, 49 | bool $compactDisplay, 50 | int $withInternalLinks, 51 | bool $showSettlements, 52 | bool $showOrganizational) { 53 | 54 | $this->locale = $locale; 55 | $this->languages = $languages; 56 | $this->languagesForTypes = $languagesForTypes; 57 | $this->compactDisplay = $compactDisplay; 58 | $this->withInternalLinks = $withInternalLinks; 59 | $this->showSettlements = $showSettlements; 60 | $this->showOrganizational = $showOrganizational; 61 | } 62 | 63 | 64 | } 65 | -------------------------------------------------------------------------------- /module.php: -------------------------------------------------------------------------------- 1 | filter(static function (string $filename): bool { 27 | // Special characters will break PHP variable names. 28 | // This also allows us to ignore modules called "foo.example" and "foo.disable" 29 | $module_name = basename(dirname($filename)); 30 | 31 | foreach (['.', ' ', '[', ']'] as $character) { 32 | if (str_contains($module_name, $character)) { 33 | return false; 34 | } 35 | } 36 | 37 | return strlen($module_name) <= 30; 38 | }) 39 | ->each(static function (string $filename): void { 40 | require_once $filename; 41 | }); 42 | 43 | //dependency check 44 | $ok = class_exists("Cissee\WebtreesExt\AbstractModule", true); 45 | if (!$ok) { 46 | FlashMessages::addMessage("Missing dependency - Make sure to install all Vesta modules!"); 47 | return; 48 | } 49 | 50 | //app/Application/Container isn't so much about IoC (we're calling 'app', after all, that's no inversion!) 51 | //but about autowiring dependencies (here: ModuleService) 52 | $placeholder = \Vesta\VestaUtils::get(PlaceholderModule::class); 53 | return $placeholder->ifIncompatible() ?? \Vesta\VestaUtils::get(Gov4WebtreesModule::class); 54 | -------------------------------------------------------------------------------- /TomSelectGovId.php: -------------------------------------------------------------------------------- 1 | module = $module; 19 | } 20 | 21 | /** 22 | * @param ServerRequestInterface $request 23 | * 24 | * @return ResponseInterface 25 | */ 26 | public function handle(ServerRequestInterface $request): ResponseInterface 27 | { 28 | $query = Validator::queryParams($request)->string('query'); 29 | 30 | $govId = $query; 31 | 32 | try { 33 | $ret = FunctionsGov::checkGovId($this->module, $govId); 34 | 35 | $results = ($ret !== null)?collect([[ 36 | 'id' => $ret, 37 | 'text' => $ret, 38 | 'title' => $ret, 39 | ]]):collect([]); 40 | 41 | return response([ 42 | 'total_count' => sizeof($results), 43 | 'incomplete_results' => false, 44 | 'items' => $results, 45 | ]); 46 | 47 | } catch (GOVServerUnavailableException $ex) { 48 | $this->module->flashGovServerUnavailable(); 49 | 50 | $results = collect([[ 51 | 'id' => $govId, 52 | 'text' => $govId, 53 | 'title' => $govId . " (". $this->module->messageGovServerUnavailable() . ")", 54 | ]]); 55 | 56 | return response([ 57 | 'total_count' => 1, 58 | 'incomplete_results' => true, 59 | 'items' => $results, 60 | ]); 61 | 62 | //cleaner but wasn't able to handle error case properly in tom select component 63 | /* 64 | return response([ 65 | 'error' => 'GOVServerUnavailable', 66 | ], StatusCodeInterface::STATUS_SERVICE_UNAVAILABLE); 67 | */ 68 | } 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /GovProperty.php: -------------------------------------------------------------------------------- 1 | key; 19 | } 20 | 21 | public function getGovId(): string { 22 | return $this->govId; 23 | } 24 | 25 | public function getProp() { 26 | return $this->prop; 27 | } 28 | 29 | public function getLanguage(): ?string { 30 | return $this->language; 31 | } 32 | 33 | public function getFrom(): ?int { 34 | return $this->from; 35 | } 36 | 37 | //exclusively! 38 | public function getTo(): ?int { 39 | return $this->to; 40 | } 41 | 42 | public function getInterval(): JulianDayInterval { 43 | return new JulianDayInterval($this->from, $this->to); 44 | } 45 | 46 | public function getSticky(): bool { 47 | return $this->sticky; 48 | } 49 | 50 | public function __construct( 51 | int $key, 52 | string $govId, 53 | $prop, 54 | ?string $language, 55 | ?int $from, 56 | ?int $to, 57 | bool $sticky) { 58 | 59 | parent::__construct($prop, $sticky); 60 | 61 | if ($from !== null) { 62 | if ($to <= $from) { 63 | //invalid, ignore! 64 | $to = null; 65 | } 66 | } 67 | 68 | $this->key = $key; 69 | $this->govId = $govId; 70 | $this->prop = $prop; 71 | $this->language = $language; 72 | $this->from = $from; 73 | $this->to = $to; 74 | $this->sticky = $sticky; 75 | } 76 | 77 | public function toString() { 78 | $str = " " . $this->getProp(); 79 | if ($this->getFrom() != null) { 80 | $ymd = cal_from_jd($this->getFrom(), CAL_GREGORIAN); 81 | $str .= " (from " . $ymd["year"] . "-" . $ymd["month"] . "-" . $ymd["day"] . ")"; 82 | } 83 | if ($this->getTo() != null) { 84 | $ymd = cal_from_jd($this->getTo(), CAL_GREGORIAN); 85 | $str .= " (to " . $ymd["year"] . "-" . $ymd["month"] . "-" . $ymd["day"] . ")"; 86 | } 87 | 88 | return $str; 89 | } 90 | 91 | } 92 | -------------------------------------------------------------------------------- /resources/css/webtrees.css: -------------------------------------------------------------------------------- 1 | .wt-icon-map-gov { 2 | /* compgen.png embedded via https://onlineimagetools.com/convert-image-to-data-uri */ 3 | content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAYAAADtc08vAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4wYBCB8OTwkjaAAAApFJREFUKM99kktsTHEUxn/nf29NTWfKtE2ox4xnGI9UhJAgYiGSkjQkEqFIxMKikYhHikhuV54LiYUEC4kgQoiNhbDwWtCmknpMi3jXa6o1VLVz7/8ei6pUg293kvM7Oef7jjBAmhEkrWjGCKhIWkPNiAEKgTwgkla/r9/8A45CuAxIacZxgdXAA2A3sLk/4w6E/YduCQXBXgyFQZd54g62mzFswSdBiIfK0j9WNsYjFtvRO0RBn3D22dWSzgPb52/VV1xrujysuaa68tSNU6mT2sL+Pk7EG3j9+bFnDk0/p6/xF89b5w8v2/bNPjJ64fCUAOo6jnqz24tjO99B3UHH8RK9jIcr4omqqRoSbzxdluiKdmYj3KxPEi0MYoEVfuRdp2bNvaHHz8/ka2cE0G3WslLEW6/q3XCBNHBpzMgvjE+20/i4nDDs9TYMDakROWJRn/HJdgojlvqmcvzASalyVMRbYYAagHhRD/GiPO25weivo0IVpk74xJWbE2nriHLn0gl2bbrVF15alVkGKAAIrCEIDMWxHuS3wcrdplEgcOd+knzOoXbjbeZUvAEcANcAx0D5kI3zPhtn9vRW9NcKRpQwFD53RGl5XsrHzzEQmDbxE+C8EKHBiEgj6NqXrSX2fqac+LAe5s54SxgK37sGca9pFInibuZUvAWF7h6Xpy9Ls1CwSdV72C/GI5NWVa68mKuPdN86k9RIZI9u3bDEJobU2uWLV9nKhdVqH4vmGiJX4VVJX4ziOHVYGwJ1vc/UQjUu3umLFUX7j8+7mxrxhQWzXrvLFrVMnjIu28xkqkSwZYla2jr2/fYLbS4A9UXSqH3klJlSuxxhKkqATx64LqO53v/t/yrNCP+TZpw/6p8QEBG1wZlcQAAAAABJRU5ErkJggg==); 4 | } 5 | 6 | .wt-icon-place { 7 | /* plac.png embedded via https://onlineimagetools.com/convert-image-to-data-uri */ 8 | content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4wgZCSkm2P+xwQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAADBUlEQVQ4y82TyWucdRjHv7/t3eadfRIzydigQy0VG0QsCq2CBE+Kh6JCL0IRL0FaaMFKQXvwUkqr4sFiPcdE1KJI0aZWQaHRaNrESRPbdyaZyUxmppNttszSd/l5SOv2F/g5PZfvh4dnIfgLCYAAkPTts+tJv1h9MRbMjnQ7FVlvlj68vVq/sJKbtcbHLsp3Tr2Lt948CtxN/AOpjH66cSERmx0ullPazM095WZ9OtB1wohGMoyLyGWfZx84cfKEfS/xt0B4ZipFpmYyzq4fJ5ZLpjIv1jYsXVUkhB72QAda8d7ZuCKMedKHJ44ffL0JAPS98W3ZqfNkJJlY353+7Uq7sOLr/Pr7/qXF4qGUpq2ofiMdjASvxTh3wBU8rNT1EQAYv3juXgeSpBYq7czc1+r0TAr5laIE0wjozqaihrxIpBzoOE9WQaJ2OLwWCIW33COvHvQBBBQAvvrGO07b19Vb6Tyyy2vo3BEERINpZM3N6t4CIY4b8FnB/r5LkVLpkUY6s5edPD32BoBtwaMPWcM3rWUsF8qo1hqglIISAg86emOTifTiIYuzKjHjz7EOe1CvlAc2II1nAYADwOjYbCER30C5vApK6d2lEkAKqFrZP9A/kUhbr2Wb1Ex0m6C20+XpW4EcADAAuPL9A3M3rMZh06jalEsmhArOBYTgYFwlmm4r/YmrwamppyuNllZvuYVY17Fezsx9UWXbQ7y66ZHB3bqqJkOhlkKZCqFwuK7PVhRKDIPgp8lX1rbahqOqWzpc69J3n73w8dnh98EG9x1DLT+JaBQLmZxx4P4BVdMUyrki0Gr7bcOU9PxHj992WEQ2ahmj213QC9YHnzc2M79MLH3rslp+Esld+5BbnF4Nhb0brme8FIuqCmUCfr/kggNNPObu6MuF1zcXjWrlk/FS9vIogPy/LjEx2I9CrgjKEHlq/zNnenp7nhea2fNHdqed3NGqXZ+r/1xc+vJcu577AUCbEAopvf/8AgPgbpdDQ0P3UT0Zr3fCMjt/reLZMyX8L/kTDRpJZHMVLaEAAAAASUVORK5CYII=); 9 | } 10 | -------------------------------------------------------------------------------- /patchedWebtrees/Elements/GovIdentifierExt.php: -------------------------------------------------------------------------------- 1 | span'; 37 | 38 | $html = ''; 39 | 40 | //this could be simplified now ($module is actually own module) 41 | //or move this to common? not easy to decide who's responsible for interselection (_LOC:_GOV) 42 | $additionalControls = GovIdEditControlsUtils::accessibleModules($tree, Auth::user()) 43 | ->map(function (GovIdEditControlsInterface $module) use ($value, $id, $name, $placeNameSelector) { 44 | //TODO 45 | return $module->govIdEditControl( 46 | ($value === '')?null:$value, 47 | $id, 48 | $name, 49 | '', 50 | $placeNameSelector, 51 | false, 52 | false); 53 | }) 54 | ->toArray(); 55 | 56 | foreach ($additionalControls as $additionalControl) { 57 | $html .= $additionalControl->getMain(); 58 | //apparently handled properly 59 | View::push('javascript'); 60 | echo $additionalControl->getScript(); 61 | View::endpush(); 62 | } 63 | 64 | if ($html !== '') { 65 | return $html; 66 | } 67 | 68 | return parent::edit($id, $name, $value, $tree); 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /resources/views/modals/edit-gov-mapping.phtml: -------------------------------------------------------------------------------- 1 | 5 | 6 |
" id="wt-modal-form" method="POST"> 12 | 13 | 14 | $title]) ?> 15 | 16 | 30 | 31 | 32 | 33 |
34 | 35 | 36 | 37 | 38 | 73 | -------------------------------------------------------------------------------- /resources/views/admin/gov-data-list.phtml: -------------------------------------------------------------------------------- 1 | $breadcrumbs 9 | * @var string $title 10 | */ 11 | 12 | $icon = ''; 13 | 14 | ?> 15 | 16 | $breadcrumbs]) ?> 17 | 18 |

19 | 20 |

21 | 22 |

23 | 24 |

25 | 29 |

30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | $row) : ?> 41 | 42 | 43 | 49 | 50 | 57 | 58 | 65 | 66 | 67 | 68 |
44 | 48 | 51 | 52 | 53 | 54 | 55 | 56 | 59 | 60 | 61 | 62 | 63 | 64 |
69 | 70 | 71 | /* _persistent_ toggle disabled, performance is problematic in large lists */ 72 | 73 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /Schema/Migration0.php: -------------------------------------------------------------------------------- 1 | hasTable('gov_ids')) { 17 | DB::schema()->create('gov_ids', function (Blueprint $table): void { 18 | $table->integer('id', true); 19 | $table->text('name'); 20 | $table->string('gov_id', 32); 21 | }); 22 | } 23 | 24 | if (!DB::schema()->hasTable('gov_objects')) { 25 | DB::schema()->create('gov_objects', function (Blueprint $table): void { 26 | $table->string('gov_id', 32); 27 | $table->double('lat')->nullable(); 28 | $table->double('lon')->nullable(); 29 | $table->bigInteger('version', false, true); 30 | $table->primary(['gov_id']); 31 | }); 32 | } 33 | 34 | if (!DB::schema()->hasTable('gov_labels')) { 35 | DB::schema()->create('gov_labels', function (Blueprint $table): void { 36 | $table->integer('key', true); 37 | $table->string('gov_id', 32); 38 | $table->string('label', 128); 39 | $table->string('language', 32)->nullable(); 40 | $table->mediumInteger('from')->nullable(); 41 | $table->mediumInteger('to')->nullable(); 42 | $table->index(['gov_id']); 43 | }); 44 | } 45 | 46 | if (!DB::schema()->hasTable('gov_types')) { 47 | DB::schema()->create('gov_types', function (Blueprint $table): void { 48 | $table->integer('key', true); 49 | $table->string('gov_id', 32); 50 | $table->integer('type'); 51 | $table->mediumInteger('from')->nullable(); 52 | $table->mediumInteger('to')->nullable(); 53 | $table->index(['gov_id']); 54 | }); 55 | } 56 | 57 | if (!DB::schema()->hasTable('gov_parents')) { 58 | DB::schema()->create('gov_parents', function (Blueprint $table): void { 59 | $table->integer('key', true); 60 | $table->string('gov_id', 32); 61 | $table->string('parent_id', 32); 62 | $table->mediumInteger('from')->nullable(); 63 | $table->mediumInteger('to')->nullable(); 64 | $table->index(['gov_id']); 65 | }); 66 | } 67 | 68 | if (!DB::schema()->hasTable('gov_descriptions')) { 69 | DB::schema()->create('gov_descriptions', function (Blueprint $table): void { 70 | $table->integer('type'); 71 | $table->string('lang', 8); 72 | $table->string('description', 128); 73 | $table->mediumInteger('from')->nullable(); 74 | $table->mediumInteger('to')->nullable(); 75 | $table->primary(['type', 'lang']); 76 | }); 77 | } 78 | } 79 | 80 | } 81 | -------------------------------------------------------------------------------- /Model/JulianDayInterval.php: -------------------------------------------------------------------------------- 1 | from; 14 | } 15 | 16 | public function getToExclusively(): ?int { 17 | return $this->toExclusively; 18 | } 19 | 20 | public function __construct( 21 | ?int $from, 22 | ?int $toExclusively) { 23 | 24 | $this->from = $from; 25 | $this->toExclusively = $toExclusively; 26 | 27 | //sanity check 28 | if (($from ?? PHP_INT_MIN) >= ($toExclusively ?? PHP_INT_MAX)) { 29 | throw new \Exception(); 30 | } 31 | } 32 | 33 | public static function open(): JulianDayInterval { 34 | return new JulianDayInterval(null, null); 35 | } 36 | 37 | public static function single(int $from): JulianDayInterval { 38 | return new JulianDayInterval($from, $from+1); 39 | } 40 | 41 | public function asGedcomDateInterval(): GedcomDateInterval { 42 | $toExclusively = $this->getToExclusively(); 43 | return new GedcomDateInterval($this->getFrom(), ($toExclusively === null)?null:$toExclusively-1); 44 | } 45 | 46 | /** 47 | * 48 | * @param JulianDayInterval $other 49 | * @return JulianDayInterval|null merged interval, if they are directly adjacent; null otherwise 50 | */ 51 | public function append( 52 | JulianDayInterval $other): ?JulianDayInterval { 53 | 54 | if (($this->getToExclusively() !== null) && ($this->getToExclusively() === $other->getFrom())) { 55 | return new JulianDayInterval($this->getFrom(), $other->getToExclusively()); 56 | } 57 | 58 | return null; 59 | } 60 | 61 | public function overlaps( 62 | JulianDayInterval $other): bool { 63 | 64 | $thisFrom = $this->getFrom() ?? PHP_INT_MIN; 65 | $thisToExclusively = $this->getToExclusively() ?? PHP_INT_MAX; 66 | 67 | $otherFrom = $other->getFrom() ?? PHP_INT_MIN; 68 | $otherToExclusively = $other->getToExclusively() ?? PHP_INT_MAX; 69 | 70 | if ($thisFrom < $otherFrom) { 71 | return $thisToExclusively > $otherFrom; 72 | } 73 | 74 | if ($thisFrom === $otherFrom) { 75 | return true; 76 | } 77 | 78 | return $otherToExclusively > $thisFrom; 79 | } 80 | 81 | public function includes( 82 | JulianDayInterval $other): bool { 83 | 84 | $thisFrom = $this->getFrom() ?? PHP_INT_MIN; 85 | $thisToExclusively = $this->getToExclusively() ?? PHP_INT_MAX; 86 | 87 | $otherFrom = $other->getFrom() ?? PHP_INT_MIN; 88 | $otherToExclusively = $other->getToExclusively() ?? PHP_INT_MAX; 89 | 90 | return ($thisFrom <= $otherFrom) && 91 | ($thisToExclusively >= $otherToExclusively); 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /Http/RequestHandlers/GovDataList.php: -------------------------------------------------------------------------------- 1 | module = $module; 34 | } 35 | 36 | /** 37 | * @param ServerRequestInterface $request 38 | * 39 | * @return ResponseInterface 40 | */ 41 | public function handle(ServerRequestInterface $request): ResponseInterface 42 | { 43 | 44 | $breadcrumbs = []; 45 | 46 | $title = I18N::translate('GOV data'); 47 | 48 | $breadcrumbs[route(ControlPanel::class)] = MoreI18N::xlate('Control panel'); 49 | $breadcrumbs[route(ModulesAllPage::class)] = MoreI18N::xlate('Modules'); 50 | $breadcrumbs[$this->module->getConfigLink()] = $this->module->title(); 51 | $breadcrumbs[] = $title; 52 | 53 | $this->layout = 'layouts/administration'; 54 | 55 | $locale = I18N::locale(); 56 | 57 | $rows = []; 58 | 59 | foreach (FunctionsGov::allGovIds() as $govId) { 60 | $gov = FunctionsGov::retrieveGovObject($this->module, $govId); 61 | 62 | if ($gov != null) { 63 | $languages = GovHierarchyUtils::getResolvedLanguages($this->module, $locale, $govId); 64 | $sortBy = $gov->getResolvedLabel($languages)->getProp(); 65 | $label = $gov->formatForAdminView($this->module, $languages); 66 | $lat = $gov->getLat(); 67 | $lon = $gov->getLon(); 68 | $hasStickyProp = $gov->hasStickyProp(); 69 | 70 | $rows[$govId] = [ 71 | 'sortBy' => $sortBy, 72 | 'label' => $label, 73 | 'lat' => $lat, 74 | 'lon' => $lon, 75 | 'hasStickyProp' => $hasStickyProp, 76 | ]; 77 | } 78 | } 79 | 80 | uasort($rows, static function (array $x, array $y): int { 81 | return I18N::comparator()($x['sortBy'], $y['sortBy']); 82 | }); 83 | 84 | $view = $this->module->name() . '::admin/gov-data-list'; 85 | 86 | return $this->viewResponse($view, [ 87 | 'title' => $title, 88 | 'breadcrumbs' => $breadcrumbs, 89 | 'rows' => $rows, 90 | ]); 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /resources/views/script/tom-select-initializer-gov.phtml: -------------------------------------------------------------------------------- 1 | webtrees.initializeTomSelect(element)); 15 | */ 16 | ?> 17 | 18 | /** 19 | * Initialize a tom-select input 20 | * @param {Element} element 21 | * @returns {TomSelect} 22 | */ 23 | webtrees.initializeTomSelectGov = function (element) { 24 | 25 | if (element.tomselect) { 26 | return element.tomselect; 27 | } 28 | 29 | let options = {}; 30 | 31 | options = { 32 | 35 | valueField: 'id', 36 | 37 | plugins: ['dropdown_input','remove_button'], 38 | render: { 39 | item: (data, escape) => '
' + data.text + '
', 40 | //use different field in order to be able to display additional info 41 | option: (data, escape) => '
' + data.title + '
', 42 | not_loading: (data, escape) => '
'+ + '
', 43 | no_results: (data, escape) => { 44 | return '
'+ + '
'; 45 | }, 46 | }, 47 | shouldLoad: function (query) { 48 | 52 | return query.length >= 10; 53 | }, 54 | load: function (query, callback) { 55 | 56 | 61 | var url_ = new URL(element.dataset.url); 62 | url_.searchParams.set('query', query); 63 | 64 | var url = url_.href; 65 | 66 | fetch(url) 67 | .then(response => { 68 | /* 69 | //attempts to handle error directly, manual json handled differently though (unclear why) 70 | if (!response.ok) { 71 | return Promise.resolve({items: [{id:"object_1086217", text: "error", title:""}]}); 72 | } 73 | */ 74 | return response.json(); 75 | }).then(json => { 76 | callback(json.items); 77 | }).catch(() => { 78 | callback(); 79 | }); 80 | }, 81 | }; 82 | 83 | return new TomSelect(element, options); 84 | } 85 | 86 | // Activate autocomplete fields 87 | //note: using just .tom-select-gov runs into https://github.com/orchidjs/tom-select/pull/770 88 | this.querySelectorAll('select.tom-select-gov').forEach(element => webtrees.initializeTomSelectGov(element)); 89 | -------------------------------------------------------------------------------- /Http/RequestHandlers/GovData.php: -------------------------------------------------------------------------------- 1 | module = $module; 35 | } 36 | 37 | /** 38 | * @param ServerRequestInterface $request 39 | * 40 | * @return ResponseInterface 41 | */ 42 | public function handle(ServerRequestInterface $request): ResponseInterface 43 | { 44 | $govId = $request->getAttribute('gov_id'); 45 | 46 | //TODO force reload while we're at it? 47 | //but perhaps not after each single edit? 48 | //add 'reload' button? 49 | $gov = FunctionsGov::retrieveGovObject($this->module, $govId); 50 | 51 | if ($gov == null) { 52 | //$error = I18N::translate("Invalid GOV id! Valid GOV ids are e.g. 'EITTZE_W3091', 'object_1086218'."); 53 | //return response(['html' => $error], StatusCodeInterface::STATUS_CONFLICT); 54 | 55 | return redirect(route(GovDataList::class)); 56 | } 57 | 58 | $locale = I18N::locale(); 59 | $languages = GovHierarchyUtils::getResolvedLanguages($this->module, $locale, $govId); 60 | $languagesForTypes = GovHierarchyUtils::getResolvedLanguagesForTypes($this->module, $locale); 61 | $label = $gov->getResolvedLabel($languages)->getProp(); 62 | 63 | $breadcrumbs = []; 64 | 65 | $icon = ''; 66 | 67 | $title = I18N::translate('GOV data for %1$s', $label); 68 | $titlePlus = I18N::translate('GOV data for %1$s', $icon . FunctionsGov::aToGovServer($govId, $label)); 69 | 70 | $breadcrumbs[route(ControlPanel::class)] = MoreI18N::xlate('Control panel'); 71 | $breadcrumbs[route(ModulesAllPage::class)] = MoreI18N::xlate('Modules'); 72 | $breadcrumbs[$this->module->getConfigLink()] = $this->module->title(); 73 | $breadcrumbs[route(GovDataList::class)] = I18N::translate('GOV data'); 74 | $breadcrumbs[] = $label; 75 | 76 | $this->layout = 'layouts/administration'; 77 | 78 | $view = $this->module->name() . '::admin/gov-data'; 79 | 80 | return $this->viewResponse($this->module->name() . '::admin/gov-data', [ 81 | 'title' => $title, 82 | 'breadcrumbs' => $breadcrumbs, 83 | 'module' => $this->module, 84 | 'titlePlus' => $titlePlus, 85 | 'gov' => $gov, 86 | 'languages' => $languages, 87 | 'languagesForTypes' => $languagesForTypes, 88 | ]); 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /PlaceholderModule.php: -------------------------------------------------------------------------------- 1 | minRequiredWebtreesVersion(); 52 | 53 | //min version check 54 | $version_ok = version_compare(Webtrees::VERSION, $min_version) >= 0; 55 | if (!$version_ok) { 56 | return CommonI18N::noopModuleMin($min_version); 57 | } 58 | 59 | $max_version = $this->minUnsupportedWebtreesVersion(); 60 | 61 | //max version check (allow current dev version though) 62 | $version_ok = (Webtrees::VERSION === $max_version.'-dev') || (version_compare($max_version, Webtrees::VERSION) > 0); 63 | if (!$version_ok) { 64 | return CommonI18N::noopModuleMax($max_version); 65 | } 66 | 67 | return ''; 68 | } 69 | 70 | public function ifIncompatible(): ?PlaceholderModule { 71 | $min_version = $this->minRequiredWebtreesVersion(); 72 | 73 | //min version check 74 | $version_ok = version_compare(Webtrees::VERSION, $min_version) >= 0; 75 | if (!$version_ok) { 76 | return $this; 77 | } 78 | 79 | $max_version = $this->minUnsupportedWebtreesVersion(); 80 | 81 | //max version check (allow current dev version though) 82 | $version_ok = (Webtrees::VERSION === $max_version.'-dev') || (version_compare($max_version, Webtrees::VERSION) > 0); 83 | if (!$version_ok) { 84 | return $this; 85 | } 86 | 87 | return null; 88 | } 89 | 90 | public function boot(): void { 91 | //flash, but only once per day 92 | $title = $this->title(); 93 | 94 | $cache = Registry::cache()->file(); 95 | $key = $title . '-placeholder-flash'; 96 | $cache->remember($key, function () use ($title) { 97 | FlashMessages::addMessage(CommonI18N::noopModuleMessage($title)); 98 | }, 24*3600); 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /patchedWebtrees/Elements/GovIdTypeExt.php: -------------------------------------------------------------------------------- 1 | module = $module; 25 | } 26 | 27 | public function edit(string $id, string $name, string $value, Tree $tree): string 28 | { 29 | $values = $this->valuesGrouped(); 30 | 31 | if ($values !== []) { 32 | $value = $this->canonical($value); 33 | 34 | // Ensure the current data is in the list. 35 | $isInList = false; 36 | foreach ($values as $k => $v) { 37 | if (array_key_exists($value, $v)) { 38 | $isInList = true; 39 | break; 40 | } 41 | } 42 | if (!$isInList) { 43 | $values = ["" => ["" => "", $value => $value]] + $values; 44 | } else { 45 | $values = ["" => ["" => ""]] + $values; 46 | } 47 | 48 | // We may use markup to display values, but not when editing them. 49 | $values = array_map(static fn (array $xx): array => array_map(static fn (string $x): string => strip_tags($x), $xx), $values); 50 | 51 | return view('components/select-with-optgroup', [ 52 | 'id' => $id, 53 | 'name' => $name, 54 | 'optionsByGroup' => $values, 55 | 'selected' => $value, 56 | ]); 57 | } 58 | 59 | $attributes = [ 60 | 'class' => 'form-control', 61 | 'dir' => 'auto', 62 | 'type' => 'text', 63 | 'id' => $id, 64 | 'name' => $name, 65 | 'value' => $value, 66 | 'maxlength' => static::MAXIMUM_LENGTH, 67 | 'pattern' => static::PATTERN, 68 | ]; 69 | 70 | return ''; 71 | } 72 | 73 | /** 74 | * A list of controlled values for this element 75 | * 76 | * @return array> 77 | */ 78 | public function valuesGrouped(): array 79 | { 80 | $locale = I18N::locale(); 81 | $values = FunctionsGov::getGovTypeIdsByTypeGroup($this->module, $locale); 82 | 83 | /* 84 | array_walk($values, static function (string &$value, $key): void { 85 | if (is_int($key)) { 86 | $value .= ' — ... ' . I18N::number($key); 87 | } 88 | }); 89 | */ 90 | 91 | return $values; 92 | } 93 | 94 | /** 95 | * A list of controlled values for this element 96 | * 97 | * @return array 98 | */ 99 | public function values(): array { 100 | 101 | $valuesGrouped = $this->valuesGrouped(); 102 | 103 | //does not preserve int keys argh 104 | //$values = array_merge(...array_values($valuesGrouped)); 105 | 106 | $values = []; 107 | foreach ($valuesGrouped as $valuesInGroup) { 108 | foreach ($valuesInGroup as $key => $value) { 109 | $values[$key] = $value; 110 | } 111 | } 112 | 113 | return $values; 114 | } 115 | } 116 | -------------------------------------------------------------------------------- /resources/views/edit/gov-id-edit-control.phtml: -------------------------------------------------------------------------------- 1 | 12 | 13 |
14 | 15 | 18 | 19 | 22 | 23 | 26 | 27 |
28 | 29 |
30 | 31 | 32 | 33 |
34 |
35 |
36 | 37 | 38 |
39 | 40 | 47 | 48 | 67 | 68 | 69 | 84 | 85 | 90 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /Http/RequestHandlers/GovDataSave.php: -------------------------------------------------------------------------------- 1 | getParsedBody(); 28 | 29 | //error_log(print_r($params, true)); 30 | 31 | $key = (int) $params['key']; 32 | $type = $params['type']; 33 | $sticky = (bool) $params['sticky']; 34 | 35 | $govId = $params['govId']; 36 | $from = $params['from']; 37 | $to = $params['to']; 38 | 39 | $fromJD = null; 40 | if ($from != null) { 41 | //$fromJD = (Carbon::parse($from))->julianDay(); is off by one wtf (timezone issue?) 42 | $dateTime = DateTime::createFromFormat('Y-m-d', $from); 43 | $fromJD = gregoriantojd( 44 | (int) $dateTime->format('m'), 45 | (int) $dateTime->format('d'), 46 | (int) $dateTime->format('Y')); 47 | } 48 | 49 | $toJD = null; 50 | if ($to != null) { 51 | $dateTime = DateTime::createFromFormat('Y-m-d', $to); 52 | $toJD = gregoriantojd( 53 | (int) $dateTime->format('m'), 54 | (int) $dateTime->format('d'), 55 | (int) $dateTime->format('Y')) + 1; //exclusively! 56 | } 57 | 58 | $prop = null; 59 | $language = null; 60 | 61 | if ($type == 'label') { 62 | $prop = $params['prop']; 63 | 64 | $text = $params['text']; 65 | if (($text !== null) && (is_array($text))) { 66 | $language = reset($text); 67 | 68 | //meh (why do we use text[] anyway? cf gov-language-edit-control) 69 | } 70 | } else if ($type == 'type') { 71 | $text = $params['text']; 72 | if (($text !== null) && (is_array($text))) { 73 | $prop = (int) reset($text); 74 | 75 | //meh (why do we use text[] anyway? cf gov-type-id-edit-control) 76 | if ($prop === 0) { 77 | $prop = null; 78 | } 79 | } 80 | } else if ($type == 'parent') { 81 | $prop = $params['prop']; 82 | } 83 | 84 | /* 85 | error_log("key: " . $key); 86 | error_log("type: " . $type); 87 | error_log("sticky: " . $sticky); 88 | 89 | error_log("prop: " . $prop); 90 | error_log("language: " . $language); 91 | error_log("fromJD: " . $fromJD); 92 | error_log("toJD: " . $toJD); 93 | */ 94 | 95 | if (($key !== null) && ($govId !== null) && ($prop !== null)) { 96 | $govProperty = new GovProperty( 97 | $key, 98 | $govId, 99 | $prop, 100 | $language, 101 | $fromJD, 102 | $toJD, 103 | $sticky); 104 | 105 | if ($type == 'label') { 106 | FunctionsGov::setPropLabel($govProperty); 107 | } else if ($type == 'type') { 108 | FunctionsGov::setPropType($govProperty); 109 | } else if ($type == 'parent') { 110 | FunctionsGov::setPropParent($govProperty); 111 | } 112 | 113 | //$message = MoreI18N::xlate('The details for “%s” have been updated.', e($key)); 114 | //FlashMessages::addMessage($message, 'success'); 115 | } 116 | 117 | $url = route(GovData::class, ['gov_id' => $govId]); 118 | 119 | return redirect($url); 120 | } 121 | 122 | } 123 | -------------------------------------------------------------------------------- /Http/RequestHandlers/GovDataEdit.php: -------------------------------------------------------------------------------- 1 | module = $module; 35 | } 36 | 37 | /** 38 | * @param ServerRequestInterface $request 39 | * 40 | * @return ResponseInterface 41 | */ 42 | public function handle(ServerRequestInterface $request): ResponseInterface 43 | { 44 | $type = $request->getAttribute('type'); 45 | $key = (int)$request->getAttribute('key'); 46 | 47 | 48 | if (($type != null) && ($key != null)) { 49 | $prop = FunctionsGov::getProp($type, $key); 50 | } 51 | 52 | if ($prop === null) { 53 | return redirect(route(GovDataList::class)); 54 | } 55 | 56 | $govId = $prop->getGovId(); 57 | $gov = FunctionsGov::retrieveGovObject($this->module, $govId); 58 | 59 | if ($gov == null) { 60 | return redirect(route(GovDataList::class)); 61 | } 62 | 63 | $locale = I18N::locale(); 64 | $languages = GovHierarchyUtils::getResolvedLanguages($this->module, $locale, $govId); 65 | $label = $gov->getResolvedLabel($languages)->getProp(); 66 | 67 | $breadcrumbs = []; 68 | 69 | $typeLabel = ''; 70 | if ($type == 'type') { 71 | $typeLabel = I18N::translate('GOV Object Type'); 72 | } else if ($type == 'label') { 73 | $typeLabel = I18N::translate('GOV Name'); 74 | } else if ($type == 'parent') { 75 | $typeLabel = I18N::translate('GOV Parent'); 76 | } 77 | 78 | $placename = null; 79 | if ($type == 'parent') { 80 | $govIdParent = $prop->getProp(); 81 | $gov = FunctionsGov::retrieveGovObject($this->module, $govIdParent); 82 | if ($gov !== null) { 83 | $languages = GovHierarchyUtils::getResolvedLanguages($this->module, $locale, $govIdParent); 84 | $placename = $gov->getResolvedLabel($languages)->getProp(); 85 | } //else inconsistency 86 | } 87 | 88 | $icon = ''; 89 | 90 | $title = I18N::translate('Edit %1$s for %2$s', $typeLabel, $label); 91 | $titlePlus = I18N::translate('Edit %1$s for %2$s', $typeLabel, $icon . FunctionsGov::aToGovServer($govId, $label)); 92 | 93 | $breadcrumbs[route(ControlPanel::class)] = MoreI18N::xlate('Control panel'); 94 | $breadcrumbs[route(ModulesAllPage::class)] = MoreI18N::xlate('Modules'); 95 | $breadcrumbs[$this->module->getConfigLink()] = $this->module->title(); 96 | $breadcrumbs[route(GovDataList::class)] = I18N::translate('GOV data'); 97 | $breadcrumbs[route(GovData::class, ['gov_id' => $govId])] = $label; 98 | $breadcrumbs[] = $typeLabel; 99 | 100 | $this->layout = 'layouts/administration'; 101 | 102 | return $this->viewResponse($this->module->name() . '::admin/gov-data-edit', [ 103 | 'title' => $title, 104 | 'breadcrumbs' => $breadcrumbs, 105 | 'module' => $this->module, 106 | 'titlePlus' => $titlePlus, 107 | 'prop' => $prop, 108 | 'type' => $type, 109 | 'typeLabel' => $typeLabel, 110 | 'gov' => $gov, 111 | 'placename' => $placename, 112 | ]); 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /resources/views/admin/gov-data-edit.phtml: -------------------------------------------------------------------------------- 1 | $breadcrumbs 13 | * etc 14 | */ 15 | ?> 16 | 17 | $breadcrumbs]) ?> 18 | 19 |

20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 |
28 | 31 |
32 | 35 |
36 | 37 |
38 | govTypeIdEditControl($prop->getProp(), 'prop', 'prop'); 41 | echo $gve->getMain(); 42 | //assuming there is no script 43 | } else if ($type === 'parent') { 44 | $gve = $module->govIdEditControl($prop->getProp(), 'prop', 'prop', $placename, null, false, false); 45 | echo $gve->getMain(); 46 | View::push('javascript'); 47 | echo $gve->getScript(); 48 | View::endpush(); 49 | } 50 | ?> 51 |
52 |
53 | 54 | 55 |
56 | 59 |
60 | govLanguageEditControl($prop->getLanguage(), 'lang', 'lang'); 62 | echo $gve->getMain(); 63 | //assuming there is no script 64 | ?> 65 |
66 |
67 | 68 | 69 | getFrom(); 73 | if ($from !== null) { 74 | $fromValue = (new GregorianDate($from))->format('%Y-%m-%d'); 75 | } 76 | 77 | $toValue = ''; 78 | 79 | $to = $prop->getTo(); 80 | if ($to !== null) { 81 | //to is exclusively - we display inclusively! 82 | $toValue = (new GregorianDate($to-1))->format('%Y-%m-%d'); 83 | } 84 | ?> 85 | 86 |
87 | 90 |
91 |
92 | 93 |
94 |
95 |
96 | 97 |
98 | 101 |
102 |
103 | 104 |
105 |
106 |
107 | 108 |
109 |
110 | 113 | 114 | 115 | 116 |
117 |
118 | 119 |
120 | -------------------------------------------------------------------------------- /EditGovMappingController.php: -------------------------------------------------------------------------------- 1 | module = $module; 31 | } 32 | 33 | /** 34 | * Show a form to create or update a gov mapping. 35 | * 36 | * @return Response 37 | */ 38 | public function editGovMapping( 39 | ServerRequestInterface $request, 40 | Tree $tree): ResponseInterface { 41 | 42 | //set delay here to mimic slow servers and to test whether select2 is properly initialized (issue #9) 43 | //sleep(2); 44 | 45 | $govId = null; 46 | 47 | $placeName = Requests::getString($request, 'place-name'); 48 | $ps = PlaceStructure::fromName($placeName, $tree); 49 | 50 | if ($ps != null) { 51 | //do not use plac2gov here - we're only interested in actual direct mappings at this point! 52 | $govId = Gov4WebtreesModule::plac2govViaMappingTable($ps); 53 | } 54 | 55 | //'cleanup' use case (multiple GOV ids mapped): handled silently now 56 | //should we address this explicitly? E.g. show warning icon next to edit control? 57 | if ($govId === null) { 58 | $title = I18N::translate('Set GOV id for %1$s', $placeName); 59 | } else { 60 | $title = I18N::translate('Reset GOV id for %1$s', $placeName); 61 | } 62 | 63 | $viewName = $this->module->name() . '::modals/edit-gov-mapping'; 64 | 65 | $html = view($viewName, [ 66 | 'moduleName' => $this->module->name(), 67 | 'placeName' => $placeName, 68 | 'title' => $title, 69 | 'govId' => $govId, 70 | ]); 71 | 72 | return response($html); 73 | } 74 | 75 | /** 76 | * Process a form to create or update a gov mapping. 77 | * 78 | * @param Request $request 79 | * @param Tree $tree 80 | * 81 | * @return JsonResponse 82 | */ 83 | public function editGovMappingAction(ServerRequestInterface $request): ResponseInterface { 84 | $placeName = Requests::getString($request, 'place-name'); 85 | $govId = Requests::getString($request, 'gov-id'); 86 | 87 | if ($govId === '') { 88 | FunctionsGov::deleteGovId($placeName); 89 | FlashMessages::addMessage(I18N::translate('GOV id for %1$s has been removed.', $placeName)); 90 | 91 | //no need to return data, we'll just close the modal from which this has been called 92 | return response(); 93 | } 94 | 95 | //test whether id is valid 96 | try { 97 | $gov = FunctionsGov::loadGovObject($this->module, $govId); 98 | } catch (GOVServerUnavailableException $e) { 99 | $error = $this->module->messageGovServerUnavailable(); 100 | 101 | return response(['html' => $error], StatusCodeInterface::STATUS_CONFLICT); 102 | } 103 | 104 | //unexpected to occur anymore now that we validate via select2GovId (where the same I18N string is used) 105 | if ($gov == null) { 106 | $error = I18N::translate("Invalid GOV id! Valid GOV ids are e.g. 'EITTZE_W3091', 'object_1086218'."); 107 | 108 | return response(['html' => $error], StatusCodeInterface::STATUS_CONFLICT); 109 | } 110 | 111 | //reset in order to reload hierarchy 112 | FunctionsGov::deleteGovObject($govId); 113 | 114 | FunctionsGov::setGovId($placeName, $govId); 115 | 116 | FlashMessages::addMessage(I18N::translate('GOV id for %1$s has been set to %2$s.', $placeName, $govId)); 117 | 118 | //no need to return data, we'll just close the modal from which this has been called 119 | return response(); 120 | } 121 | 122 | //webtrees 2.0 123 | public function select2GovId( 124 | ServerRequestInterface $request): ResponseInterface { 125 | 126 | //$page = (int) ($request->getParsedBody()['page'] ?? 1); 127 | $govId = $request->getParsedBody()['q'] ?? ''; 128 | 129 | try { 130 | $ret = FunctionsGov::checkGovId($this->module, $govId); 131 | 132 | $results = ($ret !== null)?collect([[ 133 | 'id' => $ret, 134 | 'text' => $ret, 135 | 'title' => ' ', 136 | ]]):collect([]); 137 | 138 | return response([ 139 | 'results' => $results, 140 | 'pagination' => [ 141 | 'more' => false, 142 | ], 143 | ]); 144 | } catch (GOVServerUnavailableException $ex) { 145 | $this->module->flashGovServerUnavailable(); 146 | return response([ 147 | 'error' => 'GOVServerUnavailable', 148 | ], StatusCodeInterface::STATUS_SERVICE_UNAVAILABLE); 149 | } 150 | } 151 | } 152 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # ⚶ Vesta Gov4Webtrees (Webtrees Custom Module) 3 | 4 | This [webtrees](https://www.webtrees.net/) custom module provides data to an extended 'Facts and Events' tab, enhancing events with [GOV](http://gov.genealogy.net) (historic gazetteer) data. 5 | The project’s website is [cissee.de](https://cissee.de). 6 | 7 | See [here](https://github.com/vesta-webtrees-2-custom-modules/vesta_common/blob/master/docs/LocationData.md) for an overview of location data management in webtrees. 8 | 9 | ## Contents 10 | 11 | * [Features](#features) 12 | * [Disclosure to third parties](#disclosure) 13 | * [Demo](#demo) 14 | * [Download](#download) 15 | * [Installation](#installation) 16 | * [License](#license) 17 | 18 | ### Features 19 | 20 | * Historic and current GOV data is loaded from the GOV server, cached internally, and displayed for individual facts and events. 21 | * Location data (map coordinates) is also used, if available, for map links and other custom modules. 22 | * GOV ids have to be entered manually, once per place name. They may be managed in different ways (depending on the module administration settings): 23 | 24 |

Screenshot

25 | 26 | 1. GOV ids outside GEDCOM data. In this case, the GOV ids are stored in a separate database table, which has to be managed manually when moving the respective tree to a different webtrees installation. 27 | Note that the edit controls have been moved: They are now grouped with the other edit controls (circled red in the screenshot). 28 | 29 | 2. GOV ids within GEDCOM data. GOV ids may also be set via the Shared Places module. In this case, they are exported via GEDCOM data. 30 | Here, the GOV icon grouped with the edit controls just reloads the place hierarchy from the GOV server. 31 | When creating or updating shared places, the GOV id edit controls are supported: 32 | 33 |

Screenshot

34 | 35 | 3. Alternatively, GOV ids may always be set via a custom _GOV tag under the respective PLAC tag (for a specific fact or event). This is not recommended, and there are no edit controls to support this. The module still displays the place hierarchies in this case though. 36 | 37 | ### Disclosure to third parties
38 | 39 | Data is obtained from the GOV server via webservices, as described [here](http://gov.genealogy.net/services/). 40 | The module only uses these webservices to read data, the 'ChangeService', which would require a username and password, is not used. 41 | At no point any kind of personal information related to the webtrees user is transferred, nor the user's IP address. 42 | You may still prefer to point out the use of this third party in your website's privacy policy. 43 | 44 | ### Download 45 | 46 | * Current version: 2.2.4.1.0 47 | * Based on and tested with webtrees 2.2.4. Requires webtrees 2.2.1 or later. 48 | * Requires the ⚶ Vesta Common module ('vesta_common'). 49 | * Displays data via the ⚶ Vesta Facts and events module ('vesta_personal_facts'). 50 | * Provides location data to other custom modules. 51 | * Download the zip file, which includes all Vesta modules, [here](https://cissee.de/vesta.latest.zip). 52 | * Support, suggestions, feature requests: 53 | * Issues also via 54 | * Translations may be contributed via weblate: 55 | 56 | ### Installation 57 | 58 | * Unzip the files and copy the contents of the modules_v4 folder to the respective folder of your webtrees installation. All related modules are included in the zip file. It's safe to overwrite the respective directories if they already exist (they are bundled with other custom modules as well), as long as other custom models using these dependencies are also upgraded to their respective latest versions. 59 | * Enable the extended 'Facts and Events' module via Control Panel -> Modules -> All modules -> ⚶ Vesta Facts and Events. 60 | * Enable the main module via Control Panel -> Modules -> All modules -> ⚶ Vesta Gov4Webtrees. After that, you may configure some options. 61 | * Configure the visibility of the old and the extended 'Facts and Events' tab via Control Panel -> Modules -> Tabs (usually, you'll want to use only one of them. You may just disable the original 'Facts and Events' module altogether). 62 | 63 | #### Import/Export 64 | 65 | If you want to transfer GOV data between different webtrees instances, you only have to copy the table which maps place names to gov ids (##gov_ids), all other data will be re-created automatically. 66 | If you use GEDCOM data with _GOV tags for GOV ids (either directly or via the Shared Places module), even this step is unnecessary. 67 | 68 | 69 | ### License 70 | 71 | * **gov4webtrees: a webtrees custom module** 72 | * Copyright (C) 2019 – 2025 Richard Cissée 73 | * Derived from **webtrees** - Copyright 2022 webtrees development team. 74 | * Uses third-party libraries that are distributed under their own terms (see below) 75 | * Nutzt Daten des [Geschichtlichen Orts-Verzeichnisses GOV](http://gov.genealogy.net) des [Vereins für Computergenealogie e. V.](http://compgen.de), basierend auf einer [Creative Commons-Lizenz](http://wiki-de.genealogy.net/GOV/Webservice#Lizenz). 76 | * Dutch translations provided by TheDutchJewel. 77 | * Slovak translations provided by Ladislav Rosival. 78 | * Czech translations provided by Josef Prause. 79 | * Further translations contributed via weblate. 80 | 81 | This program is free software: you can redistribute it and/or modify 82 | it under the terms of the GNU General Public License as published by 83 | the Free Software Foundation, either version 3 of the License, or 84 | (at your option) any later version. 85 | 86 | This program is distributed in the hope that it will be useful, 87 | but WITHOUT ANY WARRANTY; without even the implied warranty of 88 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 89 | GNU General Public License for more details. 90 | 91 | You should have received a copy of the GNU General Public License 92 | along with this program. If not, see . 93 | 94 | #### Third-party libraries 95 | 96 | gov4webtrees uses the following third-party libraries: 97 | 98 | | Software | Version | License | 99 | |---|---|---| 100 | | [NuSOAP](https://github.com/f00b4r/nusoap) | v0.9.15 | [LGPL-2.0-only](https://packagist.org/packages/econea/nusoap) | 101 | -------------------------------------------------------------------------------- /metadata.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "version": "2.0.13.0.0", 4 | "from": "2.0.12", 5 | "to": "2.0.18" 6 | }, 7 | { 8 | "version": "2.0.13.1.0", 9 | "from": "2.0.12", 10 | "to": "2.0.18" 11 | }, 12 | { 13 | "version": "2.0.15.0.0", 14 | "from": "2.0.12", 15 | "to": "2.0.18" 16 | }, 17 | { 18 | "version": "2.0.15.1.0", 19 | "from": "2.0.12", 20 | "to": "2.0.18" 21 | }, 22 | { 23 | "version": "2.0.15.2.0", 24 | "from": "2.0.12", 25 | "to": "2.0.18" 26 | }, 27 | { 28 | "version": "2.0.15.3.0", 29 | "from": "2.0.12", 30 | "to": "2.0.18" 31 | }, 32 | { 33 | "version": "2.0.15.4.0", 34 | "from": "2.0.12", 35 | "to": "2.0.18", 36 | "changelog": ["Added option to exclude objects of type 'confederation'.", "Added option to define additional languages for place names."] 37 | }, 38 | { 39 | "version": "2.0.16.0.0", 40 | "from": "2.0.12", 41 | "to": "2.0.18" 42 | }, 43 | { 44 | "version": "2.0.16.0.1", 45 | "from": "2.0.12", 46 | "to": "2.0.18", 47 | "changelog": ["Bugfixes."] 48 | }, 49 | { 50 | "version": "2.0.16.0.3", 51 | "from": "2.0.12", 52 | "to": "2.0.18", 53 | "changelog": ["Translations."] 54 | }, 55 | { 56 | "version": "2.0.16.0.4", 57 | "from": "2.0.12", 58 | "to": "2.0.18" 59 | }, 60 | { 61 | "version": "2.0.16.1.0", 62 | "from": "2.0.12", 63 | "to": "2.0.18" 64 | }, 65 | { 66 | "version": "2.0.16.1.1", 67 | "from": "2.0.12", 68 | "to": "2.0.18", 69 | "changelog": ["Some small adjustments."] 70 | }, 71 | { 72 | "version": "2.0.16.2.0", 73 | "from": "2.0.12", 74 | "to": "2.0.18" 75 | }, 76 | { 77 | "version": "2.0.16.3.0", 78 | "from": "2.0.12", 79 | "to": "2.0.18" 80 | }, 81 | { 82 | "version": "2.0.16.4.0", 83 | "from": "2.0.12", 84 | "to": "2.0.18" 85 | }, 86 | { 87 | "version": "2.0.16.5.0", 88 | "from": "2.0.12", 89 | "to": "2.0.18" 90 | }, 91 | { 92 | "version": "2.0.16.5.2", 93 | "from": "2.0.12", 94 | "to": "2.0.18" 95 | }, 96 | { 97 | "version": "2.0.16.6.0", 98 | "from": "2.0.12", 99 | "to": "2.0.18", 100 | "changelog": ["Option to modify all GOV data locally.", "Extended and improved handling of 'organizational' GOV object types."] 101 | }, 102 | { 103 | "version": "2.0.16.6.1", 104 | "from": "2.0.12", 105 | "to": "2.0.18" 106 | }, 107 | { 108 | "version": "2.0.16.6.2", 109 | "from": "2.0.12", 110 | "to": "2.0.18" 111 | }, 112 | { 113 | "version": "2.0.17.0.0", 114 | "from": "2.0.12", 115 | "to": "2.0.18" 116 | }, 117 | { 118 | "version": "2.0.17.0.1", 119 | "from": "2.0.12", 120 | "to": "2.0.18", 121 | "changelog": ["Bugfix: Specific object data from the GOV server led to errors."] 122 | }, 123 | { 124 | "version": "2.0.17.1.0", 125 | "from": "2.0.12", 126 | "to": "2.0.18" 127 | }, 128 | { 129 | "version": "2.0.17.1.1", 130 | "from": "2.0.12", 131 | "to": "2.0.18" 132 | }, 133 | { 134 | "version": "2.0.19.0.0", 135 | "from": "2.0.12", 136 | "to": "2.0.20" 137 | }, 138 | { 139 | "version": "2.0.19.0.3", 140 | "from": "2.0.12", 141 | "to": "2.0.20" 142 | }, 143 | { 144 | "version": "2.0.19.1.0", 145 | "from": "2.0.12", 146 | "to": "2.0.20" 147 | }, 148 | { 149 | "version": "2.0.19.2.0", 150 | "from": "2.0.12", 151 | "to": "2.0.20" 152 | }, 153 | { 154 | "version": "2.0.22.0.0", 155 | "from": "2.0.12", 156 | "to": "2.0.23" 157 | }, 158 | { 159 | "version": "2.0.23+2.1.0-beta.2.0.0", 160 | "from": "2.0.12", 161 | "to": "2.1.0" 162 | }, 163 | { 164 | "version": "2.0.23+2.1.0-beta.2.0.1", 165 | "from": "2.0.12", 166 | "to": "2.1.0" 167 | }, 168 | { 169 | "version": "2.0.23+2.1.0-beta.2.1.0", 170 | "from": "2.0.12", 171 | "to": "2.1.0" 172 | }, 173 | { 174 | "version": "2.0.23+2.1.0-beta.2.2.0", 175 | "from": "2.0.12", 176 | "to": "2.1.0" 177 | }, 178 | { 179 | "version": "2.0.23+2.1.0-beta.2.3.0", 180 | "from": "2.0.12", 181 | "to": "2.1.0" 182 | }, 183 | { 184 | "version": "2.1.0.0.0", 185 | "from": "2.0.12", 186 | "to": "2.1.1" 187 | }, 188 | { 189 | "version": "2.1.0.1.0", 190 | "from": "2.0.12", 191 | "to": "2.1.1" 192 | }, 193 | { 194 | "version": "2.1.1.0.0", 195 | "from": "2.0.12", 196 | "to": "2.1.2", 197 | "changelog": ["Place history functionality."] 198 | }, 199 | { 200 | "version": "2.1.1.0.1", 201 | "from": "2.0.12", 202 | "to": "2.1.2", 203 | "changelog": ["Bugfixes for place history functionality."] 204 | }, 205 | { 206 | "version": "2.1.2.0.0", 207 | "from": "2.0.12", 208 | "to": "2.1.3" 209 | }, 210 | { 211 | "version": "2.1.2.1.0", 212 | "from": "2.0.12", 213 | "to": "2.1.3" 214 | }, 215 | { 216 | "version": "2.1.2.1.1", 217 | "from": "2.0.12", 218 | "to": "2.1.3" 219 | }, 220 | { 221 | "version": "2.1.2.1.2", 222 | "from": "2.0.12", 223 | "to": "2.1.3" 224 | }, 225 | { 226 | "version": "2.1.2.1.4", 227 | "from": "2.0.12", 228 | "to": "2.1.3" 229 | }, 230 | { 231 | "version": "2.1.4.0.0", 232 | "from": "2.1.4", 233 | "to": "2.1.6" 234 | }, 235 | { 236 | "version": "2.1.4.1.0", 237 | "from": "2.1.4", 238 | "to": "2.1.6" 239 | }, 240 | { 241 | "version": "2.1.5.0.0", 242 | "from": "2.1.4", 243 | "to": "2.1.6" 244 | }, 245 | { 246 | "version": "2.1.6.0.0", 247 | "from": "2.1.4", 248 | "to": "2.1.7" 249 | }, 250 | { 251 | "version": "2.1.6.1.0", 252 | "from": "2.1.4", 253 | "to": "2.1.7" 254 | }, 255 | { 256 | "version": "2.1.7.0.0", 257 | "from": "2.1.4", 258 | "to": "2.1.8" 259 | }, 260 | { 261 | "version": "2.1.7.0.2", 262 | "from": "2.1.4", 263 | "to": "2.1.8" 264 | }, 265 | { 266 | "version": "2.1.7.1.0", 267 | "from": "2.1.4", 268 | "to": "2.1.8" 269 | }, 270 | { 271 | "version": "2.1.7.1.1", 272 | "from": "2.1.4", 273 | "to": "2.1.8", 274 | "changelog": ["Some GOV types moved to organizational hierarchy.","Fixed localization of GOV id type."] 275 | }, 276 | { 277 | "version": "2.1.8.0.0", 278 | "from": "2.1.8", 279 | "to": "2.1.14" 280 | }, 281 | { 282 | "version": "2.1.9.0.0", 283 | "from": "2.1.8", 284 | "to": "2.1.14" 285 | }, 286 | { 287 | "version": "2.1.9.1.0", 288 | "from": "2.1.8", 289 | "to": "2.1.14" 290 | }, 291 | { 292 | "version": "2.1.9.9.9", 293 | "from": "2.1.10", 294 | "to": "2.1.14" 295 | }, 296 | { 297 | "version": "2.1.10.0.0", 298 | "from": "2.1.10", 299 | "to": "2.1.14" 300 | }, 301 | { 302 | "version": "2.1.13.0.0", 303 | "from": "2.1.10", 304 | "to": "2.1.14" 305 | }, 306 | { 307 | "version": "2.1.15.0.0", 308 | "from": "2.1.10", 309 | "to": "2.1.17" 310 | }, 311 | { 312 | "version": "2.1.16.0.0", 313 | "from": "2.1.10", 314 | "to": "2.1.17" 315 | }, 316 | { 317 | "version": "2.1.16.1.0", 318 | "from": "2.1.10", 319 | "to": "2.1.17" 320 | }, 321 | { 322 | "version": "2.1.16.1.1", 323 | "from": "2.1.10", 324 | "to": "2.1.17" 325 | }, 326 | { 327 | "version": "2.1.16.1.4", 328 | "from": "2.1.10", 329 | "to": "2.1.17" 330 | }, 331 | { 332 | "version": "2.1.16.1.5", 333 | "from": "2.1.10", 334 | "to": "2.1.17" 335 | }, 336 | { 337 | "version": "2.1.16.2.0", 338 | "from": "2.1.10", 339 | "to": "2.1.17" 340 | }, 341 | { 342 | "version": "2.1.17.0.0", 343 | "from": "2.1.17", 344 | "to": "2.1.18" 345 | }, 346 | { 347 | "version": "2.1.17.1.0", 348 | "from": "2.1.17", 349 | "to": "2.1.18" 350 | }, 351 | { 352 | "version": "2.1.18.0.0", 353 | "from": "2.1.17", 354 | "to": "2.1.21" 355 | }, 356 | { 357 | "version": "2.1.18.0.1", 358 | "from": "2.1.17", 359 | "to": "2.1.21" 360 | }, 361 | { 362 | "version": "2.1.18.1.0", 363 | "from": "2.1.17", 364 | "to": "2.1.21" 365 | }, 366 | { 367 | "version": "2.1.18.2.0", 368 | "from": "2.1.17", 369 | "to": "2.1.21" 370 | }, 371 | { 372 | "version": "2.1.18.2.2", 373 | "from": "2.1.17", 374 | "to": "2.1.21" 375 | }, 376 | { 377 | "version": "2.1.19.0.0", 378 | "from": "2.1.17", 379 | "to": "2.1.21" 380 | }, 381 | { 382 | "version": "2.1.20.0.0", 383 | "from": "2.1.17", 384 | "to": "2.1.21" 385 | }, 386 | { 387 | "version": "2.1.20.1.0", 388 | "from": "2.1.17", 389 | "to": "2.1.21" 390 | }, 391 | { 392 | "version": "2.1.20.2.0", 393 | "from": "2.1.17", 394 | "to": "2.1.21", 395 | "changelog": ["Adapt to GOV-Server URI changes."] 396 | }, 397 | { 398 | "version": "2.2.0.0.0", 399 | "from": "2.1.17", 400 | "to": "2.2.1" 401 | }, 402 | { 403 | "version": "2.2.1.0.0", 404 | "from": "2.1.17", 405 | "to": "2.2.2" 406 | }, 407 | { 408 | "version": "2.2.1.1.0", 409 | "from": "2.1.17", 410 | "to": "2.2.2" 411 | }, 412 | { 413 | "version": "2.2.1.2.0", 414 | "from": "2.2.1", 415 | "to": "2.2.2" 416 | }, 417 | { 418 | "version": "2.2.1.3.0", 419 | "from": "2.2.1", 420 | "to": "2.2.2" 421 | }, 422 | { 423 | "version": "2.2.1.4.0", 424 | "from": "2.2.1", 425 | "to": "2.2.2" 426 | }, 427 | { 428 | "version": "2.2.1.5.0", 429 | "from": "2.2.1", 430 | "to": "2.2.2" 431 | }, 432 | { 433 | "version": "2.2.2.0.0", 434 | "from": "2.2.1", 435 | "to": "2.2.4" 436 | }, 437 | { 438 | "version": "2.2.3.0.0", 439 | "from": "2.2.1", 440 | "to": "2.2.4" 441 | }, 442 | { 443 | "version": "2.2.4.0.0", 444 | "from": "2.2.1", 445 | "to": "2.2.5" 446 | }, 447 | { 448 | "version": "2.2.4.1.0", 449 | "from": "2.2.1", 450 | "to": "2.2.5", 451 | "changelog": ["Switch to GOV Rest API."] 452 | } 453 | ] 454 | -------------------------------------------------------------------------------- /resources/views/admin/gov-data.phtml: -------------------------------------------------------------------------------- 1 | $breadcrumbs 14 | * etc 15 | */ 16 | ?> 17 | 18 | $breadcrumbs]) ?> 19 | 20 |

21 | 22 |

23 | 24 |

25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | getLabels() as $prop) : ?> 40 | 41 | getFrom(); 43 | if ($from !== null) { 44 | $from = DateUtils::toDate(new GregorianDate($from))->display(); 45 | } 46 | 47 | $to = $prop->getTo(); 48 | if ($to !== null) { 49 | //to is exclusively - we display inclusively! 50 | $to = DateUtils::toDate(new GregorianDate($to-1))->display(); 51 | } 52 | ?> 53 | 54 | 55 | 58 | 59 | 62 | 63 | 66 | 67 | 70 | 71 | 79 | 80 | 90 | 91 | 92 | 93 |
56 | getProp() ?> 57 | 60 | getLanguage() ?> 61 | 64 | 65 | 68 | 69 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 81 | getSticky()): ?> 82 |
83 | 86 | 87 |
88 | 89 |
94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | getTypes() as $prop) : ?> 108 | 109 | getProp(), 113 | $languagesForTypes); 114 | ?> 115 | 116 | getFrom(); 118 | if ($from !== null) { 119 | $from = DateUtils::toDate(new GregorianDate($from))->display(); 120 | } 121 | 122 | $to = $prop->getTo(); 123 | if ($to !== null) { 124 | //to is exclusively - we display inclusively! 125 | $to = DateUtils::toDate(new GregorianDate($to-1))->display(); 126 | } 127 | ?> 128 | 129 | 130 | 133 | 134 | 137 | 138 | 141 | 142 | 150 | 151 | 161 | 162 | 163 | 164 |
131 | getProp() . ')' ?> 132 | 135 | 136 | 139 | 140 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 152 | getSticky()): ?> 153 |
154 | 157 | 158 |
159 | 160 |
165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | getParents() as $prop) : ?> 179 | getProp(); 181 | $gov = FunctionsGov::retrieveGovObject($module, $prop->getProp()); 182 | if ($gov !== null) { 183 | $label = $gov->formatForAdminView($module, $languages); 184 | } //else inconsistency 185 | 186 | $from = $prop->getFrom(); 187 | if ($from !== null) { 188 | $from = DateUtils::toDate(new GregorianDate($from))->display(); 189 | } 190 | 191 | $to = $prop->getTo(); 192 | if ($to !== null) { 193 | //to is exclusively - we display inclusively! 194 | $to = DateUtils::toDate(new GregorianDate($to-1))->display(); 195 | } 196 | ?> 197 | 198 | 199 | 202 | 203 | 206 | 207 | 210 | 211 | 219 | 220 | 230 | 231 | 232 | 233 |
200 | 201 | 204 | 205 | 208 | 209 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 221 | getSticky()): ?> 222 |
223 | 224 | 227 |
228 | 229 |
234 | -------------------------------------------------------------------------------- /Gov4WebtreesModuleTrait.php: -------------------------------------------------------------------------------- 1 | '.CommonI18N::readme().'
'; 31 | $link2 = ''.CommonI18N::readmeLocationData().''; 32 | 33 | $link3 = ''./* I18N: Module Configuration; a link target */I18N::translate('here').''; 34 | 35 | $description = array(); 36 | $description[] = /* I18N: Module Configuration */I18N::translate('A module integrating GOV (historic gazetteer) data. Enhances places with GOV data via the extended \'Facts and events\' tab.') . ' ' . 37 | /* I18N: Module Configuration */I18N::translate('Place hierarchies are displayed historically, i.e. according to the date of the respective event.') . ' ' . 38 | /* I18N: Module Configuration */I18N::translate('All data (except for the mapping of places to GOV ids, which has to be done manually) is retrieved from the GOV server and cached internally.') . ' ' . 39 | /* I18N: Module Configuration */I18N::translate('Consequently, place hierarchy information can only be changed indirectly, via the GOV website.') . ' ' . 40 | /* I18N: Module Configuration */I18N::translate('GOV ids are stored outside GEDCOM data by default, but ids stored via _GOV tags are also supported.') . ' ' . 41 | /* I18N: Module Configuration */I18N::translate('In particular, the Shared Places custom module may be used to manage GOV ids within GEDCOM data.'); 42 | $description[] = 43 | CommonI18N::requires2(CommonI18N::titleVestaCommon(), CommonI18N::titleVestaPersonalFacts()); 44 | $description[] = 45 | CommonI18N::providesLocationData(); 46 | $description[] = $link1 . '. ' . $link2 . '.'; 47 | 48 | $description[] = 49 | /* I18N: Module Configuration */I18N::translate('You may modify all data retrieved from the GOV server %1$s.', $link3) . ' ' . 50 | /* I18N: Module Configuration */I18N::translate('Obvious mistakes should be corrected on the GOV server itself, but there may be cases where this is not easily possible.') . ' ' . 51 | /* I18N: Module Configuration */I18N::translate('In particular you may want to revert locally some controversial changes made on the GOV server (such as the object type of the Holy Roman Empire).') . ' ' . 52 | /* I18N: Module Configuration */I18N::translate('In general, hide an object while preserving the overall place hierarchy by moving it to a hidden type group (see preferences).') . ' ' . 53 | /* I18N: Module Configuration */I18N::translate('Hide an object and stop the place hierarchy at that point by moving it to an irrelevant type group.'); 54 | 55 | return $description; 56 | } 57 | 58 | protected function createPrefs() { 59 | 60 | $linkTypes = ''./* I18N: Module Configuration; a link target */I18N::translate('here').''; 61 | 62 | $generalSub = array(); 63 | /* 64 | $generalSub[] = new ControlPanelSubsection( 65 | CommonI18N::displayedTitle(), 66 | array(new ControlPanelCheckbox( 67 | I18N::translate('Include the %1$s symbol in the module title', $this->getVestaSymbol()), 68 | null, 69 | 'VESTA', 70 | '1'))); 71 | */ 72 | 73 | $generalSub[] = new ControlPanelSubsection( 74 | /* I18N: Module Configuration */I18N::translate('Local GOV data'), 75 | array(new ControlPanelCheckbox( 76 | /* I18N: Module Configuration */I18N::translate('reset all cached data once'), 77 | /* I18N: Module Configuration */I18N::translate('Subsequently, all data is retrieved again from the GOV server. ') . 78 | /* I18N: Module Configuration */I18N::translate('Usually only required in case of substantial changes of the GOV data. ') . 79 | /* I18N: Module Configuration */I18N::translate('Mappings of places to GOV ids are not affected.') . ' ' . 80 | /* I18N: Module Configuration */I18N::translate('Local modifications are preserved.'), 81 | 'RESET', 82 | '0'))); //not a persistent setting, see overridden setSetting/setPreference! 83 | 84 | $editingSub = array(); 85 | $editingSub[] = new ControlPanelSubsection( 86 | /* I18N: Module Configuration */I18N::translate('Where to edit and store GOV ids'), 87 | array( 88 | new ControlPanelCheckbox( 89 | /* I18N: Module Configuration */I18N::translate('Within GEDCOM data (via other custom modules). '), 90 | /* I18N: Module Configuration */I18N::translate('Particularly useful in order to manage GOV ids via the Shared Places module. Ids are stored and exportable via GEDCOM tags. '). ' ' . 91 | /* I18N: Module Configuration */I18N::translate('If this option is checked, you usually want to disable the following option. '), 92 | 'SUPPORT_EDITING_ELSEWHERE', 93 | '1'), 94 | new ControlPanelCheckboxInverted( 95 | /* I18N: Module Configuration */I18N::translate('Outside GEDCOM data'), 96 | /* I18N: Module Configuration */I18N::translate('In this case, the GOV ids are stored in a separate database table, which has to be managed manually when moving the respective tree to a different webtrees installation. '). ' ' . 97 | /* I18N: Module Configuration */I18N::translate('When this option is disabled, an alternative edit control is provided, which still allows to reload place hierarchies from the GOV server.'), 98 | 'NO_ONE_MAY_EDIT', 99 | '0'), 100 | new ControlPanelCheckbox( 101 | /* I18N: Module Configuration */I18N::translate('Outside GEDCOM data - editable by anyone (including visitors)'), 102 | /* I18N: Module Configuration */I18N::translate('This option mainly exists for demo servers and is not recommended otherwise. It has precedence over the preceding option.'), 103 | 'VISITORS_MAY_EDIT', 104 | '0'))); 105 | 106 | $factsAndEventsSub = array(); 107 | $factsAndEventsSub[] = new ControlPanelSubsection( 108 | /* I18N: Module Configuration */I18N::translate('Show GOV hierarchy for'), 109 | array( 110 | new ControlPanelRadioButtons( 111 | true, 112 | array( 113 | new ControlPanelRadioButton( 114 | /* I18N: Module Configuration */I18N::translate('date of event'), 115 | null, 116 | '0'), 117 | new ControlPanelRadioButton( 118 | /* I18N: Module Configuration */I18N::translate('present time'), 119 | null, 120 | '2'), 121 | new ControlPanelRadioButton( 122 | /* I18N: Module Configuration */I18N::translate('both'), 123 | null, 124 | '1')), 125 | /* I18N: Module Configuration */I18N::translate('for events without a date, present time hierarchy will be used regardless of this preference.'), 126 | 'SHOW_CURRENT_DATE', 127 | '0'), 128 | new ControlPanelCheckbox( 129 | /* I18N: Module Configuration */I18N::translate('Show additional info'), 130 | /* I18N: Module Configuration */I18N::translate('Display a tooltip indicating the source of the GOV id. This is intended mainly for debugging.'), 131 | 'DEBUG_GOV_SOURCE', 132 | '0'))); 133 | 134 | $factsAndEventsSub[] = new ControlPanelSubsection( 135 | /* I18N: Module Configuration */I18N::translate('Place hierarchy'), 136 | array( 137 | 138 | new ControlPanelCheckbox( 139 | /* I18N: Module Configuration */I18N::translate('Show objects of type group \'%1$s\' in hierarchy', I18N::translate('Organizational')), 140 | /* I18N: Module Configuration */I18N::translate('Objects of this type strictly do not belong to the administrative hierarchy in the sense that they are no territorial entities (Gebietskörperschaften).') . ' ' . 141 | /* I18N: Module Configuration *//*I18N::translate('They often overlap with other objects, which would lead to confusing hierarchies in cases where objects have more than one parent object at a specific time.') . ' ' .*/ 142 | /* I18N: Module Configuration */I18N::translate('Check this option if you still want organizations to appear in hierarchies, e.g. the United Nations as a higher-level object of sovereign entities.') . ' ' . 143 | /* I18N: Module Configuration */I18N::translate('In any case, they are still used as fallbacks to determine further higher-level objects.'), 144 | 'ALLOW_ORGANIZATIONAL', 145 | '0'), 146 | 147 | new ControlPanelCheckbox( 148 | /* I18N: Module Configuration */I18N::translate('Show objects of type group \'%1$s\' in hierarchy', I18N::translate('Settlement')), 149 | /* I18N: Module Configuration */I18N::translate('According to the current GOV specification, settlements are not supposed to be parents of other settlements.') . ' ' . 150 | /* I18N: Module Configuration */I18N::translate('This policy hasn\'t been strictly followed though. Check this option if you still want to display settlements in hierarchies.') . ' ' . 151 | /* I18N: Module Configuration */I18N::translate('In any case, they are still used as fallbacks to determine further higher-level objects.') . ' ' . 152 | /* I18N: Module Configuration */I18N::translate('Note: Ultimately it\'s probably preferable to correct the respective GOV data itself.'), 153 | 'ALLOW_SETTLEMENTS', 154 | '0')), 155 | 156 | 157 | null, 158 | /* I18N: Module Configuration */I18N::translate('GOV objects belong to different type groups. The GOV place hierarchy is based on objects of type group \'%1$s\'.', I18N::translate('Administrative')) . ' ' . 159 | /* I18N: Module Configuration *//*I18N::translate('Conceptually, this is similar to the hierarchies provided via $1$s', 'Mini-GOV') . ' ' .*/ 160 | /* I18N: Module Configuration */I18N::translate('Several object types that are part of this type group in the original model can be seen as problematic in this context, and have been moved to a custom \'%1$s\' type group.', I18N::translate('Organizational')) . ' ' . 161 | /* I18N: Module Configuration */I18N::translate('For more fine-grained adjustments, and to view the list of the types and type groups, edit the GOV data locally.') . ' ' . 162 | /* I18N: Module Configuration */I18N::translate('See also %1$s for the original list of types and type descriptions.', $linkTypes), 163 | 164 | ); 165 | 166 | $factsAndEventsSub[] = new ControlPanelSubsection( 167 | CommonI18N::displayedData(), 168 | array( 169 | 170 | //TODO: would be nice to have this only if tooltip isn't available (tablets) 171 | new ControlPanelCheckbox( 172 | /* I18N: Module Configuration */I18N::translate('Compact display (administrative levels only as tooltips)'), 173 | null, 174 | 'COMPACT_DISPLAY', 175 | '1'), 176 | 177 | new ControlPanelCheckbox( 178 | /* I18N: Module Configuration */I18N::translate('For events with a date range, use the median date'), 179 | /* I18N: Module Configuration */I18N::translate('Otherwise, the start date is used (this is more consistent with other date-based calculations in webtrees).'), 180 | 'USE_MEDIAN_DATE', 181 | '0') 182 | )); 183 | 184 | $factsAndEventsSub[] = new ControlPanelSubsection( 185 | /* I18N: Module Configuration */I18N::translate('Place text and links'), 186 | array(new ControlPanelRadioButtons( 187 | false, 188 | array( 189 | new ControlPanelRadioButton( 190 | /* I18N: Module Configuration */I18N::translate('Use place names and links from GOV'), 191 | /* I18N: Module Configuration */I18N::translate('\'Classic\' mode.'), 192 | '0'), 193 | new ControlPanelRadioButton( 194 | /* I18N: Module Configuration */I18N::translate('Use place names and links from GOV, additionally link to places existing in webtrees via icons'), 195 | /* I18N: Module Configuration */I18N::translate('\'Classic\' mode, extended to link to places from the GEDCOM data, if possible.'), 196 | '1'), 197 | new ControlPanelRadioButton( 198 | /* I18N: Module Configuration */I18N::translate('Use place names and link to places existing in webtrees, additionally link to GOV via icons'), 199 | /* I18N: Module Configuration */I18N::translate('If this is checked, the displayed GOV hierarchy uses place names from the GEDCOM data, if possible.'), 200 | '2')), 201 | null, 202 | 'DISPLAY_INTERNAL_LINKS', 203 | '1'))); 204 | 205 | $factsAndEventsSub[] = new ControlPanelSubsection( 206 | /* I18N: Module Configuration */I18N::translate('Place names from GOV'), 207 | array(new ControlPanelCheckbox( 208 | /* I18N: Module Configuration */I18N::translate('fallback to German place names'), 209 | /* I18N: Module Configuration *//*I18N::translate('Determines strategy in case the place name is not available in the current or any additional language (for the given date): ') .*/ 210 | /* I18N: Module Configuration */I18N::translate('As a final fallback, determine the place name according to this checkbox:') . ' ' . 211 | /* I18N: Module Configuration */I18N::translate('If checked, attempt to fall back to the German place name. ') . 212 | /* I18N: Module Configuration */I18N::translate('If unchecked, prefer any language other than German; ') . 213 | /* I18N: Module Configuration */I18N::translate('motivated by the assumption that place names in the local language are more useful in general ') . 214 | /* I18N: Module Configuration */I18N::translate('(Why is German in particular singled out like this? Because the GOV gazetteer is currently rather German-language centric, and therefore many places have German names).'), 215 | 'FALLBACK_LANGUAGE_PREFER_DEU', 216 | '1')), 217 | null, 218 | /* I18N: Module Configuration */I18N::translate('The GOV server provides place names in different languages. However, there is no concept of an \'official language\' for a place.') . ' ' . 219 | /* I18N: Module Configuration */I18N::translate('For a given place, this module displays one or more names by matching the available names against a list of languages, according to the following strategy:') . ' ' . 220 | /* I18N: Module Configuration */I18N::translate('The current user language always has the highest priority.') . ' ' . 221 | /* I18N: Module Configuration */I18N::translate('Additionally, the module checks if the respective GOV id, or any of its parents within the hierarchy, has languages defined in the csv file \'%1$s\'.', 'resources/gov/languages.csv') . ' ' . 222 | /* I18N: Module Configuration */I18N::translate('These languages are then used, in the given order, either as fallbacks, or (if upper-cased) as additional languages (i.e. \'official languages\' for a place hierarchy).') . ' ' . 223 | /* I18N: Module Configuration */I18N::translate('You can create and modify this csv file according to your personal preferences, see \'%1$s\' for an example.', 'resources/gov/languages.csv.example') . ' ' . 224 | /* I18N: Module Configuration */I18N::translate('It will not be overwritten by subsequent updates.') 225 | ); 226 | 227 | $sections = array(); 228 | $sections[] = new ControlPanelSection( 229 | CommonI18N::general(), 230 | null, 231 | $generalSub); 232 | $sections[] = new ControlPanelSection( 233 | /* I18N: Module Configuration */I18N::translate('GOV Id Management'), 234 | /* I18N: Module Configuration */I18N::translate('It is recommended to use only one of the following options. You may also (temporarily) disable all editing via unchecking all of them.'), 235 | $editingSub); 236 | $sections[] = new ControlPanelSection( 237 | CommonI18N::factsAndEventsTabSettings(), 238 | null, 239 | $factsAndEventsSub); 240 | 241 | return new ControlPanelPreferences($sections); 242 | } 243 | 244 | } 245 | -------------------------------------------------------------------------------- /resources/lang/pt.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the vesta package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: vesta 1.0\n" 9 | "Report-Msgid-Bugs-To: ric@richard-cissee.de\n" 10 | "POT-Creation-Date: 2024-03-13 19:51+0100\n" 11 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 12 | "Last-Translator: Automatically generated\n" 13 | "Language-Team: none\n" 14 | "Language: pt\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | 19 | #: EditGovMappingController.php:58 20 | #, php-format 21 | msgid "Set GOV id for %1$s" 22 | msgstr "" 23 | 24 | #: EditGovMappingController.php:60 25 | #, php-format 26 | msgid "Reset GOV id for %1$s" 27 | msgstr "" 28 | 29 | #: EditGovMappingController.php:89 30 | #, php-format 31 | msgid "GOV id for %1$s has been removed." 32 | msgstr "" 33 | 34 | #: EditGovMappingController.php:106 35 | #: resources/views/script/tom-select-initializer-gov.phtml:42 36 | msgid "Invalid GOV id! Valid GOV ids are e.g. 'EITTZE_W3091', 'object_1086218'." 37 | msgstr "" 38 | 39 | #: EditGovMappingController.php:116 40 | #, php-format 41 | msgid "GOV id for %1$s has been set to %2$s." 42 | msgstr "" 43 | 44 | #: FunctionsGov.php:682 FunctionsGov.php:685 FunctionsGov.php:688 45 | #: FunctionsGov.php:691 FunctionsGov.php:694 FunctionsGov.php:697 46 | #, php-format 47 | msgid "Administrative (level %1$s)" 48 | msgstr "" 49 | 50 | #: FunctionsGov.php:700 51 | msgid "Administrative (other)" 52 | msgstr "" 53 | 54 | #. I18N: Module Configuration 55 | #. I18N: Module Configuration 56 | #. I18N::translate('Conceptually, this is similar to the hierarchies provided via $1$s', 'Mini-GOV') . ' ' . 57 | #. I18N: Module Configuration 58 | #: FunctionsGov.php:703 Gov4WebtreesModuleTrait.php:139 59 | #: Gov4WebtreesModuleTrait.php:160 60 | msgid "Organizational" 61 | msgstr "" 62 | 63 | #. I18N: Module Configuration 64 | #: FunctionsGov.php:706 Gov4WebtreesModuleTrait.php:148 65 | msgid "Settlement" 66 | msgstr "" 67 | 68 | #: FunctionsGov.php:709 69 | msgid "Religious" 70 | msgstr "" 71 | 72 | #: FunctionsGov.php:712 73 | msgid "Judicial" 74 | msgstr "" 75 | 76 | #: FunctionsGov.php:715 77 | msgid "Civil" 78 | msgstr "" 79 | 80 | #: FunctionsGov.php:718 81 | msgid "Other" 82 | msgstr "" 83 | 84 | #: FunctionsGov.php:1144 85 | msgid "unknown GOV type (newly introduced?)" 86 | msgstr "" 87 | 88 | #: Gov4WebtreesModule.php:151 89 | msgid "GOV id for type of location" 90 | msgstr "" 91 | 92 | #: Gov4WebtreesModule.php:159 93 | msgid "The GOV server seems to be temporarily unavailable." 94 | msgstr "" 95 | 96 | #: Gov4WebtreesModule.php:379 97 | #, php-format 98 | msgid "GOV place hierarchy for %1$s has been reloaded from GOV server." 99 | msgstr "" 100 | 101 | #: Gov4WebtreesModule.php:381 102 | msgid "GOV place hierarchy has been reloaded from GOV server." 103 | msgstr "" 104 | 105 | #: Gov4WebtreesModule.php:424 Gov4WebtreesModule.php:468 106 | msgid "reload the GOV place hierarchy" 107 | msgstr "" 108 | 109 | #: Gov4WebtreesModule.php:484 110 | msgid "Set GOV id (outside GEDCOM)" 111 | msgstr "" 112 | 113 | #: Gov4WebtreesModule.php:486 114 | msgid "Reset GOV id (outside GEDCOM) and reload the GOV place hierarchy" 115 | msgstr "" 116 | 117 | #: Gov4WebtreesModule.php:535 118 | msgid "GOV Hierarchies" 119 | msgstr "" 120 | 121 | #. I18N: custom type for virtual EVEN 122 | #: Gov4WebtreesModule.php:658 123 | msgid "GOV Hierarchy" 124 | msgstr "" 125 | 126 | #: Gov4WebtreesModule.php:814 Gov4WebtreesModule.php:1043 127 | msgid "today" 128 | msgstr "" 129 | 130 | #: Gov4WebtreesModuleTrait.php:26 131 | msgid "A module integrating GOV (historic gazetteer) data." 132 | msgstr "" 133 | 134 | #. I18N: Module Configuration; a link target 135 | #: Gov4WebtreesModuleTrait.php:33 Gov4WebtreesModuleTrait.php:60 136 | msgid "here" 137 | msgstr "" 138 | 139 | #. I18N: Module Configuration 140 | #: Gov4WebtreesModuleTrait.php:36 141 | msgid "A module integrating GOV (historic gazetteer) data. Enhances places with GOV data via the extended 'Facts and events' tab." 142 | msgstr "" 143 | 144 | #. I18N: Module Configuration 145 | #: Gov4WebtreesModuleTrait.php:37 146 | msgid "Place hierarchies are displayed historically, i.e. according to the date of the respective event." 147 | msgstr "" 148 | 149 | #. I18N: Module Configuration 150 | #: Gov4WebtreesModuleTrait.php:38 151 | msgid "All data (except for the mapping of places to GOV ids, which has to be done manually) is retrieved from the GOV server and cached internally." 152 | msgstr "" 153 | 154 | #. I18N: Module Configuration 155 | #: Gov4WebtreesModuleTrait.php:39 156 | msgid "Consequently, place hierarchy information can only be changed indirectly, via the GOV website." 157 | msgstr "" 158 | 159 | #. I18N: Module Configuration 160 | #: Gov4WebtreesModuleTrait.php:40 161 | msgid "GOV ids are stored outside GEDCOM data by default, but ids stored via _GOV tags are also supported." 162 | msgstr "" 163 | 164 | #. I18N: Module Configuration 165 | #: Gov4WebtreesModuleTrait.php:41 166 | msgid "In particular, the Shared Places custom module may be used to manage GOV ids within GEDCOM data." 167 | msgstr "" 168 | 169 | #. I18N: Module Configuration 170 | #: Gov4WebtreesModuleTrait.php:49 171 | #, php-format 172 | msgid "You may modify all data retrieved from the GOV server %1$s." 173 | msgstr "" 174 | 175 | #. I18N: Module Configuration 176 | #: Gov4WebtreesModuleTrait.php:50 177 | msgid "Obvious mistakes should be corrected on the GOV server itself, but there may be cases where this is not easily possible." 178 | msgstr "" 179 | 180 | #. I18N: Module Configuration 181 | #: Gov4WebtreesModuleTrait.php:51 182 | msgid "In particular you may want to revert locally some controversial changes made on the GOV server (such as the object type of the Holy Roman Empire)." 183 | msgstr "" 184 | 185 | #. I18N: Module Configuration 186 | #: Gov4WebtreesModuleTrait.php:52 187 | msgid "In general, hide an object while preserving the overall place hierarchy by moving it to a hidden type group (see preferences)." 188 | msgstr "" 189 | 190 | #. I18N: Module Configuration 191 | #: Gov4WebtreesModuleTrait.php:53 192 | msgid "Hide an object and stop the place hierarchy at that point by moving it to an irrelevant type group." 193 | msgstr "" 194 | 195 | #. I18N: Module Configuration 196 | #: Gov4WebtreesModuleTrait.php:74 197 | msgid "Local GOV data" 198 | msgstr "" 199 | 200 | #. I18N: Module Configuration 201 | #: Gov4WebtreesModuleTrait.php:76 202 | msgid "reset all cached data once" 203 | msgstr "" 204 | 205 | #. I18N: Module Configuration 206 | #: Gov4WebtreesModuleTrait.php:77 207 | msgid "Subsequently, all data is retrieved again from the GOV server. " 208 | msgstr "" 209 | 210 | #. I18N: Module Configuration 211 | #: Gov4WebtreesModuleTrait.php:78 212 | msgid "Usually only required in case of substantial changes of the GOV data. " 213 | msgstr "" 214 | 215 | #. I18N: Module Configuration 216 | #: Gov4WebtreesModuleTrait.php:79 217 | msgid "Mappings of places to GOV ids are not affected." 218 | msgstr "" 219 | 220 | #. I18N: Module Configuration 221 | #: Gov4WebtreesModuleTrait.php:80 222 | msgid "Local modifications are preserved." 223 | msgstr "" 224 | 225 | #. I18N: Module Configuration 226 | #: Gov4WebtreesModuleTrait.php:86 227 | msgid "Where to edit and store GOV ids" 228 | msgstr "" 229 | 230 | #. I18N: Module Configuration 231 | #: Gov4WebtreesModuleTrait.php:89 232 | msgid "Within GEDCOM data (via other custom modules). " 233 | msgstr "" 234 | 235 | #. I18N: Module Configuration 236 | #: Gov4WebtreesModuleTrait.php:90 237 | msgid "Particularly useful in order to manage GOV ids via the Shared Places module. Ids are stored and exportable via GEDCOM tags. " 238 | msgstr "" 239 | 240 | #. I18N: Module Configuration 241 | #: Gov4WebtreesModuleTrait.php:91 242 | msgid "If this option is checked, you usually want to disable the following option. " 243 | msgstr "" 244 | 245 | #. I18N: Module Configuration 246 | #: Gov4WebtreesModuleTrait.php:95 247 | msgid "Outside GEDCOM data" 248 | msgstr "" 249 | 250 | #. I18N: Module Configuration 251 | #: Gov4WebtreesModuleTrait.php:96 252 | msgid "In this case, the GOV ids are stored in a separate database table, which has to be managed manually when moving the respective tree to a different webtrees installation. " 253 | msgstr "" 254 | 255 | #. I18N: Module Configuration 256 | #: Gov4WebtreesModuleTrait.php:97 257 | msgid "When this option is disabled, an alternative edit control is provided, which still allows to reload place hierarchies from the GOV server." 258 | msgstr "" 259 | 260 | #. I18N: Module Configuration 261 | #: Gov4WebtreesModuleTrait.php:101 262 | msgid "Outside GEDCOM data - editable by anyone (including visitors)" 263 | msgstr "" 264 | 265 | #. I18N: Module Configuration 266 | #: Gov4WebtreesModuleTrait.php:102 267 | msgid "This option mainly exists for demo servers and is not recommended otherwise. It has precedence over the preceding option." 268 | msgstr "" 269 | 270 | #. I18N: Module Configuration 271 | #: Gov4WebtreesModuleTrait.php:108 272 | msgid "Show GOV hierarchy for" 273 | msgstr "" 274 | 275 | #. I18N: Module Configuration 276 | #: Gov4WebtreesModuleTrait.php:114 277 | msgid "date of event" 278 | msgstr "" 279 | 280 | #. I18N: Module Configuration 281 | #: Gov4WebtreesModuleTrait.php:118 282 | msgid "present time" 283 | msgstr "" 284 | 285 | #. I18N: Module Configuration 286 | #: Gov4WebtreesModuleTrait.php:122 287 | msgid "both" 288 | msgstr "" 289 | 290 | #. I18N: Module Configuration 291 | #: Gov4WebtreesModuleTrait.php:125 292 | msgid "for events without a date, present time hierarchy will be used regardless of this preference." 293 | msgstr "" 294 | 295 | #. I18N: Module Configuration 296 | #: Gov4WebtreesModuleTrait.php:129 297 | msgid "Show additional info" 298 | msgstr "" 299 | 300 | #. I18N: Module Configuration 301 | #: Gov4WebtreesModuleTrait.php:130 302 | msgid "Display a tooltip indicating the source of the GOV id. This is intended mainly for debugging." 303 | msgstr "" 304 | 305 | #. I18N: Module Configuration 306 | #: Gov4WebtreesModuleTrait.php:135 307 | msgid "Place hierarchy" 308 | msgstr "" 309 | 310 | #. I18N: Module Configuration 311 | #: Gov4WebtreesModuleTrait.php:139 Gov4WebtreesModuleTrait.php:148 312 | #, php-format 313 | msgid "Show objects of type group '%1$s' in hierarchy" 314 | msgstr "" 315 | 316 | #. I18N: Module Configuration 317 | #: Gov4WebtreesModuleTrait.php:140 318 | msgid "Objects of this type strictly do not belong to the administrative hierarchy in the sense that they are no territorial entities (Gebietskörperschaften)." 319 | msgstr "" 320 | 321 | #. I18N: Module Configuration 322 | #. I18N::translate('They often overlap with other objects, which would lead to confusing hierarchies in cases where objects have more than one parent object at a specific time.') . ' ' . 323 | #. I18N: Module Configuration 324 | #: Gov4WebtreesModuleTrait.php:142 325 | msgid "Check this option if you still want organizations to appear in hierarchies, e.g. the United Nations as a higher-level object of sovereign entities." 326 | msgstr "" 327 | 328 | #. I18N: Module Configuration 329 | #: Gov4WebtreesModuleTrait.php:143 Gov4WebtreesModuleTrait.php:151 330 | msgid "In any case, they are still used as fallbacks to determine further higher-level objects." 331 | msgstr "" 332 | 333 | #. I18N: Module Configuration 334 | #: Gov4WebtreesModuleTrait.php:149 335 | msgid "According to the current GOV specification, settlements are not supposed to be parents of other settlements." 336 | msgstr "" 337 | 338 | #. I18N: Module Configuration 339 | #: Gov4WebtreesModuleTrait.php:150 340 | msgid "This policy hasn't been strictly followed though. Check this option if you still want to display settlements in hierarchies." 341 | msgstr "" 342 | 343 | #. I18N: Module Configuration 344 | #: Gov4WebtreesModuleTrait.php:152 345 | msgid "Note: Ultimately it's probably preferable to correct the respective GOV data itself." 346 | msgstr "" 347 | 348 | #. I18N: Module Configuration 349 | #: Gov4WebtreesModuleTrait.php:158 350 | msgid "Administrative" 351 | msgstr "" 352 | 353 | #. I18N: Module Configuration 354 | #: Gov4WebtreesModuleTrait.php:158 355 | #, php-format 356 | msgid "GOV objects belong to different type groups. The GOV place hierarchy is based on objects of type group '%1$s'." 357 | msgstr "" 358 | 359 | #. I18N: Module Configuration 360 | #. I18N::translate('Conceptually, this is similar to the hierarchies provided via $1$s', 'Mini-GOV') . ' ' . 361 | #. I18N: Module Configuration 362 | #: Gov4WebtreesModuleTrait.php:160 363 | #, php-format 364 | msgid "Several object types that are part of this type group in the original model can be seen as problematic in this context, and have been moved to a custom '%1$s' type group." 365 | msgstr "" 366 | 367 | #. I18N: Module Configuration 368 | #: Gov4WebtreesModuleTrait.php:161 369 | msgid "For more fine-grained adjustments, and to view the list of the types and type groups, edit the GOV data locally." 370 | msgstr "" 371 | 372 | #. I18N: Module Configuration 373 | #: Gov4WebtreesModuleTrait.php:162 374 | #, php-format 375 | msgid "See also %1$s for the original list of types and type descriptions." 376 | msgstr "" 377 | 378 | #. I18N: Module Configuration 379 | #: Gov4WebtreesModuleTrait.php:172 380 | msgid "Compact display (administrative levels only as tooltips)" 381 | msgstr "" 382 | 383 | #. I18N: Module Configuration 384 | #: Gov4WebtreesModuleTrait.php:178 385 | msgid "For events with a date range, use the median date" 386 | msgstr "" 387 | 388 | #. I18N: Module Configuration 389 | #: Gov4WebtreesModuleTrait.php:179 390 | msgid "Otherwise, the start date is used (this is more consistent with other date-based calculations in webtrees)." 391 | msgstr "" 392 | 393 | #. I18N: Module Configuration 394 | #: Gov4WebtreesModuleTrait.php:185 395 | msgid "Place text and links" 396 | msgstr "" 397 | 398 | #. I18N: Module Configuration 399 | #: Gov4WebtreesModuleTrait.php:190 400 | msgid "Use place names and links from GOV" 401 | msgstr "" 402 | 403 | #. I18N: Module Configuration 404 | #: Gov4WebtreesModuleTrait.php:191 405 | msgid "'Classic' mode." 406 | msgstr "" 407 | 408 | #. I18N: Module Configuration 409 | #: Gov4WebtreesModuleTrait.php:194 410 | msgid "Use place names and links from GOV, additionally link to places existing in webtrees via icons" 411 | msgstr "" 412 | 413 | #. I18N: Module Configuration 414 | #: Gov4WebtreesModuleTrait.php:195 415 | msgid "'Classic' mode, extended to link to places from the GEDCOM data, if possible." 416 | msgstr "" 417 | 418 | #. I18N: Module Configuration 419 | #: Gov4WebtreesModuleTrait.php:198 420 | msgid "Use place names and link to places existing in webtrees, additionally link to GOV via icons" 421 | msgstr "" 422 | 423 | #. I18N: Module Configuration 424 | #: Gov4WebtreesModuleTrait.php:199 425 | msgid "If this is checked, the displayed GOV hierarchy uses place names from the GEDCOM data, if possible." 426 | msgstr "" 427 | 428 | #. I18N: Module Configuration 429 | #: Gov4WebtreesModuleTrait.php:206 430 | msgid "Place names from GOV" 431 | msgstr "" 432 | 433 | #. I18N: Module Configuration 434 | #: Gov4WebtreesModuleTrait.php:208 435 | msgid "fallback to German place names" 436 | msgstr "" 437 | 438 | #. I18N: Module Configuration 439 | #. I18N::translate('Determines strategy in case the place name is not available in the current or any additional language (for the given date): ') . 440 | #. I18N: Module Configuration 441 | #: Gov4WebtreesModuleTrait.php:210 442 | msgid "As a final fallback, determine the place name according to this checkbox:" 443 | msgstr "" 444 | 445 | #. I18N: Module Configuration 446 | #: Gov4WebtreesModuleTrait.php:211 447 | msgid "If checked, attempt to fall back to the German place name. " 448 | msgstr "" 449 | 450 | #. I18N: Module Configuration 451 | #: Gov4WebtreesModuleTrait.php:212 452 | msgid "If unchecked, prefer any language other than German; " 453 | msgstr "" 454 | 455 | #. I18N: Module Configuration 456 | #: Gov4WebtreesModuleTrait.php:213 457 | msgid "motivated by the assumption that place names in the local language are more useful in general " 458 | msgstr "" 459 | 460 | #. I18N: Module Configuration 461 | #: Gov4WebtreesModuleTrait.php:214 462 | msgid "(Why is German in particular singled out like this? Because the GOV gazetteer is currently rather German-language centric, and therefore many places have German names)." 463 | msgstr "" 464 | 465 | #. I18N: Module Configuration 466 | #: Gov4WebtreesModuleTrait.php:218 467 | msgid "The GOV server provides place names in different languages. However, there is no concept of an 'official language' for a place." 468 | msgstr "" 469 | 470 | #. I18N: Module Configuration 471 | #: Gov4WebtreesModuleTrait.php:219 472 | msgid "For a given place, this module displays one or more names by matching the available names against a list of languages, according to the following strategy:" 473 | msgstr "" 474 | 475 | #. I18N: Module Configuration 476 | #: Gov4WebtreesModuleTrait.php:220 477 | msgid "The current user language always has the highest priority." 478 | msgstr "" 479 | 480 | #. I18N: Module Configuration 481 | #: Gov4WebtreesModuleTrait.php:221 482 | #, php-format 483 | msgid "Additionally, the module checks if the respective GOV id, or any of its parents within the hierarchy, has languages defined in the csv file '%1$s'." 484 | msgstr "" 485 | 486 | #. I18N: Module Configuration 487 | #: Gov4WebtreesModuleTrait.php:222 488 | msgid "These languages are then used, in the given order, either as fallbacks, or (if upper-cased) as additional languages (i.e. 'official languages' for a place hierarchy)." 489 | msgstr "" 490 | 491 | #. I18N: Module Configuration 492 | #: Gov4WebtreesModuleTrait.php:223 493 | #, php-format 494 | msgid "You can create and modify this csv file according to your personal preferences, see '%1$s' for an example." 495 | msgstr "" 496 | 497 | #. I18N: Module Configuration 498 | #: Gov4WebtreesModuleTrait.php:224 499 | msgid "It will not be overwritten by subsequent updates." 500 | msgstr "" 501 | 502 | #. I18N: Module Configuration 503 | #: Gov4WebtreesModuleTrait.php:229 504 | msgid "Internals (adjusted automatically if necessary)" 505 | msgstr "" 506 | 507 | #. I18N: Module Configuration 508 | #: Gov4WebtreesModuleTrait.php:236 509 | msgid "Use NuSOAP instead of SoapClient" 510 | msgstr "" 511 | 512 | #. I18N: Module Configuration 513 | #: Gov4WebtreesModuleTrait.php:237 514 | msgid "Execute requests to the GOV server via NuSOAP, rather than using the native php SoapClient. The native SoapClient is usually enabled (you can check this in your php.ini settings), but may not be provided by all hosters. If the native client is not enabled/available, this option is checked automatically." 515 | msgstr "" 516 | 517 | #. I18N: Module Configuration 518 | #: Gov4WebtreesModuleTrait.php:247 519 | msgid "GOV Id Management" 520 | msgstr "" 521 | 522 | #. I18N: Module Configuration 523 | #: Gov4WebtreesModuleTrait.php:248 524 | msgid "It is recommended to use only one of the following options. You may also (temporarily) disable all editing via unchecking all of them." 525 | msgstr "" 526 | 527 | #: Http/RequestHandlers/GovData.php:67 Http/RequestHandlers/GovData.php:68 528 | #, php-format 529 | msgid "GOV data for %1$s" 530 | msgstr "" 531 | 532 | #: Http/RequestHandlers/GovData.php:73 Http/RequestHandlers/GovDataEdit.php:96 533 | #: Http/RequestHandlers/GovDataList.php:46 534 | msgid "GOV data" 535 | msgstr "" 536 | 537 | #: Http/RequestHandlers/GovDataEdit.php:71 538 | #: resources/views/admin/gov-data.phtml:98 539 | msgid "GOV Object Type" 540 | msgstr "" 541 | 542 | #: Http/RequestHandlers/GovDataEdit.php:73 543 | #: resources/views/admin/gov-data.phtml:29 544 | msgid "GOV Name" 545 | msgstr "" 546 | 547 | #: Http/RequestHandlers/GovDataEdit.php:75 548 | #: resources/views/admin/gov-data.phtml:169 549 | msgid "GOV Parent" 550 | msgstr "" 551 | 552 | #: Http/RequestHandlers/GovDataEdit.php:90 553 | #: Http/RequestHandlers/GovDataEdit.php:91 554 | #, php-format 555 | msgid "Edit %1$s for %2$s" 556 | msgstr "" 557 | 558 | #: Model/GovHierarchyUtils.php:98 559 | msgid "with local modifications" 560 | msgstr "" 561 | 562 | #: Model/GovHierarchyUtils.php:108 563 | msgid "Administrative levels" 564 | msgstr "" 565 | 566 | #: Model/GovHierarchyUtils.php:805 567 | msgid "this place does not exist at this point in time" 568 | msgstr "" 569 | 570 | #: WhatsNew/WhatsNew1.php:11 571 | msgid "Vesta Gov4Webtrees: The displayed GOV hierarchy now additionally links to webtrees places where possible. You can switch back to the classic display (and others) via the module configuration." 572 | msgstr "" 573 | 574 | #: resources/views/admin/gov-data-edit.phtml:88 575 | #: resources/views/admin/gov-data.phtml:31 576 | #: resources/views/admin/gov-data.phtml:99 577 | #: resources/views/admin/gov-data.phtml:170 578 | msgid "From" 579 | msgstr "" 580 | 581 | #: resources/views/admin/gov-data-edit.phtml:99 582 | #: resources/views/admin/gov-data.phtml:32 583 | #: resources/views/admin/gov-data.phtml:100 584 | #: resources/views/admin/gov-data.phtml:171 585 | msgid "To" 586 | msgstr "" 587 | 588 | #: resources/views/admin/gov-data-list.phtml:21 589 | #: resources/views/admin/gov-data.phtml:23 590 | msgid "Data obtained from GOV server. Edited data will be stored as local modifications (outside GEDCOM, just like the original data). Edited data always has precedence over original data. It will not be deleted when hierarchies are reloaded, but can be deleted explicitly here. No data is transferred to the GOV server." 591 | msgstr "" 592 | 593 | #: resources/views/admin/gov-data-list.phtml:27 594 | msgid "Hide data without local modifications" 595 | msgstr "" 596 | 597 | #: resources/views/admin/gov-data-list.phtml:33 598 | msgid "GOV data for" 599 | msgstr "" 600 | 601 | #. I18N: Module Configuration 602 | #: resources/views/admin/gov-data.phtml:83 603 | msgid "Remove this GOV Name?" 604 | msgstr "" 605 | 606 | #. I18N: Module Configuration 607 | #: resources/views/admin/gov-data.phtml:154 608 | msgid "Remove this GOV Object Type?" 609 | msgstr "" 610 | 611 | #. I18N: Module Configuration 612 | #: resources/views/admin/gov-data.phtml:224 613 | msgid "Remove this GOV Parent?" 614 | msgstr "" 615 | 616 | #: resources/views/edit/gov-id-edit-control.phtml:16 617 | msgid "GOV id" 618 | msgstr "" 619 | 620 | #: resources/views/edit/gov-id-edit-control.phtml:27 621 | #: resources/views/edit/gov-id-edit-control.phtml:29 622 | msgid "Look up a matching GOV id on the GOV server" 623 | msgstr "" 624 | 625 | #: resources/views/edit/gov-id-edit-control.phtml:33 626 | msgid "Note: The mapping from place to GOV id is stored outside the gedcom data." 627 | msgstr "" 628 | 629 | #: resources/views/edit/gov-id-edit-control.phtml:34 630 | msgid "Save the current id in order to reload the place hierarchy data from the GOV server." 631 | msgstr "" 632 | 633 | #: resources/views/edit/gov-id-edit-control.phtml:35 634 | msgid "You may also save an empty id in order to remove the mapping." 635 | msgstr "" 636 | 637 | #: resources/views/script/tom-select-initializer-gov.phtml:41 638 | msgid "Please enter at least 10 characters." 639 | msgstr "" 640 | -------------------------------------------------------------------------------- /resources/lang/messages.pot: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the vesta package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: vesta 1.0\n" 10 | "Report-Msgid-Bugs-To: ric@richard-cissee.de\n" 11 | "POT-Creation-Date: 2024-03-13 19:51+0100\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "Language: \n" 16 | "MIME-Version: 1.0\n" 17 | "Content-Type: text/plain; charset=UTF-8\n" 18 | "Content-Transfer-Encoding: 8bit\n" 19 | 20 | #: EditGovMappingController.php:58 21 | #, php-format 22 | msgid "Set GOV id for %1$s" 23 | msgstr "" 24 | 25 | #: EditGovMappingController.php:60 26 | #, php-format 27 | msgid "Reset GOV id for %1$s" 28 | msgstr "" 29 | 30 | #: EditGovMappingController.php:89 31 | #, php-format 32 | msgid "GOV id for %1$s has been removed." 33 | msgstr "" 34 | 35 | #: EditGovMappingController.php:106 36 | #: resources/views/script/tom-select-initializer-gov.phtml:42 37 | msgid "Invalid GOV id! Valid GOV ids are e.g. 'EITTZE_W3091', 'object_1086218'." 38 | msgstr "" 39 | 40 | #: EditGovMappingController.php:116 41 | #, php-format 42 | msgid "GOV id for %1$s has been set to %2$s." 43 | msgstr "" 44 | 45 | #: FunctionsGov.php:682 FunctionsGov.php:685 FunctionsGov.php:688 46 | #: FunctionsGov.php:691 FunctionsGov.php:694 FunctionsGov.php:697 47 | #, php-format 48 | msgid "Administrative (level %1$s)" 49 | msgstr "" 50 | 51 | #: FunctionsGov.php:700 52 | msgid "Administrative (other)" 53 | msgstr "" 54 | 55 | #. I18N: Module Configuration 56 | #. I18N: Module Configuration 57 | #. I18N::translate('Conceptually, this is similar to the hierarchies provided via $1$s', 'Mini-GOV') . ' ' . 58 | #. I18N: Module Configuration 59 | #: FunctionsGov.php:703 Gov4WebtreesModuleTrait.php:139 60 | #: Gov4WebtreesModuleTrait.php:160 61 | msgid "Organizational" 62 | msgstr "" 63 | 64 | #. I18N: Module Configuration 65 | #: FunctionsGov.php:706 Gov4WebtreesModuleTrait.php:148 66 | msgid "Settlement" 67 | msgstr "" 68 | 69 | #: FunctionsGov.php:709 70 | msgid "Religious" 71 | msgstr "" 72 | 73 | #: FunctionsGov.php:712 74 | msgid "Judicial" 75 | msgstr "" 76 | 77 | #: FunctionsGov.php:715 78 | msgid "Civil" 79 | msgstr "" 80 | 81 | #: FunctionsGov.php:718 82 | msgid "Other" 83 | msgstr "" 84 | 85 | #: FunctionsGov.php:1144 86 | msgid "unknown GOV type (newly introduced?)" 87 | msgstr "" 88 | 89 | #: Gov4WebtreesModule.php:151 90 | msgid "GOV id for type of location" 91 | msgstr "" 92 | 93 | #: Gov4WebtreesModule.php:159 94 | msgid "The GOV server seems to be temporarily unavailable." 95 | msgstr "" 96 | 97 | #: Gov4WebtreesModule.php:379 98 | #, php-format 99 | msgid "GOV place hierarchy for %1$s has been reloaded from GOV server." 100 | msgstr "" 101 | 102 | #: Gov4WebtreesModule.php:381 103 | msgid "GOV place hierarchy has been reloaded from GOV server." 104 | msgstr "" 105 | 106 | #: Gov4WebtreesModule.php:424 Gov4WebtreesModule.php:468 107 | msgid "reload the GOV place hierarchy" 108 | msgstr "" 109 | 110 | #: Gov4WebtreesModule.php:484 111 | msgid "Set GOV id (outside GEDCOM)" 112 | msgstr "" 113 | 114 | #: Gov4WebtreesModule.php:486 115 | msgid "Reset GOV id (outside GEDCOM) and reload the GOV place hierarchy" 116 | msgstr "" 117 | 118 | #: Gov4WebtreesModule.php:535 119 | msgid "GOV Hierarchies" 120 | msgstr "" 121 | 122 | #. I18N: custom type for virtual EVEN 123 | #: Gov4WebtreesModule.php:658 124 | msgid "GOV Hierarchy" 125 | msgstr "" 126 | 127 | #: Gov4WebtreesModule.php:814 Gov4WebtreesModule.php:1043 128 | msgid "today" 129 | msgstr "" 130 | 131 | #: Gov4WebtreesModuleTrait.php:26 132 | msgid "A module integrating GOV (historic gazetteer) data." 133 | msgstr "" 134 | 135 | #. I18N: Module Configuration; a link target 136 | #: Gov4WebtreesModuleTrait.php:33 Gov4WebtreesModuleTrait.php:60 137 | msgid "here" 138 | msgstr "" 139 | 140 | #. I18N: Module Configuration 141 | #: Gov4WebtreesModuleTrait.php:36 142 | msgid "A module integrating GOV (historic gazetteer) data. Enhances places with GOV data via the extended 'Facts and events' tab." 143 | msgstr "" 144 | 145 | #. I18N: Module Configuration 146 | #: Gov4WebtreesModuleTrait.php:37 147 | msgid "Place hierarchies are displayed historically, i.e. according to the date of the respective event." 148 | msgstr "" 149 | 150 | #. I18N: Module Configuration 151 | #: Gov4WebtreesModuleTrait.php:38 152 | msgid "All data (except for the mapping of places to GOV ids, which has to be done manually) is retrieved from the GOV server and cached internally." 153 | msgstr "" 154 | 155 | #. I18N: Module Configuration 156 | #: Gov4WebtreesModuleTrait.php:39 157 | msgid "Consequently, place hierarchy information can only be changed indirectly, via the GOV website." 158 | msgstr "" 159 | 160 | #. I18N: Module Configuration 161 | #: Gov4WebtreesModuleTrait.php:40 162 | msgid "GOV ids are stored outside GEDCOM data by default, but ids stored via _GOV tags are also supported." 163 | msgstr "" 164 | 165 | #. I18N: Module Configuration 166 | #: Gov4WebtreesModuleTrait.php:41 167 | msgid "In particular, the Shared Places custom module may be used to manage GOV ids within GEDCOM data." 168 | msgstr "" 169 | 170 | #. I18N: Module Configuration 171 | #: Gov4WebtreesModuleTrait.php:49 172 | #, php-format 173 | msgid "You may modify all data retrieved from the GOV server %1$s." 174 | msgstr "" 175 | 176 | #. I18N: Module Configuration 177 | #: Gov4WebtreesModuleTrait.php:50 178 | msgid "Obvious mistakes should be corrected on the GOV server itself, but there may be cases where this is not easily possible." 179 | msgstr "" 180 | 181 | #. I18N: Module Configuration 182 | #: Gov4WebtreesModuleTrait.php:51 183 | msgid "In particular you may want to revert locally some controversial changes made on the GOV server (such as the object type of the Holy Roman Empire)." 184 | msgstr "" 185 | 186 | #. I18N: Module Configuration 187 | #: Gov4WebtreesModuleTrait.php:52 188 | msgid "In general, hide an object while preserving the overall place hierarchy by moving it to a hidden type group (see preferences)." 189 | msgstr "" 190 | 191 | #. I18N: Module Configuration 192 | #: Gov4WebtreesModuleTrait.php:53 193 | msgid "Hide an object and stop the place hierarchy at that point by moving it to an irrelevant type group." 194 | msgstr "" 195 | 196 | #. I18N: Module Configuration 197 | #: Gov4WebtreesModuleTrait.php:74 198 | msgid "Local GOV data" 199 | msgstr "" 200 | 201 | #. I18N: Module Configuration 202 | #: Gov4WebtreesModuleTrait.php:76 203 | msgid "reset all cached data once" 204 | msgstr "" 205 | 206 | #. I18N: Module Configuration 207 | #: Gov4WebtreesModuleTrait.php:77 208 | msgid "Subsequently, all data is retrieved again from the GOV server. " 209 | msgstr "" 210 | 211 | #. I18N: Module Configuration 212 | #: Gov4WebtreesModuleTrait.php:78 213 | msgid "Usually only required in case of substantial changes of the GOV data. " 214 | msgstr "" 215 | 216 | #. I18N: Module Configuration 217 | #: Gov4WebtreesModuleTrait.php:79 218 | msgid "Mappings of places to GOV ids are not affected." 219 | msgstr "" 220 | 221 | #. I18N: Module Configuration 222 | #: Gov4WebtreesModuleTrait.php:80 223 | msgid "Local modifications are preserved." 224 | msgstr "" 225 | 226 | #. I18N: Module Configuration 227 | #: Gov4WebtreesModuleTrait.php:86 228 | msgid "Where to edit and store GOV ids" 229 | msgstr "" 230 | 231 | #. I18N: Module Configuration 232 | #: Gov4WebtreesModuleTrait.php:89 233 | msgid "Within GEDCOM data (via other custom modules). " 234 | msgstr "" 235 | 236 | #. I18N: Module Configuration 237 | #: Gov4WebtreesModuleTrait.php:90 238 | msgid "Particularly useful in order to manage GOV ids via the Shared Places module. Ids are stored and exportable via GEDCOM tags. " 239 | msgstr "" 240 | 241 | #. I18N: Module Configuration 242 | #: Gov4WebtreesModuleTrait.php:91 243 | msgid "If this option is checked, you usually want to disable the following option. " 244 | msgstr "" 245 | 246 | #. I18N: Module Configuration 247 | #: Gov4WebtreesModuleTrait.php:95 248 | msgid "Outside GEDCOM data" 249 | msgstr "" 250 | 251 | #. I18N: Module Configuration 252 | #: Gov4WebtreesModuleTrait.php:96 253 | msgid "In this case, the GOV ids are stored in a separate database table, which has to be managed manually when moving the respective tree to a different webtrees installation. " 254 | msgstr "" 255 | 256 | #. I18N: Module Configuration 257 | #: Gov4WebtreesModuleTrait.php:97 258 | msgid "When this option is disabled, an alternative edit control is provided, which still allows to reload place hierarchies from the GOV server." 259 | msgstr "" 260 | 261 | #. I18N: Module Configuration 262 | #: Gov4WebtreesModuleTrait.php:101 263 | msgid "Outside GEDCOM data - editable by anyone (including visitors)" 264 | msgstr "" 265 | 266 | #. I18N: Module Configuration 267 | #: Gov4WebtreesModuleTrait.php:102 268 | msgid "This option mainly exists for demo servers and is not recommended otherwise. It has precedence over the preceding option." 269 | msgstr "" 270 | 271 | #. I18N: Module Configuration 272 | #: Gov4WebtreesModuleTrait.php:108 273 | msgid "Show GOV hierarchy for" 274 | msgstr "" 275 | 276 | #. I18N: Module Configuration 277 | #: Gov4WebtreesModuleTrait.php:114 278 | msgid "date of event" 279 | msgstr "" 280 | 281 | #. I18N: Module Configuration 282 | #: Gov4WebtreesModuleTrait.php:118 283 | msgid "present time" 284 | msgstr "" 285 | 286 | #. I18N: Module Configuration 287 | #: Gov4WebtreesModuleTrait.php:122 288 | msgid "both" 289 | msgstr "" 290 | 291 | #. I18N: Module Configuration 292 | #: Gov4WebtreesModuleTrait.php:125 293 | msgid "for events without a date, present time hierarchy will be used regardless of this preference." 294 | msgstr "" 295 | 296 | #. I18N: Module Configuration 297 | #: Gov4WebtreesModuleTrait.php:129 298 | msgid "Show additional info" 299 | msgstr "" 300 | 301 | #. I18N: Module Configuration 302 | #: Gov4WebtreesModuleTrait.php:130 303 | msgid "Display a tooltip indicating the source of the GOV id. This is intended mainly for debugging." 304 | msgstr "" 305 | 306 | #. I18N: Module Configuration 307 | #: Gov4WebtreesModuleTrait.php:135 308 | msgid "Place hierarchy" 309 | msgstr "" 310 | 311 | #. I18N: Module Configuration 312 | #: Gov4WebtreesModuleTrait.php:139 Gov4WebtreesModuleTrait.php:148 313 | #, php-format 314 | msgid "Show objects of type group '%1$s' in hierarchy" 315 | msgstr "" 316 | 317 | #. I18N: Module Configuration 318 | #: Gov4WebtreesModuleTrait.php:140 319 | msgid "Objects of this type strictly do not belong to the administrative hierarchy in the sense that they are no territorial entities (Gebietskörperschaften)." 320 | msgstr "" 321 | 322 | #. I18N: Module Configuration 323 | #. I18N::translate('They often overlap with other objects, which would lead to confusing hierarchies in cases where objects have more than one parent object at a specific time.') . ' ' . 324 | #. I18N: Module Configuration 325 | #: Gov4WebtreesModuleTrait.php:142 326 | msgid "Check this option if you still want organizations to appear in hierarchies, e.g. the United Nations as a higher-level object of sovereign entities." 327 | msgstr "" 328 | 329 | #. I18N: Module Configuration 330 | #: Gov4WebtreesModuleTrait.php:143 Gov4WebtreesModuleTrait.php:151 331 | msgid "In any case, they are still used as fallbacks to determine further higher-level objects." 332 | msgstr "" 333 | 334 | #. I18N: Module Configuration 335 | #: Gov4WebtreesModuleTrait.php:149 336 | msgid "According to the current GOV specification, settlements are not supposed to be parents of other settlements." 337 | msgstr "" 338 | 339 | #. I18N: Module Configuration 340 | #: Gov4WebtreesModuleTrait.php:150 341 | msgid "This policy hasn't been strictly followed though. Check this option if you still want to display settlements in hierarchies." 342 | msgstr "" 343 | 344 | #. I18N: Module Configuration 345 | #: Gov4WebtreesModuleTrait.php:152 346 | msgid "Note: Ultimately it's probably preferable to correct the respective GOV data itself." 347 | msgstr "" 348 | 349 | #. I18N: Module Configuration 350 | #: Gov4WebtreesModuleTrait.php:158 351 | msgid "Administrative" 352 | msgstr "" 353 | 354 | #. I18N: Module Configuration 355 | #: Gov4WebtreesModuleTrait.php:158 356 | #, php-format 357 | msgid "GOV objects belong to different type groups. The GOV place hierarchy is based on objects of type group '%1$s'." 358 | msgstr "" 359 | 360 | #. I18N: Module Configuration 361 | #. I18N::translate('Conceptually, this is similar to the hierarchies provided via $1$s', 'Mini-GOV') . ' ' . 362 | #. I18N: Module Configuration 363 | #: Gov4WebtreesModuleTrait.php:160 364 | #, php-format 365 | msgid "Several object types that are part of this type group in the original model can be seen as problematic in this context, and have been moved to a custom '%1$s' type group." 366 | msgstr "" 367 | 368 | #. I18N: Module Configuration 369 | #: Gov4WebtreesModuleTrait.php:161 370 | msgid "For more fine-grained adjustments, and to view the list of the types and type groups, edit the GOV data locally." 371 | msgstr "" 372 | 373 | #. I18N: Module Configuration 374 | #: Gov4WebtreesModuleTrait.php:162 375 | #, php-format 376 | msgid "See also %1$s for the original list of types and type descriptions." 377 | msgstr "" 378 | 379 | #. I18N: Module Configuration 380 | #: Gov4WebtreesModuleTrait.php:172 381 | msgid "Compact display (administrative levels only as tooltips)" 382 | msgstr "" 383 | 384 | #. I18N: Module Configuration 385 | #: Gov4WebtreesModuleTrait.php:178 386 | msgid "For events with a date range, use the median date" 387 | msgstr "" 388 | 389 | #. I18N: Module Configuration 390 | #: Gov4WebtreesModuleTrait.php:179 391 | msgid "Otherwise, the start date is used (this is more consistent with other date-based calculations in webtrees)." 392 | msgstr "" 393 | 394 | #. I18N: Module Configuration 395 | #: Gov4WebtreesModuleTrait.php:185 396 | msgid "Place text and links" 397 | msgstr "" 398 | 399 | #. I18N: Module Configuration 400 | #: Gov4WebtreesModuleTrait.php:190 401 | msgid "Use place names and links from GOV" 402 | msgstr "" 403 | 404 | #. I18N: Module Configuration 405 | #: Gov4WebtreesModuleTrait.php:191 406 | msgid "'Classic' mode." 407 | msgstr "" 408 | 409 | #. I18N: Module Configuration 410 | #: Gov4WebtreesModuleTrait.php:194 411 | msgid "Use place names and links from GOV, additionally link to places existing in webtrees via icons" 412 | msgstr "" 413 | 414 | #. I18N: Module Configuration 415 | #: Gov4WebtreesModuleTrait.php:195 416 | msgid "'Classic' mode, extended to link to places from the GEDCOM data, if possible." 417 | msgstr "" 418 | 419 | #. I18N: Module Configuration 420 | #: Gov4WebtreesModuleTrait.php:198 421 | msgid "Use place names and link to places existing in webtrees, additionally link to GOV via icons" 422 | msgstr "" 423 | 424 | #. I18N: Module Configuration 425 | #: Gov4WebtreesModuleTrait.php:199 426 | msgid "If this is checked, the displayed GOV hierarchy uses place names from the GEDCOM data, if possible." 427 | msgstr "" 428 | 429 | #. I18N: Module Configuration 430 | #: Gov4WebtreesModuleTrait.php:206 431 | msgid "Place names from GOV" 432 | msgstr "" 433 | 434 | #. I18N: Module Configuration 435 | #: Gov4WebtreesModuleTrait.php:208 436 | msgid "fallback to German place names" 437 | msgstr "" 438 | 439 | #. I18N: Module Configuration 440 | #. I18N::translate('Determines strategy in case the place name is not available in the current or any additional language (for the given date): ') . 441 | #. I18N: Module Configuration 442 | #: Gov4WebtreesModuleTrait.php:210 443 | msgid "As a final fallback, determine the place name according to this checkbox:" 444 | msgstr "" 445 | 446 | #. I18N: Module Configuration 447 | #: Gov4WebtreesModuleTrait.php:211 448 | msgid "If checked, attempt to fall back to the German place name. " 449 | msgstr "" 450 | 451 | #. I18N: Module Configuration 452 | #: Gov4WebtreesModuleTrait.php:212 453 | msgid "If unchecked, prefer any language other than German; " 454 | msgstr "" 455 | 456 | #. I18N: Module Configuration 457 | #: Gov4WebtreesModuleTrait.php:213 458 | msgid "motivated by the assumption that place names in the local language are more useful in general " 459 | msgstr "" 460 | 461 | #. I18N: Module Configuration 462 | #: Gov4WebtreesModuleTrait.php:214 463 | msgid "(Why is German in particular singled out like this? Because the GOV gazetteer is currently rather German-language centric, and therefore many places have German names)." 464 | msgstr "" 465 | 466 | #. I18N: Module Configuration 467 | #: Gov4WebtreesModuleTrait.php:218 468 | msgid "The GOV server provides place names in different languages. However, there is no concept of an 'official language' for a place." 469 | msgstr "" 470 | 471 | #. I18N: Module Configuration 472 | #: Gov4WebtreesModuleTrait.php:219 473 | msgid "For a given place, this module displays one or more names by matching the available names against a list of languages, according to the following strategy:" 474 | msgstr "" 475 | 476 | #. I18N: Module Configuration 477 | #: Gov4WebtreesModuleTrait.php:220 478 | msgid "The current user language always has the highest priority." 479 | msgstr "" 480 | 481 | #. I18N: Module Configuration 482 | #: Gov4WebtreesModuleTrait.php:221 483 | #, php-format 484 | msgid "Additionally, the module checks if the respective GOV id, or any of its parents within the hierarchy, has languages defined in the csv file '%1$s'." 485 | msgstr "" 486 | 487 | #. I18N: Module Configuration 488 | #: Gov4WebtreesModuleTrait.php:222 489 | msgid "These languages are then used, in the given order, either as fallbacks, or (if upper-cased) as additional languages (i.e. 'official languages' for a place hierarchy)." 490 | msgstr "" 491 | 492 | #. I18N: Module Configuration 493 | #: Gov4WebtreesModuleTrait.php:223 494 | #, php-format 495 | msgid "You can create and modify this csv file according to your personal preferences, see '%1$s' for an example." 496 | msgstr "" 497 | 498 | #. I18N: Module Configuration 499 | #: Gov4WebtreesModuleTrait.php:224 500 | msgid "It will not be overwritten by subsequent updates." 501 | msgstr "" 502 | 503 | #. I18N: Module Configuration 504 | #: Gov4WebtreesModuleTrait.php:229 505 | msgid "Internals (adjusted automatically if necessary)" 506 | msgstr "" 507 | 508 | #. I18N: Module Configuration 509 | #: Gov4WebtreesModuleTrait.php:236 510 | msgid "Use NuSOAP instead of SoapClient" 511 | msgstr "" 512 | 513 | #. I18N: Module Configuration 514 | #: Gov4WebtreesModuleTrait.php:237 515 | msgid "Execute requests to the GOV server via NuSOAP, rather than using the native php SoapClient. The native SoapClient is usually enabled (you can check this in your php.ini settings), but may not be provided by all hosters. If the native client is not enabled/available, this option is checked automatically." 516 | msgstr "" 517 | 518 | #. I18N: Module Configuration 519 | #: Gov4WebtreesModuleTrait.php:247 520 | msgid "GOV Id Management" 521 | msgstr "" 522 | 523 | #. I18N: Module Configuration 524 | #: Gov4WebtreesModuleTrait.php:248 525 | msgid "It is recommended to use only one of the following options. You may also (temporarily) disable all editing via unchecking all of them." 526 | msgstr "" 527 | 528 | #: Http/RequestHandlers/GovData.php:67 Http/RequestHandlers/GovData.php:68 529 | #, php-format 530 | msgid "GOV data for %1$s" 531 | msgstr "" 532 | 533 | #: Http/RequestHandlers/GovData.php:73 Http/RequestHandlers/GovDataEdit.php:96 534 | #: Http/RequestHandlers/GovDataList.php:46 535 | msgid "GOV data" 536 | msgstr "" 537 | 538 | #: Http/RequestHandlers/GovDataEdit.php:71 539 | #: resources/views/admin/gov-data.phtml:98 540 | msgid "GOV Object Type" 541 | msgstr "" 542 | 543 | #: Http/RequestHandlers/GovDataEdit.php:73 544 | #: resources/views/admin/gov-data.phtml:29 545 | msgid "GOV Name" 546 | msgstr "" 547 | 548 | #: Http/RequestHandlers/GovDataEdit.php:75 549 | #: resources/views/admin/gov-data.phtml:169 550 | msgid "GOV Parent" 551 | msgstr "" 552 | 553 | #: Http/RequestHandlers/GovDataEdit.php:90 554 | #: Http/RequestHandlers/GovDataEdit.php:91 555 | #, php-format 556 | msgid "Edit %1$s for %2$s" 557 | msgstr "" 558 | 559 | #: Model/GovHierarchyUtils.php:98 560 | msgid "with local modifications" 561 | msgstr "" 562 | 563 | #: Model/GovHierarchyUtils.php:108 564 | msgid "Administrative levels" 565 | msgstr "" 566 | 567 | #: Model/GovHierarchyUtils.php:805 568 | msgid "this place does not exist at this point in time" 569 | msgstr "" 570 | 571 | #: WhatsNew/WhatsNew1.php:11 572 | msgid "Vesta Gov4Webtrees: The displayed GOV hierarchy now additionally links to webtrees places where possible. You can switch back to the classic display (and others) via the module configuration." 573 | msgstr "" 574 | 575 | #: resources/views/admin/gov-data-edit.phtml:88 576 | #: resources/views/admin/gov-data.phtml:31 577 | #: resources/views/admin/gov-data.phtml:99 578 | #: resources/views/admin/gov-data.phtml:170 579 | msgid "From" 580 | msgstr "" 581 | 582 | #: resources/views/admin/gov-data-edit.phtml:99 583 | #: resources/views/admin/gov-data.phtml:32 584 | #: resources/views/admin/gov-data.phtml:100 585 | #: resources/views/admin/gov-data.phtml:171 586 | msgid "To" 587 | msgstr "" 588 | 589 | #: resources/views/admin/gov-data-list.phtml:21 590 | #: resources/views/admin/gov-data.phtml:23 591 | msgid "Data obtained from GOV server. Edited data will be stored as local modifications (outside GEDCOM, just like the original data). Edited data always has precedence over original data. It will not be deleted when hierarchies are reloaded, but can be deleted explicitly here. No data is transferred to the GOV server." 592 | msgstr "" 593 | 594 | #: resources/views/admin/gov-data-list.phtml:27 595 | msgid "Hide data without local modifications" 596 | msgstr "" 597 | 598 | #: resources/views/admin/gov-data-list.phtml:33 599 | msgid "GOV data for" 600 | msgstr "" 601 | 602 | #. I18N: Module Configuration 603 | #: resources/views/admin/gov-data.phtml:83 604 | msgid "Remove this GOV Name?" 605 | msgstr "" 606 | 607 | #. I18N: Module Configuration 608 | #: resources/views/admin/gov-data.phtml:154 609 | msgid "Remove this GOV Object Type?" 610 | msgstr "" 611 | 612 | #. I18N: Module Configuration 613 | #: resources/views/admin/gov-data.phtml:224 614 | msgid "Remove this GOV Parent?" 615 | msgstr "" 616 | 617 | #: resources/views/edit/gov-id-edit-control.phtml:16 618 | msgid "GOV id" 619 | msgstr "" 620 | 621 | #: resources/views/edit/gov-id-edit-control.phtml:27 622 | #: resources/views/edit/gov-id-edit-control.phtml:29 623 | msgid "Look up a matching GOV id on the GOV server" 624 | msgstr "" 625 | 626 | #: resources/views/edit/gov-id-edit-control.phtml:33 627 | msgid "Note: The mapping from place to GOV id is stored outside the gedcom data." 628 | msgstr "" 629 | 630 | #: resources/views/edit/gov-id-edit-control.phtml:34 631 | msgid "Save the current id in order to reload the place hierarchy data from the GOV server." 632 | msgstr "" 633 | 634 | #: resources/views/edit/gov-id-edit-control.phtml:35 635 | msgid "You may also save an empty id in order to remove the mapping." 636 | msgstr "" 637 | 638 | #: resources/views/script/tom-select-initializer-gov.phtml:41 639 | msgid "Please enter at least 10 characters." 640 | msgstr "" 641 | -------------------------------------------------------------------------------- /resources/lang/sv.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the vesta package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: vesta 1.0\n" 9 | "Report-Msgid-Bugs-To: ric@richard-cissee.de\n" 10 | "POT-Creation-Date: 2024-03-13 19:51+0100\n" 11 | "PO-Revision-Date: 2023-01-18 09:49+0000\n" 12 | "Last-Translator: tygyh \n" 13 | "Language-Team: Swedish \n" 14 | "Language: sv\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 19 | "X-Generator: Weblate 4.15.1-dev\n" 20 | 21 | #. I18N: Module Configuration 22 | #: Gov4WebtreesModuleTrait.php:195 23 | msgid "'Classic' mode, extended to link to places from the GEDCOM data, if possible." 24 | msgstr "" 25 | 26 | #. I18N: Module Configuration 27 | #: Gov4WebtreesModuleTrait.php:191 28 | msgid "'Classic' mode." 29 | msgstr "" 30 | 31 | #. I18N: Module Configuration 32 | #: Gov4WebtreesModuleTrait.php:214 33 | msgid "(Why is German in particular singled out like this? Because the GOV gazetteer is currently rather German-language centric, and therefore many places have German names)." 34 | msgstr "" 35 | 36 | #: Gov4WebtreesModuleTrait.php:26 37 | msgid "A module integrating GOV (historic gazetteer) data." 38 | msgstr "" 39 | 40 | #. I18N: Module Configuration 41 | #: Gov4WebtreesModuleTrait.php:36 42 | msgid "A module integrating GOV (historic gazetteer) data. Enhances places with GOV data via the extended 'Facts and events' tab." 43 | msgstr "" 44 | 45 | #. I18N: Module Configuration 46 | #: Gov4WebtreesModuleTrait.php:149 47 | msgid "According to the current GOV specification, settlements are not supposed to be parents of other settlements." 48 | msgstr "" 49 | 50 | #. I18N: Module Configuration 51 | #: Gov4WebtreesModuleTrait.php:221 52 | #, php-format 53 | msgid "Additionally, the module checks if the respective GOV id, or any of its parents within the hierarchy, has languages defined in the csv file '%1$s'." 54 | msgstr "" 55 | 56 | #. I18N: Module Configuration 57 | #: Gov4WebtreesModuleTrait.php:158 58 | msgid "Administrative" 59 | msgstr "" 60 | 61 | #: FunctionsGov.php:682 FunctionsGov.php:685 FunctionsGov.php:688 62 | #: FunctionsGov.php:691 FunctionsGov.php:694 FunctionsGov.php:697 63 | #, php-format 64 | msgid "Administrative (level %1$s)" 65 | msgstr "Administrativ (nivå %1$s)" 66 | 67 | #: FunctionsGov.php:700 68 | msgid "Administrative (other)" 69 | msgstr "Administrativ (övrigt)" 70 | 71 | #: Model/GovHierarchyUtils.php:108 72 | msgid "Administrative levels" 73 | msgstr "" 74 | 75 | #. I18N: Module Configuration 76 | #: Gov4WebtreesModuleTrait.php:38 77 | msgid "All data (except for the mapping of places to GOV ids, which has to be done manually) is retrieved from the GOV server and cached internally." 78 | msgstr "" 79 | 80 | #. I18N: Module Configuration 81 | #. I18N::translate('Determines strategy in case the place name is not available in the current or any additional language (for the given date): ') . 82 | #. I18N: Module Configuration 83 | #: Gov4WebtreesModuleTrait.php:210 84 | msgid "As a final fallback, determine the place name according to this checkbox:" 85 | msgstr "" 86 | 87 | #. I18N: Module Configuration 88 | #. I18N::translate('They often overlap with other objects, which would lead to confusing hierarchies in cases where objects have more than one parent object at a specific time.') . ' ' . 89 | #. I18N: Module Configuration 90 | #: Gov4WebtreesModuleTrait.php:142 91 | msgid "Check this option if you still want organizations to appear in hierarchies, e.g. the United Nations as a higher-level object of sovereign entities." 92 | msgstr "" 93 | 94 | #: FunctionsGov.php:715 95 | msgid "Civil" 96 | msgstr "" 97 | 98 | #. I18N: Module Configuration 99 | #: Gov4WebtreesModuleTrait.php:172 100 | msgid "Compact display (administrative levels only as tooltips)" 101 | msgstr "" 102 | 103 | #. I18N: Module Configuration 104 | #: Gov4WebtreesModuleTrait.php:39 105 | msgid "Consequently, place hierarchy information can only be changed indirectly, via the GOV website." 106 | msgstr "" 107 | 108 | #: resources/views/admin/gov-data-list.phtml:21 109 | #: resources/views/admin/gov-data.phtml:23 110 | msgid "Data obtained from GOV server. Edited data will be stored as local modifications (outside GEDCOM, just like the original data). Edited data always has precedence over original data. It will not be deleted when hierarchies are reloaded, but can be deleted explicitly here. No data is transferred to the GOV server." 111 | msgstr "" 112 | 113 | #. I18N: Module Configuration 114 | #: Gov4WebtreesModuleTrait.php:130 115 | msgid "Display a tooltip indicating the source of the GOV id. This is intended mainly for debugging." 116 | msgstr "" 117 | 118 | #: Http/RequestHandlers/GovDataEdit.php:90 119 | #: Http/RequestHandlers/GovDataEdit.php:91 120 | #, php-format 121 | msgid "Edit %1$s for %2$s" 122 | msgstr "" 123 | 124 | #. I18N: Module Configuration 125 | #: Gov4WebtreesModuleTrait.php:237 126 | msgid "Execute requests to the GOV server via NuSOAP, rather than using the native php SoapClient. The native SoapClient is usually enabled (you can check this in your php.ini settings), but may not be provided by all hosters. If the native client is not enabled/available, this option is checked automatically." 127 | msgstr "" 128 | 129 | #. I18N: Module Configuration 130 | #: Gov4WebtreesModuleTrait.php:219 131 | msgid "For a given place, this module displays one or more names by matching the available names against a list of languages, according to the following strategy:" 132 | msgstr "" 133 | 134 | #. I18N: Module Configuration 135 | #: Gov4WebtreesModuleTrait.php:178 136 | msgid "For events with a date range, use the median date" 137 | msgstr "" 138 | 139 | #. I18N: Module Configuration 140 | #: Gov4WebtreesModuleTrait.php:161 141 | msgid "For more fine-grained adjustments, and to view the list of the types and type groups, edit the GOV data locally." 142 | msgstr "" 143 | 144 | #: resources/views/admin/gov-data-edit.phtml:88 145 | #: resources/views/admin/gov-data.phtml:31 146 | #: resources/views/admin/gov-data.phtml:99 147 | #: resources/views/admin/gov-data.phtml:170 148 | msgid "From" 149 | msgstr "" 150 | 151 | #: Gov4WebtreesModule.php:535 152 | msgid "GOV Hierarchies" 153 | msgstr "" 154 | 155 | #. I18N: custom type for virtual EVEN 156 | #: Gov4WebtreesModule.php:658 157 | msgid "GOV Hierarchy" 158 | msgstr "" 159 | 160 | #. I18N: Module Configuration 161 | #: Gov4WebtreesModuleTrait.php:247 162 | msgid "GOV Id Management" 163 | msgstr "" 164 | 165 | #: Http/RequestHandlers/GovDataEdit.php:73 166 | #: resources/views/admin/gov-data.phtml:29 167 | msgid "GOV Name" 168 | msgstr "" 169 | 170 | #: Http/RequestHandlers/GovDataEdit.php:71 171 | #: resources/views/admin/gov-data.phtml:98 172 | msgid "GOV Object Type" 173 | msgstr "" 174 | 175 | #: Http/RequestHandlers/GovDataEdit.php:75 176 | #: resources/views/admin/gov-data.phtml:169 177 | msgid "GOV Parent" 178 | msgstr "" 179 | 180 | #: Http/RequestHandlers/GovData.php:73 Http/RequestHandlers/GovDataEdit.php:96 181 | #: Http/RequestHandlers/GovDataList.php:46 182 | msgid "GOV data" 183 | msgstr "" 184 | 185 | #: resources/views/admin/gov-data-list.phtml:33 186 | msgid "GOV data for" 187 | msgstr "" 188 | 189 | #: Http/RequestHandlers/GovData.php:67 Http/RequestHandlers/GovData.php:68 190 | #, php-format 191 | msgid "GOV data for %1$s" 192 | msgstr "" 193 | 194 | #: resources/views/edit/gov-id-edit-control.phtml:16 195 | msgid "GOV id" 196 | msgstr "" 197 | 198 | #: EditGovMappingController.php:89 199 | #, php-format 200 | msgid "GOV id for %1$s has been removed." 201 | msgstr "GOV-id för %1$s har tagits bort." 202 | 203 | #: EditGovMappingController.php:116 204 | #, php-format 205 | msgid "GOV id for %1$s has been set to %2$s." 206 | msgstr "GOV-id för %1$s har angetts till %2$s." 207 | 208 | #: Gov4WebtreesModule.php:151 209 | msgid "GOV id for type of location" 210 | msgstr "" 211 | 212 | #. I18N: Module Configuration 213 | #: Gov4WebtreesModuleTrait.php:40 214 | msgid "GOV ids are stored outside GEDCOM data by default, but ids stored via _GOV tags are also supported." 215 | msgstr "" 216 | 217 | #. I18N: Module Configuration 218 | #: Gov4WebtreesModuleTrait.php:158 219 | #, php-format 220 | msgid "GOV objects belong to different type groups. The GOV place hierarchy is based on objects of type group '%1$s'." 221 | msgstr "" 222 | 223 | #: Gov4WebtreesModule.php:379 224 | #, php-format 225 | msgid "GOV place hierarchy for %1$s has been reloaded from GOV server." 226 | msgstr "" 227 | 228 | #: Gov4WebtreesModule.php:381 229 | msgid "GOV place hierarchy has been reloaded from GOV server." 230 | msgstr "" 231 | 232 | #. I18N: Module Configuration 233 | #: Gov4WebtreesModuleTrait.php:53 234 | msgid "Hide an object and stop the place hierarchy at that point by moving it to an irrelevant type group." 235 | msgstr "" 236 | 237 | #: resources/views/admin/gov-data-list.phtml:27 238 | msgid "Hide data without local modifications" 239 | msgstr "" 240 | 241 | #. I18N: Module Configuration 242 | #: Gov4WebtreesModuleTrait.php:211 243 | msgid "If checked, attempt to fall back to the German place name. " 244 | msgstr "" 245 | 246 | #. I18N: Module Configuration 247 | #: Gov4WebtreesModuleTrait.php:199 248 | msgid "If this is checked, the displayed GOV hierarchy uses place names from the GEDCOM data, if possible." 249 | msgstr "" 250 | 251 | #. I18N: Module Configuration 252 | #: Gov4WebtreesModuleTrait.php:91 253 | msgid "If this option is checked, you usually want to disable the following option. " 254 | msgstr "" 255 | 256 | #. I18N: Module Configuration 257 | #: Gov4WebtreesModuleTrait.php:212 258 | msgid "If unchecked, prefer any language other than German; " 259 | msgstr "" 260 | 261 | #. I18N: Module Configuration 262 | #: Gov4WebtreesModuleTrait.php:143 Gov4WebtreesModuleTrait.php:151 263 | msgid "In any case, they are still used as fallbacks to determine further higher-level objects." 264 | msgstr "" 265 | 266 | #. I18N: Module Configuration 267 | #: Gov4WebtreesModuleTrait.php:52 268 | msgid "In general, hide an object while preserving the overall place hierarchy by moving it to a hidden type group (see preferences)." 269 | msgstr "" 270 | 271 | #. I18N: Module Configuration 272 | #: Gov4WebtreesModuleTrait.php:51 273 | msgid "In particular you may want to revert locally some controversial changes made on the GOV server (such as the object type of the Holy Roman Empire)." 274 | msgstr "" 275 | 276 | #. I18N: Module Configuration 277 | #: Gov4WebtreesModuleTrait.php:41 278 | msgid "In particular, the Shared Places custom module may be used to manage GOV ids within GEDCOM data." 279 | msgstr "" 280 | 281 | #. I18N: Module Configuration 282 | #: Gov4WebtreesModuleTrait.php:96 283 | msgid "In this case, the GOV ids are stored in a separate database table, which has to be managed manually when moving the respective tree to a different webtrees installation. " 284 | msgstr "" 285 | 286 | #. I18N: Module Configuration 287 | #: Gov4WebtreesModuleTrait.php:229 288 | msgid "Internals (adjusted automatically if necessary)" 289 | msgstr "" 290 | 291 | #: EditGovMappingController.php:106 292 | #: resources/views/script/tom-select-initializer-gov.phtml:42 293 | msgid "Invalid GOV id! Valid GOV ids are e.g. 'EITTZE_W3091', 'object_1086218'." 294 | msgstr "Ogiltigt GOV-id! Giltiga GOV-id:n är t.ex. \"EITTZE_W3091\", \"object_1086218\"." 295 | 296 | #. I18N: Module Configuration 297 | #: Gov4WebtreesModuleTrait.php:248 298 | msgid "It is recommended to use only one of the following options. You may also (temporarily) disable all editing via unchecking all of them." 299 | msgstr "" 300 | 301 | #. I18N: Module Configuration 302 | #: Gov4WebtreesModuleTrait.php:224 303 | msgid "It will not be overwritten by subsequent updates." 304 | msgstr "" 305 | 306 | #: FunctionsGov.php:712 307 | msgid "Judicial" 308 | msgstr "" 309 | 310 | #. I18N: Module Configuration 311 | #: Gov4WebtreesModuleTrait.php:74 312 | msgid "Local GOV data" 313 | msgstr "" 314 | 315 | #. I18N: Module Configuration 316 | #: Gov4WebtreesModuleTrait.php:80 317 | msgid "Local modifications are preserved." 318 | msgstr "" 319 | 320 | #: resources/views/edit/gov-id-edit-control.phtml:27 321 | #: resources/views/edit/gov-id-edit-control.phtml:29 322 | msgid "Look up a matching GOV id on the GOV server" 323 | msgstr "" 324 | 325 | #. I18N: Module Configuration 326 | #: Gov4WebtreesModuleTrait.php:79 327 | msgid "Mappings of places to GOV ids are not affected." 328 | msgstr "" 329 | 330 | #: resources/views/edit/gov-id-edit-control.phtml:33 331 | msgid "Note: The mapping from place to GOV id is stored outside the gedcom data." 332 | msgstr "" 333 | 334 | #. I18N: Module Configuration 335 | #: Gov4WebtreesModuleTrait.php:152 336 | msgid "Note: Ultimately it's probably preferable to correct the respective GOV data itself." 337 | msgstr "" 338 | 339 | #. I18N: Module Configuration 340 | #: Gov4WebtreesModuleTrait.php:140 341 | msgid "Objects of this type strictly do not belong to the administrative hierarchy in the sense that they are no territorial entities (Gebietskörperschaften)." 342 | msgstr "" 343 | 344 | #. I18N: Module Configuration 345 | #: Gov4WebtreesModuleTrait.php:50 346 | msgid "Obvious mistakes should be corrected on the GOV server itself, but there may be cases where this is not easily possible." 347 | msgstr "" 348 | 349 | #. I18N: Module Configuration 350 | #. I18N: Module Configuration 351 | #. I18N::translate('Conceptually, this is similar to the hierarchies provided via $1$s', 'Mini-GOV') . ' ' . 352 | #. I18N: Module Configuration 353 | #: FunctionsGov.php:703 Gov4WebtreesModuleTrait.php:139 354 | #: Gov4WebtreesModuleTrait.php:160 355 | msgid "Organizational" 356 | msgstr "Organisatorisk" 357 | 358 | #: FunctionsGov.php:718 359 | msgid "Other" 360 | msgstr "" 361 | 362 | #. I18N: Module Configuration 363 | #: Gov4WebtreesModuleTrait.php:179 364 | msgid "Otherwise, the start date is used (this is more consistent with other date-based calculations in webtrees)." 365 | msgstr "" 366 | 367 | #. I18N: Module Configuration 368 | #: Gov4WebtreesModuleTrait.php:95 369 | msgid "Outside GEDCOM data" 370 | msgstr "" 371 | 372 | #. I18N: Module Configuration 373 | #: Gov4WebtreesModuleTrait.php:101 374 | msgid "Outside GEDCOM data - editable by anyone (including visitors)" 375 | msgstr "" 376 | 377 | #. I18N: Module Configuration 378 | #: Gov4WebtreesModuleTrait.php:90 379 | msgid "Particularly useful in order to manage GOV ids via the Shared Places module. Ids are stored and exportable via GEDCOM tags. " 380 | msgstr "" 381 | 382 | #. I18N: Module Configuration 383 | #: Gov4WebtreesModuleTrait.php:37 384 | msgid "Place hierarchies are displayed historically, i.e. according to the date of the respective event." 385 | msgstr "" 386 | 387 | #. I18N: Module Configuration 388 | #: Gov4WebtreesModuleTrait.php:135 389 | msgid "Place hierarchy" 390 | msgstr "" 391 | 392 | #. I18N: Module Configuration 393 | #: Gov4WebtreesModuleTrait.php:206 394 | msgid "Place names from GOV" 395 | msgstr "" 396 | 397 | #. I18N: Module Configuration 398 | #: Gov4WebtreesModuleTrait.php:185 399 | msgid "Place text and links" 400 | msgstr "" 401 | 402 | #: resources/views/script/tom-select-initializer-gov.phtml:41 403 | msgid "Please enter at least 10 characters." 404 | msgstr "" 405 | 406 | #: FunctionsGov.php:709 407 | msgid "Religious" 408 | msgstr "Religiös" 409 | 410 | #. I18N: Module Configuration 411 | #: resources/views/admin/gov-data.phtml:83 412 | msgid "Remove this GOV Name?" 413 | msgstr "" 414 | 415 | #. I18N: Module Configuration 416 | #: resources/views/admin/gov-data.phtml:154 417 | msgid "Remove this GOV Object Type?" 418 | msgstr "" 419 | 420 | #. I18N: Module Configuration 421 | #: resources/views/admin/gov-data.phtml:224 422 | msgid "Remove this GOV Parent?" 423 | msgstr "" 424 | 425 | #: Gov4WebtreesModule.php:486 426 | msgid "Reset GOV id (outside GEDCOM) and reload the GOV place hierarchy" 427 | msgstr "" 428 | 429 | #: EditGovMappingController.php:60 430 | #, php-format 431 | msgid "Reset GOV id for %1$s" 432 | msgstr "Återställ GOV-id för %1$s" 433 | 434 | #: resources/views/edit/gov-id-edit-control.phtml:34 435 | msgid "Save the current id in order to reload the place hierarchy data from the GOV server." 436 | msgstr "" 437 | 438 | #. I18N: Module Configuration 439 | #: Gov4WebtreesModuleTrait.php:162 440 | #, php-format 441 | msgid "See also %1$s for the original list of types and type descriptions." 442 | msgstr "" 443 | 444 | #: Gov4WebtreesModule.php:484 445 | msgid "Set GOV id (outside GEDCOM)" 446 | msgstr "" 447 | 448 | #: EditGovMappingController.php:58 449 | #, php-format 450 | msgid "Set GOV id for %1$s" 451 | msgstr "Ange GOV-id för %1$s" 452 | 453 | #. I18N: Module Configuration 454 | #: FunctionsGov.php:706 Gov4WebtreesModuleTrait.php:148 455 | msgid "Settlement" 456 | msgstr "Avräkning" 457 | 458 | #. I18N: Module Configuration 459 | #. I18N::translate('Conceptually, this is similar to the hierarchies provided via $1$s', 'Mini-GOV') . ' ' . 460 | #. I18N: Module Configuration 461 | #: Gov4WebtreesModuleTrait.php:160 462 | #, php-format 463 | msgid "Several object types that are part of this type group in the original model can be seen as problematic in this context, and have been moved to a custom '%1$s' type group." 464 | msgstr "" 465 | 466 | #. I18N: Module Configuration 467 | #: Gov4WebtreesModuleTrait.php:108 468 | msgid "Show GOV hierarchy for" 469 | msgstr "" 470 | 471 | #. I18N: Module Configuration 472 | #: Gov4WebtreesModuleTrait.php:129 473 | msgid "Show additional info" 474 | msgstr "" 475 | 476 | #. I18N: Module Configuration 477 | #: Gov4WebtreesModuleTrait.php:139 Gov4WebtreesModuleTrait.php:148 478 | #, php-format 479 | msgid "Show objects of type group '%1$s' in hierarchy" 480 | msgstr "" 481 | 482 | #. I18N: Module Configuration 483 | #: Gov4WebtreesModuleTrait.php:77 484 | msgid "Subsequently, all data is retrieved again from the GOV server. " 485 | msgstr "" 486 | 487 | #. I18N: Module Configuration 488 | #: Gov4WebtreesModuleTrait.php:218 489 | msgid "The GOV server provides place names in different languages. However, there is no concept of an 'official language' for a place." 490 | msgstr "" 491 | 492 | #: Gov4WebtreesModule.php:159 493 | msgid "The GOV server seems to be temporarily unavailable." 494 | msgstr "" 495 | 496 | #. I18N: Module Configuration 497 | #: Gov4WebtreesModuleTrait.php:220 498 | msgid "The current user language always has the highest priority." 499 | msgstr "" 500 | 501 | #. I18N: Module Configuration 502 | #: Gov4WebtreesModuleTrait.php:222 503 | msgid "These languages are then used, in the given order, either as fallbacks, or (if upper-cased) as additional languages (i.e. 'official languages' for a place hierarchy)." 504 | msgstr "" 505 | 506 | #. I18N: Module Configuration 507 | #: Gov4WebtreesModuleTrait.php:102 508 | msgid "This option mainly exists for demo servers and is not recommended otherwise. It has precedence over the preceding option." 509 | msgstr "" 510 | 511 | #. I18N: Module Configuration 512 | #: Gov4WebtreesModuleTrait.php:150 513 | msgid "This policy hasn't been strictly followed though. Check this option if you still want to display settlements in hierarchies." 514 | msgstr "" 515 | 516 | #: resources/views/admin/gov-data-edit.phtml:99 517 | #: resources/views/admin/gov-data.phtml:32 518 | #: resources/views/admin/gov-data.phtml:100 519 | #: resources/views/admin/gov-data.phtml:171 520 | msgid "To" 521 | msgstr "" 522 | 523 | #. I18N: Module Configuration 524 | #: Gov4WebtreesModuleTrait.php:236 525 | msgid "Use NuSOAP instead of SoapClient" 526 | msgstr "" 527 | 528 | #. I18N: Module Configuration 529 | #: Gov4WebtreesModuleTrait.php:198 530 | msgid "Use place names and link to places existing in webtrees, additionally link to GOV via icons" 531 | msgstr "" 532 | 533 | #. I18N: Module Configuration 534 | #: Gov4WebtreesModuleTrait.php:190 535 | msgid "Use place names and links from GOV" 536 | msgstr "" 537 | 538 | #. I18N: Module Configuration 539 | #: Gov4WebtreesModuleTrait.php:194 540 | msgid "Use place names and links from GOV, additionally link to places existing in webtrees via icons" 541 | msgstr "" 542 | 543 | #. I18N: Module Configuration 544 | #: Gov4WebtreesModuleTrait.php:78 545 | msgid "Usually only required in case of substantial changes of the GOV data. " 546 | msgstr "" 547 | 548 | #: WhatsNew/WhatsNew1.php:11 549 | msgid "Vesta Gov4Webtrees: The displayed GOV hierarchy now additionally links to webtrees places where possible. You can switch back to the classic display (and others) via the module configuration." 550 | msgstr "" 551 | 552 | #. I18N: Module Configuration 553 | #: Gov4WebtreesModuleTrait.php:97 554 | msgid "When this option is disabled, an alternative edit control is provided, which still allows to reload place hierarchies from the GOV server." 555 | msgstr "" 556 | 557 | #. I18N: Module Configuration 558 | #: Gov4WebtreesModuleTrait.php:86 559 | msgid "Where to edit and store GOV ids" 560 | msgstr "" 561 | 562 | #. I18N: Module Configuration 563 | #: Gov4WebtreesModuleTrait.php:89 564 | msgid "Within GEDCOM data (via other custom modules). " 565 | msgstr "" 566 | 567 | #. I18N: Module Configuration 568 | #: Gov4WebtreesModuleTrait.php:223 569 | #, php-format 570 | msgid "You can create and modify this csv file according to your personal preferences, see '%1$s' for an example." 571 | msgstr "" 572 | 573 | #: resources/views/edit/gov-id-edit-control.phtml:35 574 | msgid "You may also save an empty id in order to remove the mapping." 575 | msgstr "" 576 | 577 | #. I18N: Module Configuration 578 | #: Gov4WebtreesModuleTrait.php:49 579 | #, php-format 580 | msgid "You may modify all data retrieved from the GOV server %1$s." 581 | msgstr "" 582 | 583 | #. I18N: Module Configuration 584 | #: Gov4WebtreesModuleTrait.php:122 585 | msgid "both" 586 | msgstr "" 587 | 588 | #. I18N: Module Configuration 589 | #: Gov4WebtreesModuleTrait.php:114 590 | msgid "date of event" 591 | msgstr "" 592 | 593 | #. I18N: Module Configuration 594 | #: Gov4WebtreesModuleTrait.php:208 595 | msgid "fallback to German place names" 596 | msgstr "" 597 | 598 | #. I18N: Module Configuration 599 | #: Gov4WebtreesModuleTrait.php:125 600 | msgid "for events without a date, present time hierarchy will be used regardless of this preference." 601 | msgstr "" 602 | 603 | #. I18N: Module Configuration; a link target 604 | #: Gov4WebtreesModuleTrait.php:33 Gov4WebtreesModuleTrait.php:60 605 | msgid "here" 606 | msgstr "" 607 | 608 | #. I18N: Module Configuration 609 | #: Gov4WebtreesModuleTrait.php:213 610 | msgid "motivated by the assumption that place names in the local language are more useful in general " 611 | msgstr "" 612 | 613 | #. I18N: Module Configuration 614 | #: Gov4WebtreesModuleTrait.php:118 615 | msgid "present time" 616 | msgstr "" 617 | 618 | #: Gov4WebtreesModule.php:424 Gov4WebtreesModule.php:468 619 | msgid "reload the GOV place hierarchy" 620 | msgstr "" 621 | 622 | #. I18N: Module Configuration 623 | #: Gov4WebtreesModuleTrait.php:76 624 | msgid "reset all cached data once" 625 | msgstr "" 626 | 627 | #: Model/GovHierarchyUtils.php:805 628 | msgid "this place does not exist at this point in time" 629 | msgstr "" 630 | 631 | #: Gov4WebtreesModule.php:814 Gov4WebtreesModule.php:1043 632 | msgid "today" 633 | msgstr "" 634 | 635 | #: FunctionsGov.php:1144 636 | msgid "unknown GOV type (newly introduced?)" 637 | msgstr "" 638 | 639 | #: Model/GovHierarchyUtils.php:98 640 | msgid "with local modifications" 641 | msgstr "" 642 | -------------------------------------------------------------------------------- /resources/lang/nb_NO.po: -------------------------------------------------------------------------------- 1 | # SOME DESCRIPTIVE TITLE. 2 | # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER 3 | # This file is distributed under the same license as the vesta package. 4 | # FIRST AUTHOR , YEAR. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: vesta 1.0\n" 9 | "Report-Msgid-Bugs-To: ric@richard-cissee.de\n" 10 | "POT-Creation-Date: 2024-03-13 19:51+0100\n" 11 | "PO-Revision-Date: 2022-12-16 16:50+0000\n" 12 | "Last-Translator: H R Nilsen \n" 13 | "Language-Team: Norwegian Bokmål \n" 14 | "Language: nb_NO\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=UTF-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Plural-Forms: nplurals=2; plural=n != 1;\n" 19 | "X-Generator: Weblate 4.15\n" 20 | 21 | #. I18N: Module Configuration 22 | #: Gov4WebtreesModuleTrait.php:195 23 | msgid "'Classic' mode, extended to link to places from the GEDCOM data, if possible." 24 | msgstr "'Klassisk' modus, utvidet til å koble til steder fra GEDCOM-dataene, om mulig." 25 | 26 | #. I18N: Module Configuration 27 | #: Gov4WebtreesModuleTrait.php:191 28 | msgid "'Classic' mode." 29 | msgstr "\"Klassisk\" modus." 30 | 31 | #. I18N: Module Configuration 32 | #: Gov4WebtreesModuleTrait.php:214 33 | msgid "(Why is German in particular singled out like this? Because the GOV gazetteer is currently rather German-language centric, and therefore many places have German names)." 34 | msgstr "(Hvorfor er tysk spesielt utpekt som dette? Fordi GOV gazetteer er for tiden ganske tyskspråklig sentrisk, og derfor mange steder har tyske navn)." 35 | 36 | #: Gov4WebtreesModuleTrait.php:26 37 | msgid "A module integrating GOV (historic gazetteer) data." 38 | msgstr "En modul som integrerer GOV (historisk gazetteer) data." 39 | 40 | #. I18N: Module Configuration 41 | #: Gov4WebtreesModuleTrait.php:36 42 | msgid "A module integrating GOV (historic gazetteer) data. Enhances places with GOV data via the extended 'Facts and events' tab." 43 | msgstr "En modul som integrerer GOV (historisk gazetteer) data. Forbedrer steder med GOV-data via den utvidede «Fakta og hendelser»-fanen." 44 | 45 | #. I18N: Module Configuration 46 | #: Gov4WebtreesModuleTrait.php:149 47 | msgid "According to the current GOV specification, settlements are not supposed to be parents of other settlements." 48 | msgstr "I henhold til gjeldende GOV-spesifikasjon skal ikke bosetninger være opphav til andre bosetninger." 49 | 50 | #. I18N: Module Configuration 51 | #: Gov4WebtreesModuleTrait.php:221 52 | #, php-format 53 | msgid "Additionally, the module checks if the respective GOV id, or any of its parents within the hierarchy, has languages defined in the csv file '%1$s'." 54 | msgstr "" 55 | 56 | #. I18N: Module Configuration 57 | #: Gov4WebtreesModuleTrait.php:158 58 | msgid "Administrative" 59 | msgstr "" 60 | 61 | #: FunctionsGov.php:682 FunctionsGov.php:685 FunctionsGov.php:688 62 | #: FunctionsGov.php:691 FunctionsGov.php:694 FunctionsGov.php:697 63 | #, php-format 64 | msgid "Administrative (level %1$s)" 65 | msgstr "" 66 | 67 | #: FunctionsGov.php:700 68 | msgid "Administrative (other)" 69 | msgstr "" 70 | 71 | #: Model/GovHierarchyUtils.php:108 72 | msgid "Administrative levels" 73 | msgstr "Administrative nivåer" 74 | 75 | #. I18N: Module Configuration 76 | #: Gov4WebtreesModuleTrait.php:38 77 | msgid "All data (except for the mapping of places to GOV ids, which has to be done manually) is retrieved from the GOV server and cached internally." 78 | msgstr "Alle data (med unntak av tilordning av steder til GOV-ID-er, som må gjøres manuelt) hentes fra GOV-serveren og bufres internt." 79 | 80 | #. I18N: Module Configuration 81 | #. I18N::translate('Determines strategy in case the place name is not available in the current or any additional language (for the given date): ') . 82 | #. I18N: Module Configuration 83 | #: Gov4WebtreesModuleTrait.php:210 84 | msgid "As a final fallback, determine the place name according to this checkbox:" 85 | msgstr "" 86 | 87 | #. I18N: Module Configuration 88 | #. I18N::translate('They often overlap with other objects, which would lead to confusing hierarchies in cases where objects have more than one parent object at a specific time.') . ' ' . 89 | #. I18N: Module Configuration 90 | #: Gov4WebtreesModuleTrait.php:142 91 | msgid "Check this option if you still want organizations to appear in hierarchies, e.g. the United Nations as a higher-level object of sovereign entities." 92 | msgstr "" 93 | 94 | #: FunctionsGov.php:715 95 | msgid "Civil" 96 | msgstr "" 97 | 98 | #. I18N: Module Configuration 99 | #: Gov4WebtreesModuleTrait.php:172 100 | msgid "Compact display (administrative levels only as tooltips)" 101 | msgstr "Kompakt skjerm (bare administrative nivåer som verktøytips)" 102 | 103 | #. I18N: Module Configuration 104 | #: Gov4WebtreesModuleTrait.php:39 105 | msgid "Consequently, place hierarchy information can only be changed indirectly, via the GOV website." 106 | msgstr "Derfor kan stedshierarkiinformasjon bare endres indirekte via GOV-nettstedet." 107 | 108 | #: resources/views/admin/gov-data-list.phtml:21 109 | #: resources/views/admin/gov-data.phtml:23 110 | msgid "Data obtained from GOV server. Edited data will be stored as local modifications (outside GEDCOM, just like the original data). Edited data always has precedence over original data. It will not be deleted when hierarchies are reloaded, but can be deleted explicitly here. No data is transferred to the GOV server." 111 | msgstr "" 112 | 113 | #. I18N: Module Configuration 114 | #: Gov4WebtreesModuleTrait.php:130 115 | msgid "Display a tooltip indicating the source of the GOV id. This is intended mainly for debugging." 116 | msgstr "Vis et verktøytips som angir kilden til GOV-id-en. Dette er hovedsakelig ment for feilsøking." 117 | 118 | #: Http/RequestHandlers/GovDataEdit.php:90 119 | #: Http/RequestHandlers/GovDataEdit.php:91 120 | #, php-format 121 | msgid "Edit %1$s for %2$s" 122 | msgstr "" 123 | 124 | #. I18N: Module Configuration 125 | #: Gov4WebtreesModuleTrait.php:237 126 | msgid "Execute requests to the GOV server via NuSOAP, rather than using the native php SoapClient. The native SoapClient is usually enabled (you can check this in your php.ini settings), but may not be provided by all hosters. If the native client is not enabled/available, this option is checked automatically." 127 | msgstr "Utfør forespørsler til GOV-serveren via NuSOAP, i stedet for å bruke den opprinnelige php SoapClient. Den medfølgende SoapClient er vanligvis aktivert (du kan sjekke dette i php.ini innstillinger), men kan ikke leveres av alle verter. Hvis den opprinnelige klienten ikke er aktivert/tilgjengelig, kontrolleres dette alternativet automatisk." 128 | 129 | #. I18N: Module Configuration 130 | #: Gov4WebtreesModuleTrait.php:219 131 | msgid "For a given place, this module displays one or more names by matching the available names against a list of languages, according to the following strategy:" 132 | msgstr "" 133 | 134 | #. I18N: Module Configuration 135 | #: Gov4WebtreesModuleTrait.php:178 136 | msgid "For events with a date range, use the median date" 137 | msgstr "For hendelser med en datoperiode bruker du mediandatoen" 138 | 139 | #. I18N: Module Configuration 140 | #: Gov4WebtreesModuleTrait.php:161 141 | msgid "For more fine-grained adjustments, and to view the list of the types and type groups, edit the GOV data locally." 142 | msgstr "" 143 | 144 | #: resources/views/admin/gov-data-edit.phtml:88 145 | #: resources/views/admin/gov-data.phtml:31 146 | #: resources/views/admin/gov-data.phtml:99 147 | #: resources/views/admin/gov-data.phtml:170 148 | msgid "From" 149 | msgstr "" 150 | 151 | #: Gov4WebtreesModule.php:535 152 | msgid "GOV Hierarchies" 153 | msgstr "" 154 | 155 | #. I18N: custom type for virtual EVEN 156 | #: Gov4WebtreesModule.php:658 157 | msgid "GOV Hierarchy" 158 | msgstr "" 159 | 160 | #. I18N: Module Configuration 161 | #: Gov4WebtreesModuleTrait.php:247 162 | msgid "GOV Id Management" 163 | msgstr "Administrasjon av GOV ID" 164 | 165 | #: Http/RequestHandlers/GovDataEdit.php:73 166 | #: resources/views/admin/gov-data.phtml:29 167 | msgid "GOV Name" 168 | msgstr "" 169 | 170 | #: Http/RequestHandlers/GovDataEdit.php:71 171 | #: resources/views/admin/gov-data.phtml:98 172 | msgid "GOV Object Type" 173 | msgstr "" 174 | 175 | #: Http/RequestHandlers/GovDataEdit.php:75 176 | #: resources/views/admin/gov-data.phtml:169 177 | msgid "GOV Parent" 178 | msgstr "" 179 | 180 | #: Http/RequestHandlers/GovData.php:73 Http/RequestHandlers/GovDataEdit.php:96 181 | #: Http/RequestHandlers/GovDataList.php:46 182 | msgid "GOV data" 183 | msgstr "" 184 | 185 | #: resources/views/admin/gov-data-list.phtml:33 186 | msgid "GOV data for" 187 | msgstr "" 188 | 189 | #: Http/RequestHandlers/GovData.php:67 Http/RequestHandlers/GovData.php:68 190 | #, php-format 191 | msgid "GOV data for %1$s" 192 | msgstr "" 193 | 194 | #: resources/views/edit/gov-id-edit-control.phtml:16 195 | msgid "GOV id" 196 | msgstr "Gov id" 197 | 198 | #: EditGovMappingController.php:89 199 | #, php-format 200 | msgid "GOV id for %1$s has been removed." 201 | msgstr "GOV id for %1$s er fjernet." 202 | 203 | #: EditGovMappingController.php:116 204 | #, php-format 205 | msgid "GOV id for %1$s has been set to %2$s." 206 | msgstr "GOV id for %1$s er satt til %2$s." 207 | 208 | #: Gov4WebtreesModule.php:151 209 | msgid "GOV id for type of location" 210 | msgstr "" 211 | 212 | #. I18N: Module Configuration 213 | #: Gov4WebtreesModuleTrait.php:40 214 | msgid "GOV ids are stored outside GEDCOM data by default, but ids stored via _GOV tags are also supported." 215 | msgstr "GOV-id-er lagres utenfor GEDCOM-data som standard, men id-er som _GOV-koder, støttes også." 216 | 217 | #. I18N: Module Configuration 218 | #: Gov4WebtreesModuleTrait.php:158 219 | #, php-format 220 | msgid "GOV objects belong to different type groups. The GOV place hierarchy is based on objects of type group '%1$s'." 221 | msgstr "" 222 | 223 | #: Gov4WebtreesModule.php:379 224 | #, php-format 225 | msgid "GOV place hierarchy for %1$s has been reloaded from GOV server." 226 | msgstr "GOV stedhierarkiet for %1$s er lastet på nytt fra GOV-serveren." 227 | 228 | #: Gov4WebtreesModule.php:381 229 | msgid "GOV place hierarchy has been reloaded from GOV server." 230 | msgstr "GOV stedhierarkiet er lastet på nytt fra GOV-serveren." 231 | 232 | #. I18N: Module Configuration 233 | #: Gov4WebtreesModuleTrait.php:53 234 | msgid "Hide an object and stop the place hierarchy at that point by moving it to an irrelevant type group." 235 | msgstr "" 236 | 237 | #: resources/views/admin/gov-data-list.phtml:27 238 | msgid "Hide data without local modifications" 239 | msgstr "" 240 | 241 | #. I18N: Module Configuration 242 | #: Gov4WebtreesModuleTrait.php:211 243 | msgid "If checked, attempt to fall back to the German place name. " 244 | msgstr "Hvis det er merket av, forsøk å falle tilbake til det tyske stedsnavnet. " 245 | 246 | #. I18N: Module Configuration 247 | #: Gov4WebtreesModuleTrait.php:199 248 | msgid "If this is checked, the displayed GOV hierarchy uses place names from the GEDCOM data, if possible." 249 | msgstr "Hvis det er merket av for dette alternativet, bruker det viste GOV-hierarkiet stedsnavn fra GEDCOM-dataene, hvis mulig." 250 | 251 | #. I18N: Module Configuration 252 | #: Gov4WebtreesModuleTrait.php:91 253 | msgid "If this option is checked, you usually want to disable the following option. " 254 | msgstr "Hvis det er merket av for dette alternativet, vil du vanligvis deaktivere følgende alternativ. " 255 | 256 | #. I18N: Module Configuration 257 | #: Gov4WebtreesModuleTrait.php:212 258 | msgid "If unchecked, prefer any language other than German; " 259 | msgstr "Hvis det ikke er merket av for dette, foretrekker du noe annet språk enn tysk. " 260 | 261 | #. I18N: Module Configuration 262 | #: Gov4WebtreesModuleTrait.php:143 Gov4WebtreesModuleTrait.php:151 263 | msgid "In any case, they are still used as fallbacks to determine further higher-level objects." 264 | msgstr "" 265 | 266 | #. I18N: Module Configuration 267 | #: Gov4WebtreesModuleTrait.php:52 268 | msgid "In general, hide an object while preserving the overall place hierarchy by moving it to a hidden type group (see preferences)." 269 | msgstr "" 270 | 271 | #. I18N: Module Configuration 272 | #: Gov4WebtreesModuleTrait.php:51 273 | msgid "In particular you may want to revert locally some controversial changes made on the GOV server (such as the object type of the Holy Roman Empire)." 274 | msgstr "" 275 | 276 | #. I18N: Module Configuration 277 | #: Gov4WebtreesModuleTrait.php:41 278 | msgid "In particular, the Shared Places custom module may be used to manage GOV ids within GEDCOM data." 279 | msgstr "Spesielt kan den egendefinerte modulen Delte steder brukes til å administrere GOV-ID-er i GEDCOM-data." 280 | 281 | #. I18N: Module Configuration 282 | #: Gov4WebtreesModuleTrait.php:96 283 | msgid "In this case, the GOV ids are stored in a separate database table, which has to be managed manually when moving the respective tree to a different webtrees installation. " 284 | msgstr "I dette tilfellet lagres GOV-ID-ene i en egen databasetabell, som må administreres manuelt når du flytter det respektive treet til en annen webtrees installasjon. " 285 | 286 | #. I18N: Module Configuration 287 | #: Gov4WebtreesModuleTrait.php:229 288 | msgid "Internals (adjusted automatically if necessary)" 289 | msgstr "Interne (justeres automatisk om nødvendig)" 290 | 291 | #: EditGovMappingController.php:106 292 | #: resources/views/script/tom-select-initializer-gov.phtml:42 293 | msgid "Invalid GOV id! Valid GOV ids are e.g. 'EITTZE_W3091', 'object_1086218'." 294 | msgstr "Ugyldig GOV-ID! Gyldige GOV-ID-er er f.object_1086218 EITTZE_W3091 eks." 295 | 296 | #. I18N: Module Configuration 297 | #: Gov4WebtreesModuleTrait.php:248 298 | msgid "It is recommended to use only one of the following options. You may also (temporarily) disable all editing via unchecking all of them." 299 | msgstr "Det anbefales å bruke bare ett av følgende alternativer. Du kan også (midlertidig) deaktivere all redigering ved å fjerne merket for dem alle." 300 | 301 | #. I18N: Module Configuration 302 | #: Gov4WebtreesModuleTrait.php:224 303 | msgid "It will not be overwritten by subsequent updates." 304 | msgstr "" 305 | 306 | #: FunctionsGov.php:712 307 | msgid "Judicial" 308 | msgstr "" 309 | 310 | #. I18N: Module Configuration 311 | #: Gov4WebtreesModuleTrait.php:74 312 | msgid "Local GOV data" 313 | msgstr "Lokale GOV-data" 314 | 315 | #. I18N: Module Configuration 316 | #: Gov4WebtreesModuleTrait.php:80 317 | msgid "Local modifications are preserved." 318 | msgstr "" 319 | 320 | #: resources/views/edit/gov-id-edit-control.phtml:27 321 | #: resources/views/edit/gov-id-edit-control.phtml:29 322 | msgid "Look up a matching GOV id on the GOV server" 323 | msgstr "Slå opp en samsvarende GOV-ID på GOV-serveren" 324 | 325 | #. I18N: Module Configuration 326 | #: Gov4WebtreesModuleTrait.php:79 327 | msgid "Mappings of places to GOV ids are not affected." 328 | msgstr "Tilordninger av steder til GOV-ID-er påvirkes ikke." 329 | 330 | #: resources/views/edit/gov-id-edit-control.phtml:33 331 | msgid "Note: The mapping from place to GOV id is stored outside the gedcom data." 332 | msgstr "Merk: Tilordningen fra sted til GOV-ID lagres utenfor gedcom-dataene." 333 | 334 | #. I18N: Module Configuration 335 | #: Gov4WebtreesModuleTrait.php:152 336 | msgid "Note: Ultimately it's probably preferable to correct the respective GOV data itself." 337 | msgstr "Merk: Til syvende og sist er det sannsynligvis å foretrekke å korrigere de respektive GOV-dataene selv." 338 | 339 | #. I18N: Module Configuration 340 | #: Gov4WebtreesModuleTrait.php:140 341 | msgid "Objects of this type strictly do not belong to the administrative hierarchy in the sense that they are no territorial entities (Gebietskörperschaften)." 342 | msgstr "" 343 | 344 | #. I18N: Module Configuration 345 | #: Gov4WebtreesModuleTrait.php:50 346 | msgid "Obvious mistakes should be corrected on the GOV server itself, but there may be cases where this is not easily possible." 347 | msgstr "" 348 | 349 | #. I18N: Module Configuration 350 | #. I18N: Module Configuration 351 | #. I18N::translate('Conceptually, this is similar to the hierarchies provided via $1$s', 'Mini-GOV') . ' ' . 352 | #. I18N: Module Configuration 353 | #: FunctionsGov.php:703 Gov4WebtreesModuleTrait.php:139 354 | #: Gov4WebtreesModuleTrait.php:160 355 | msgid "Organizational" 356 | msgstr "" 357 | 358 | #: FunctionsGov.php:718 359 | msgid "Other" 360 | msgstr "" 361 | 362 | #. I18N: Module Configuration 363 | #: Gov4WebtreesModuleTrait.php:179 364 | msgid "Otherwise, the start date is used (this is more consistent with other date-based calculations in webtrees)." 365 | msgstr "Ellers brukes startdatoen (dette er mer konsistent med andre datobaserte beregninger i webtrees)." 366 | 367 | #. I18N: Module Configuration 368 | #: Gov4WebtreesModuleTrait.php:95 369 | msgid "Outside GEDCOM data" 370 | msgstr "Utenfor GEDCOM-data" 371 | 372 | #. I18N: Module Configuration 373 | #: Gov4WebtreesModuleTrait.php:101 374 | msgid "Outside GEDCOM data - editable by anyone (including visitors)" 375 | msgstr "Utenfor GEDCOM-data - redigerbar av alle (inkludert besøkende)" 376 | 377 | #. I18N: Module Configuration 378 | #: Gov4WebtreesModuleTrait.php:90 379 | msgid "Particularly useful in order to manage GOV ids via the Shared Places module. Ids are stored and exportable via GEDCOM tags. " 380 | msgstr "Spesielt nyttig for å administrere GOV-ID-er via Delte Steder-modulen. Id-er lagres og eksporteres via GEDCOM-koder. " 381 | 382 | #. I18N: Module Configuration 383 | #: Gov4WebtreesModuleTrait.php:37 384 | msgid "Place hierarchies are displayed historically, i.e. according to the date of the respective event." 385 | msgstr "Stedshierarkier vises historisk, det vil si i henhold til datoen for den respektive hendelsen." 386 | 387 | #. I18N: Module Configuration 388 | #: Gov4WebtreesModuleTrait.php:135 389 | msgid "Place hierarchy" 390 | msgstr "" 391 | 392 | #. I18N: Module Configuration 393 | #: Gov4WebtreesModuleTrait.php:206 394 | msgid "Place names from GOV" 395 | msgstr "" 396 | 397 | #. I18N: Module Configuration 398 | #: Gov4WebtreesModuleTrait.php:185 399 | msgid "Place text and links" 400 | msgstr "Stedtekst og koblinger" 401 | 402 | #: resources/views/script/tom-select-initializer-gov.phtml:41 403 | msgid "Please enter at least 10 characters." 404 | msgstr "" 405 | 406 | #: FunctionsGov.php:709 407 | msgid "Religious" 408 | msgstr "" 409 | 410 | #. I18N: Module Configuration 411 | #: resources/views/admin/gov-data.phtml:83 412 | msgid "Remove this GOV Name?" 413 | msgstr "" 414 | 415 | #. I18N: Module Configuration 416 | #: resources/views/admin/gov-data.phtml:154 417 | msgid "Remove this GOV Object Type?" 418 | msgstr "" 419 | 420 | #. I18N: Module Configuration 421 | #: resources/views/admin/gov-data.phtml:224 422 | msgid "Remove this GOV Parent?" 423 | msgstr "" 424 | 425 | #: Gov4WebtreesModule.php:486 426 | msgid "Reset GOV id (outside GEDCOM) and reload the GOV place hierarchy" 427 | msgstr "Tilbakestill GOV-ID (utenfor GEDCOM) og last inn GOV-stedshierarkiet på nytt" 428 | 429 | #: EditGovMappingController.php:60 430 | #, php-format 431 | msgid "Reset GOV id for %1$s" 432 | msgstr "Tilbakestill GOV-ID for %1$s" 433 | 434 | #: resources/views/edit/gov-id-edit-control.phtml:34 435 | msgid "Save the current id in order to reload the place hierarchy data from the GOV server." 436 | msgstr "Lagre gjeldende ID for å laste inn stedshierarkidataene fra GOV-serveren på nytt." 437 | 438 | #. I18N: Module Configuration 439 | #: Gov4WebtreesModuleTrait.php:162 440 | #, php-format 441 | msgid "See also %1$s for the original list of types and type descriptions." 442 | msgstr "" 443 | 444 | #: Gov4WebtreesModule.php:484 445 | msgid "Set GOV id (outside GEDCOM)" 446 | msgstr "Angi GOV-ID (utenfor GEDCOM)" 447 | 448 | #: EditGovMappingController.php:58 449 | #, php-format 450 | msgid "Set GOV id for %1$s" 451 | msgstr "Angi GOV-ID for %1$s" 452 | 453 | #. I18N: Module Configuration 454 | #: FunctionsGov.php:706 Gov4WebtreesModuleTrait.php:148 455 | msgid "Settlement" 456 | msgstr "" 457 | 458 | #. I18N: Module Configuration 459 | #. I18N::translate('Conceptually, this is similar to the hierarchies provided via $1$s', 'Mini-GOV') . ' ' . 460 | #. I18N: Module Configuration 461 | #: Gov4WebtreesModuleTrait.php:160 462 | #, php-format 463 | msgid "Several object types that are part of this type group in the original model can be seen as problematic in this context, and have been moved to a custom '%1$s' type group." 464 | msgstr "" 465 | 466 | #. I18N: Module Configuration 467 | #: Gov4WebtreesModuleTrait.php:108 468 | msgid "Show GOV hierarchy for" 469 | msgstr "Vis GOV-hierarki for" 470 | 471 | #. I18N: Module Configuration 472 | #: Gov4WebtreesModuleTrait.php:129 473 | msgid "Show additional info" 474 | msgstr "Vis mer informasjon" 475 | 476 | #. I18N: Module Configuration 477 | #: Gov4WebtreesModuleTrait.php:139 Gov4WebtreesModuleTrait.php:148 478 | #, php-format 479 | msgid "Show objects of type group '%1$s' in hierarchy" 480 | msgstr "" 481 | 482 | #. I18N: Module Configuration 483 | #: Gov4WebtreesModuleTrait.php:77 484 | msgid "Subsequently, all data is retrieved again from the GOV server. " 485 | msgstr "Deretter hentes alle data på nytt fra GOV-serveren. " 486 | 487 | #. I18N: Module Configuration 488 | #: Gov4WebtreesModuleTrait.php:218 489 | msgid "The GOV server provides place names in different languages. However, there is no concept of an 'official language' for a place." 490 | msgstr "" 491 | 492 | #: Gov4WebtreesModule.php:159 493 | msgid "The GOV server seems to be temporarily unavailable." 494 | msgstr "GOV-serveren ser ut til å være midlertidig utilgjengelig." 495 | 496 | #. I18N: Module Configuration 497 | #: Gov4WebtreesModuleTrait.php:220 498 | msgid "The current user language always has the highest priority." 499 | msgstr "" 500 | 501 | #. I18N: Module Configuration 502 | #: Gov4WebtreesModuleTrait.php:222 503 | msgid "These languages are then used, in the given order, either as fallbacks, or (if upper-cased) as additional languages (i.e. 'official languages' for a place hierarchy)." 504 | msgstr "" 505 | 506 | #. I18N: Module Configuration 507 | #: Gov4WebtreesModuleTrait.php:102 508 | msgid "This option mainly exists for demo servers and is not recommended otherwise. It has precedence over the preceding option." 509 | msgstr "Dette alternativet finnes hovedsakelig for demoservere og anbefales ikke ellers. Det har forrang over det foregående alternativet." 510 | 511 | #. I18N: Module Configuration 512 | #: Gov4WebtreesModuleTrait.php:150 513 | msgid "This policy hasn't been strictly followed though. Check this option if you still want to display settlements in hierarchies." 514 | msgstr "" 515 | 516 | #: resources/views/admin/gov-data-edit.phtml:99 517 | #: resources/views/admin/gov-data.phtml:32 518 | #: resources/views/admin/gov-data.phtml:100 519 | #: resources/views/admin/gov-data.phtml:171 520 | msgid "To" 521 | msgstr "" 522 | 523 | #. I18N: Module Configuration 524 | #: Gov4WebtreesModuleTrait.php:236 525 | msgid "Use NuSOAP instead of SoapClient" 526 | msgstr "Bruk NuSOAP i stedet for SoapClient" 527 | 528 | #. I18N: Module Configuration 529 | #: Gov4WebtreesModuleTrait.php:198 530 | msgid "Use place names and link to places existing in webtrees, additionally link to GOV via icons" 531 | msgstr "Bruk stedsnavn og koble til steder som finnes i webtrees, i tillegg koble til GOV via ikoner" 532 | 533 | #. I18N: Module Configuration 534 | #: Gov4WebtreesModuleTrait.php:190 535 | msgid "Use place names and links from GOV" 536 | msgstr "Bruke stedsnavn og koblinger fra GOV" 537 | 538 | #. I18N: Module Configuration 539 | #: Gov4WebtreesModuleTrait.php:194 540 | msgid "Use place names and links from GOV, additionally link to places existing in webtrees via icons" 541 | msgstr "Bruk stedsnavn og koblinger fra GOV, i tillegg koble til steder som finnes i webtrees via ikoner" 542 | 543 | #. I18N: Module Configuration 544 | #: Gov4WebtreesModuleTrait.php:78 545 | msgid "Usually only required in case of substantial changes of the GOV data. " 546 | msgstr "Vanligvis bare nødvendig i tilfelle betydelige endringer i GOV-dataene. " 547 | 548 | #: WhatsNew/WhatsNew1.php:11 549 | msgid "Vesta Gov4Webtrees: The displayed GOV hierarchy now additionally links to webtrees places where possible. You can switch back to the classic display (and others) via the module configuration." 550 | msgstr "Vesta Gov4Webtrees: Det viste GOV-hierarkiet kobler nå i tillegg til webtrees steder der det er mulig. Du kan bytte tilbake til den klassiske skjermen (og andre) via modulkonfigurasjonen." 551 | 552 | #. I18N: Module Configuration 553 | #: Gov4WebtreesModuleTrait.php:97 554 | msgid "When this option is disabled, an alternative edit control is provided, which still allows to reload place hierarchies from the GOV server." 555 | msgstr "Når dette alternativet er deaktivert, gis en alternativ redigeringskontroll, som fortsatt gjør det mulig å laste inn stedshierarkier fra GOV-serveren på nytt." 556 | 557 | #. I18N: Module Configuration 558 | #: Gov4WebtreesModuleTrait.php:86 559 | msgid "Where to edit and store GOV ids" 560 | msgstr "Hvor du redigerer og lagrer GOV-id-er" 561 | 562 | #. I18N: Module Configuration 563 | #: Gov4WebtreesModuleTrait.php:89 564 | msgid "Within GEDCOM data (via other custom modules). " 565 | msgstr "Innenfor GEDCOM-data (via andre egendefinerte moduler). " 566 | 567 | #. I18N: Module Configuration 568 | #: Gov4WebtreesModuleTrait.php:223 569 | #, php-format 570 | msgid "You can create and modify this csv file according to your personal preferences, see '%1$s' for an example." 571 | msgstr "" 572 | 573 | #: resources/views/edit/gov-id-edit-control.phtml:35 574 | msgid "You may also save an empty id in order to remove the mapping." 575 | msgstr "Du kan også lagre en tom ID for å fjerne tilordningen." 576 | 577 | #. I18N: Module Configuration 578 | #: Gov4WebtreesModuleTrait.php:49 579 | #, php-format 580 | msgid "You may modify all data retrieved from the GOV server %1$s." 581 | msgstr "" 582 | 583 | #. I18N: Module Configuration 584 | #: Gov4WebtreesModuleTrait.php:122 585 | msgid "both" 586 | msgstr "begge" 587 | 588 | #. I18N: Module Configuration 589 | #: Gov4WebtreesModuleTrait.php:114 590 | msgid "date of event" 591 | msgstr "dato for hendelsen" 592 | 593 | #. I18N: Module Configuration 594 | #: Gov4WebtreesModuleTrait.php:208 595 | msgid "fallback to German place names" 596 | msgstr "fallback til tyske stedsnavn" 597 | 598 | #. I18N: Module Configuration 599 | #: Gov4WebtreesModuleTrait.php:125 600 | msgid "for events without a date, present time hierarchy will be used regardless of this preference." 601 | msgstr "for hendelser uten dato, brukes gjeldende nåtidshierarki uavhengig av denne innstillingen." 602 | 603 | #. I18N: Module Configuration; a link target 604 | #: Gov4WebtreesModuleTrait.php:33 Gov4WebtreesModuleTrait.php:60 605 | msgid "here" 606 | msgstr "her" 607 | 608 | #. I18N: Module Configuration 609 | #: Gov4WebtreesModuleTrait.php:213 610 | msgid "motivated by the assumption that place names in the local language are more useful in general " 611 | msgstr "motivert av antagelsen om at stedsnavn på det lokale språket er mer nyttig generelt " 612 | 613 | #. I18N: Module Configuration 614 | #: Gov4WebtreesModuleTrait.php:118 615 | msgid "present time" 616 | msgstr "Nåtid" 617 | 618 | #: Gov4WebtreesModule.php:424 Gov4WebtreesModule.php:468 619 | msgid "reload the GOV place hierarchy" 620 | msgstr "last inn GOV-stedshierarkiet på nytt" 621 | 622 | #. I18N: Module Configuration 623 | #: Gov4WebtreesModuleTrait.php:76 624 | msgid "reset all cached data once" 625 | msgstr "tilbakestill alle bufrede data én gang" 626 | 627 | #: Model/GovHierarchyUtils.php:805 628 | msgid "this place does not exist at this point in time" 629 | msgstr "" 630 | 631 | #: Gov4WebtreesModule.php:814 Gov4WebtreesModule.php:1043 632 | msgid "today" 633 | msgstr "i dag" 634 | 635 | #: FunctionsGov.php:1144 636 | msgid "unknown GOV type (newly introduced?)" 637 | msgstr "" 638 | 639 | #: Model/GovHierarchyUtils.php:98 640 | msgid "with local modifications" 641 | msgstr "" 642 | 643 | #~ msgid "Allow objects of type 'settlement' in hierarchy" 644 | #~ msgstr "Tillat objekter av typen 'bosetninger' i hierarkiet" 645 | 646 | #~ msgid "Determines strategy in case the place name is not available in the current language (for the given date): " 647 | #~ msgstr "Bestemmer strategi i tilfelle stedsnavnet ikke er tilgjengelig på gjeldende språk (for den angitte datoen): " 648 | 649 | #~ msgid "Fallback language" 650 | #~ msgstr "Fallback-språk" 651 | 652 | #~ msgid "This policy hasn't been strictly followed though. Check this option if you end up with incomplete hierarchies otherwise." 653 | #~ msgstr "Denne policyen har dog ikke blitt strengt fulgt. Merk av for dette alternativet hvis du ender opp med ufullstendige hierarkier ellers." 654 | --------------------------------------------------------------------------------