Compare commits

..

29 Commits

Author SHA1 Message Date
145b73a379 Add transcription type "constituted text" 2025-08-25 16:40:12 +02:00
08e58ac709 Add event type "modified" 2025-08-25 15:56:52 +02:00
a422a118d7 Update translation files 2025-08-19 11:59:21 +02:00
2e6e7e2c53 Add transcript status "reviewed"
Close #40
2025-08-19 11:55:44 +02:00
e2192e5828 Allow resource PDFs up to 40 mb 2025-08-07 18:09:38 +02:00
7c865b7271 Add counting parts units: Standalone sheets, double pages, written pages
Close #37
2025-07-22 16:12:55 +02:00
dafe615313 Add measurement types: size of blades 2025-07-14 17:16:35 +02:00
924388e4b9 Fix return types 2025-07-13 02:34:58 +02:00
f06f7e8670 Update translation files 2025-07-11 16:40:09 +02:00
ed4f08c9ac Add transcript status and type 2025-07-11 16:30:07 +02:00
c7e6985915 Update translation files 2025-07-11 08:46:52 +02:00
29cfcfccb3 Update translation files, add Telugu translation 2025-06-30 18:27:05 +02:00
ddfdf97e5b Fix typo in comment 2025-06-26 01:34:26 +02:00
61487fb8e6 Update translation files 2025-06-18 17:49:26 +02:00
81ab95c047 Add own-language names of some Asian languages 2025-06-13 17:35:00 +02:00
86f6a6c26d Update translation files 2025-05-08 16:52:12 +02:00
da950073e9 Add https:// variant for iconclass 2025-05-08 16:17:43 +02:00
29879ac02f Add new event types
- Production of material
- Mentioned place
- Mentioned time
- Received ownership
- Transfered ownershi
2025-05-05 22:56:07 +02:00
5ec93ba619 Add enums for loan types, exhiibition contributor roles 2025-04-04 17:20:16 +02:00
1403f75447 Add new measurement type for diameter of frame 2025-03-19 15:20:46 +01:00
04c378675c Add new measurement types for min / max length, width, etc.
Close #35
2025-03-19 15:03:29 +01:00
60483d897b Disallow setting anything but actors for mentioned events in MDEventsSet 2025-03-14 18:24:59 +01:00
a0348b135a Update MDNodaRepository 2025-03-12 02:44:20 +01:00
45d7c3d455 Map http://d-nb.info/ to the GND 2025-03-11 17:43:43 +01:00
22a30fd52b Update translation files 2025-03-03 17:46:29 +01:00
2e9d0aeff3 Update translation files 2025-02-20 16:07:23 +01:00
9fb9e45893 Add language: Crimean Tatar 2025-02-18 17:43:27 +01:00
4d16367266 Update translation files 2025-02-14 18:16:32 +01:00
1b922ce973 Update translation files 2025-02-14 17:36:48 +01:00
11 changed files with 741 additions and 39 deletions

2
l18n

Submodule l18n updated: 6d8b713c07...df66a3a800

View File

@@ -62,18 +62,24 @@ final class MDEventsSet extends MDValueSet {
'50', // "vererbt" '50', // "vererbt"
'51', // is subject of '51', // is subject of
'52', // Emerged '52', // Emerged
'53', // Production of material
'54', // Mentioned place
'55', // Mentioned time
'56', // Received ownership
'57', // Transferred ownership
'58', // Modified
]; ];
public const EVENTS_PRODUCTION = [1, 7, 9, 10, 19, 20, 26, 27, 28, 38, 39, 48, 52]; public const EVENTS_PRODUCTION = [1, 7, 9, 10, 19, 20, 26, 27, 28, 38, 39, 48, 52];
// Array enthält solche Ereignisse, die nach der Herstellung passiert sein müssen // Array enthält solche Ereignisse, die nach der Herstellung passiert sein müssen
public const EVENTS_POST_PRODUCTION = [2, 3, 6, 8, 11, 13, 14, 15, 32, 34, 37, 40, 41, 42, 43, 44, 45, 46, 47, 49, 50]; public const EVENTS_POST_PRODUCTION = [2, 3, 6, 8, 11, 13, 14, 15, 32, 34, 37, 40, 41, 42, 43, 44, 45, 46, 47, 49, 50, 56, 57, 58];
// Array enthält solche Ereignisse, die vor der Herstellung passiert sein müssen // Array enthält solche Ereignisse, die vor der Herstellung passiert sein müssen
public const EVENTS_PRE_PRODUCTION = [4, 12, 25, 29, 30, 31, 35]; public const EVENTS_PRE_PRODUCTION = [4, 12, 25, 29, 30, 31, 35, 53];
// Array enthält solche Ereignisse, die sich auf Objekte beziehen, die nicht hergestellt wurden // Array enthält solche Ereignisse, die sich auf Objekte beziehen, die nicht hergestellt wurden
public const EVENTS_NO_PRODUCTION = [16, 21, 33, 51]; public const EVENTS_NO_PRODUCTION = [16, 21, 33, 51, 54, 55];
// Array enthält Ereignistypen, die auf Korrespondenzen hinweisen // Array enthält Ereignistypen, die auf Korrespondenzen hinweisen
public const EVENTS_CORRESPONDENCE = [11, 13]; public const EVENTS_CORRESPONDENCE = [11, 13];
@@ -81,9 +87,9 @@ final class MDEventsSet extends MDValueSet {
/* /*
* Constants for event types without places, times, actors * Constants for event types without places, times, actors
*/ */
public const EVENTS_NO_TIME = [5, 22, 23, 36]; public const EVENTS_NO_TIME = [5, 22, 23, 33, 36];
public const EVENTS_NO_ACTOR = [21, 22, 24, 36, 52]; public const EVENTS_NO_ACTOR = [21, 22, 24, 36, 52];
public const EVENTS_NO_PLACE = [5, 23, 24]; public const EVENTS_NO_PLACE = [5, 23, 24, 33];
/** /**
* Gets a list of the entries in a translated version. * Gets a list of the entries in a translated version.

View File

@@ -39,6 +39,7 @@ final class MDLanguagesSet {
'ch', 'ch',
'co', 'co',
'cr', 'cr',
'crh',
'cs', 'cs',
'cu', 'cu',
'cv', 'cv',
@@ -221,10 +222,10 @@ final class MDLanguagesSet {
'ba' => 'Bashkir', 'ba' => 'Bashkir',
'be' => 'беларуская мова', 'be' => 'беларуская мова',
'bg' => 'български език', 'bg' => 'български език',
'bh' => 'Bihari', 'bh' => 'भोजपुरी',
'bi' => 'Bislama', 'bi' => 'Bislama',
'bm' => 'Bambara', 'bm' => 'Bambara',
'bn' => 'Bengali', 'bn' => 'বাংলা',
'bo' => 'བོད་སྐད', 'bo' => 'བོད་སྐད',
'br' => 'Breton', 'br' => 'Breton',
'bs' => 'Bosnian', 'bs' => 'Bosnian',
@@ -233,6 +234,7 @@ final class MDLanguagesSet {
'ch' => 'Chamorro', 'ch' => 'Chamorro',
'co' => 'Corsican', 'co' => 'Corsican',
'cr' => 'Cree', 'cr' => 'Cree',
'crh' => 'Qırımtatar tili',
'cs' => 'čeština', 'cs' => 'čeština',
'cu' => 'словѣньскъ ѩзыкъ', 'cu' => 'словѣньскъ ѩзыкъ',
'cv' => 'Chuvash', 'cv' => 'Chuvash',
@@ -250,7 +252,7 @@ final class MDLanguagesSet {
'es' => 'Spanish; Castilian', 'es' => 'Spanish; Castilian',
'et' => 'Estonian', 'et' => 'Estonian',
'eu' => 'Basque', 'eu' => 'Basque',
'fa' => 'Persian', 'fa' => 'فارسی',
'ff' => 'Fula; Fulah; Pulaar; Pular', 'ff' => 'Fula; Fulah; Pulaar; Pular',
'fi' => 'Finnish', 'fi' => 'Finnish',
'fj' => 'Fijian', 'fj' => 'Fijian',
@@ -265,8 +267,8 @@ final class MDLanguagesSet {
'gu' => 'Gujarati', 'gu' => 'Gujarati',
'gv' => 'Manx', 'gv' => 'Manx',
'ha' => 'Hausa', 'ha' => 'Hausa',
'he' => 'Hebrew (modern)', 'he' => 'עברית',
'hi' => 'Hindi', 'hi' => 'हिन्दी',
'ho' => 'Hiri Motu', 'ho' => 'Hiri Motu',
'hr' => 'Croatian', 'hr' => 'Croatian',
'hsb' => 'Hornjoserbšćina', 'hsb' => 'Hornjoserbšćina',
@@ -284,7 +286,7 @@ final class MDLanguagesSet {
'is' => 'Icelandic', 'is' => 'Icelandic',
'it' => 'Italian', 'it' => 'Italian',
'iu' => 'Inuktitut', 'iu' => 'Inuktitut',
'ja' => 'Japanese (ja)', 'ja' => '日本語',
'jv' => 'Javanese (jv)', 'jv' => 'Javanese (jv)',
'ka' => 'Georgian', 'ka' => 'Georgian',
'kg' => 'Kongo', 'kg' => 'Kongo',
@@ -292,9 +294,9 @@ final class MDLanguagesSet {
'kj' => 'Kwanyama, Kuanyama', 'kj' => 'Kwanyama, Kuanyama',
'kk' => 'Kazakh', 'kk' => 'Kazakh',
'kl' => 'Kalaallisut, Greenlandic', 'kl' => 'Kalaallisut, Greenlandic',
'km' => 'Khmer', 'km' => 'ភាសាខ្មែរ',
'kn' => 'ಕನ್ನಡ', 'kn' => 'ಕನ್ನಡ',
'ko' => 'Korean', 'ko' => '한국어',
'kr' => 'Kanuri', 'kr' => 'Kanuri',
'ks' => 'Kashmiri', 'ks' => 'Kashmiri',
'ku' => 'Kurdish', 'ku' => 'Kurdish',
@@ -314,9 +316,9 @@ final class MDLanguagesSet {
'mh' => 'Marshallese', 'mh' => 'Marshallese',
'mi' => 'Maori', 'mi' => 'Maori',
'mk' => 'Macedonian', 'mk' => 'Macedonian',
'ml' => 'Malayalam', 'ml' => 'മലയാളം',
'mn' => 'Mongolian', 'mn' => 'Монгол',
'mr' => 'Marathi (Mara?hi)', 'mr' => 'मराठी',
'ms' => 'Malay', 'ms' => 'Malay',
'mt' => 'Maltese', 'mt' => 'Maltese',
'my' => 'Burmese', 'my' => 'Burmese',
@@ -341,7 +343,7 @@ final class MDLanguagesSet {
'pdt' => 'Plautdietsch', 'pdt' => 'Plautdietsch',
'pi' => 'Pali', 'pi' => 'Pali',
'pl' => 'Polski', 'pl' => 'Polski',
'ps' => 'Pashto, Pushto', 'ps' => 'پښتو',
'pt' => 'Português', 'pt' => 'Português',
'qu' => 'Quechua', 'qu' => 'Quechua',
'rm' => 'Romansh', 'rm' => 'Romansh',
@@ -349,7 +351,7 @@ final class MDLanguagesSet {
'ro' => 'Română', 'ro' => 'Română',
'ru' => 'Русский', 'ru' => 'Русский',
'rw' => 'Kinyarwanda', 'rw' => 'Kinyarwanda',
'sa' => 'Sanskrit (संस्कृत)', 'sa' => 'संस्कृत',
'sc' => 'Sardinian', 'sc' => 'Sardinian',
'sd' => 'Sindhi', 'sd' => 'Sindhi',
'se' => 'Northern Sami', 'se' => 'Northern Sami',
@@ -367,8 +369,8 @@ final class MDLanguagesSet {
'su' => 'Sundanese', 'su' => 'Sundanese',
'sv' => 'Swedish', 'sv' => 'Swedish',
'sw' => 'Swahili', 'sw' => 'Swahili',
'ta' => 'Tamil', 'ta' => 'தமிழ்',
'te' => 'Telugu', 'te' => 'తెలుగు',
'tg' => 'Tajik', 'tg' => 'Tajik',
'th' => 'ภาษาไทย', 'th' => 'ภาษาไทย',
'ti' => 'Tigrinya', 'ti' => 'Tigrinya',
@@ -386,7 +388,7 @@ final class MDLanguagesSet {
'ur' => 'اردو', 'ur' => 'اردو',
'uz' => 'Uzbek', 'uz' => 'Uzbek',
've' => 'Venda', 've' => 'Venda',
'vi' => 'Vietnamese', 'vi' => 'Tiếng Việt',
'vo' => 'Volapük', 'vo' => 'Volapük',
'wa' => 'Walloon', 'wa' => 'Walloon',
'wen' => 'Sorbisch', 'wen' => 'Sorbisch',
@@ -427,6 +429,7 @@ final class MDLanguagesSet {
'ch' => 'cha', # 'Chamorro', 'ch' => 'cha', # 'Chamorro',
'co' => 'cos', # 'Corsican', 'co' => 'cos', # 'Corsican',
'cr' => 'cre', # 'Cree', 'cr' => 'cre', # 'Cree',
'crh' => 'crh', # 'Crimean Tatar',
'cs' => 'cze', # 'čeština', 'cs' => 'cze', # 'čeština',
'cu' => 'chu', # 'словѣньскъ ѩзыкъ', 'cu' => 'chu', # 'словѣньскъ ѩзыкъ',
'cv' => 'chv', # 'Chuvash', 'cv' => 'chv', # 'Chuvash',

View File

@@ -23,7 +23,7 @@ final class MDRequirementsSet {
// Object images need to be at least 500 px wide // Object images need to be at least 500 px wide
public const MIN_OBJECT_IMAGE_HEIGHT = 540; public const MIN_OBJECT_IMAGE_HEIGHT = 540;
public const MAX_FILESIZE_PDF = 20000000; public const MAX_FILESIZE_PDF = 40000000;
public const TIME_EARLIEST_YEAR = -6000000000; public const TIME_EARLIEST_YEAR = -6000000000;
public const TIME_EARLIEST_DATE = '0001-01-01'; public const TIME_EARLIEST_DATE = '0001-01-01';

View File

@@ -14,6 +14,9 @@ enum MDCountPartsUnit implements MDValueEnumInterface, JsonSerializable, MDMeasu
case parts; case parts;
case sheets; case sheets;
case pages; case pages;
case double_pages;
case standalone_sheets;
case written_pages;
/** /**
* Returns a value of this type based on a string. * Returns a value of this type based on a string.
@@ -28,6 +31,9 @@ enum MDCountPartsUnit implements MDValueEnumInterface, JsonSerializable, MDMeasu
'parts' => self::parts, 'parts' => self::parts,
'pages' => self::pages, 'pages' => self::pages,
'sheets' => self::sheets, 'sheets' => self::sheets,
'double_pages' => self::double_pages,
'standalone_sheets' => self::standalone_sheets,
'written_pages' => self::written_pages,
default => throw new MDpageParameterNotFromListException("Unknown parts counting unit"), default => throw new MDpageParameterNotFromListException("Unknown parts counting unit"),
}; };
@@ -46,6 +52,9 @@ enum MDCountPartsUnit implements MDValueEnumInterface, JsonSerializable, MDMeasu
1 => self::parts, 1 => self::parts,
2 => self::pages, 2 => self::pages,
3 => self::sheets, 3 => self::sheets,
4 => self::double_pages,
5 => self::standalone_sheets,
6 => self::written_pages,
default => throw new MDpageParameterNotFromListException("Unknown parts counting unit"), default => throw new MDpageParameterNotFromListException("Unknown parts counting unit"),
}; };
@@ -84,6 +93,9 @@ enum MDCountPartsUnit implements MDValueEnumInterface, JsonSerializable, MDMeasu
self::parts => 1, self::parts => 1,
self::pages => 2, self::pages => 2,
self::sheets => 3, self::sheets => 3,
self::double_pages => 4,
self::standalone_sheets => 5,
self::written_pages => 6,
# default => throw new MDpageParameterNotFromListException("Unknown measurement type"), # default => throw new MDpageParameterNotFromListException("Unknown measurement type"),
}; };

View File

@@ -0,0 +1,177 @@
<?PHP
/**
* Represents a type of contribution to an exhibition.
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
*/
declare(strict_types = 1);
/**
* Represents a type of contribution to an exhibition.
*/
enum MDExhibitionContributorRole implements MDValueEnumInterface, JsonSerializable {
case concept;
case curator;
case design;
case coordinator;
case protagonist;
/**
* Returns a value of this type based on a string.
*
* @param string $input Input to get a value from.
*
* @return MDExhibitionContributorRole
*/
public static function fromString(string $input):MDExhibitionContributorRole {
return match($input) {
"concept" => self::concept,
"curator" => self::curator,
"design" => self::design,
"coordinator" => self::coordinator,
"protagonist" => self::protagonist,
default => throw new MDpageParameterNotFromListException("Unknown exhibition contributor role"),
};
}
/**
* Returns a value of this type based on an integer.
*
* @param integer $input Input to get a value from.
*
* @return MDExhibitionContributorRole
*/
public static function fromInt(int $input):MDExhibitionContributorRole {
return match($input) {
0 => self::concept,
1 => self::curator,
2 => self::design,
3 => self::coordinator,
4 => self::protagonist,
default => throw new MDpageParameterNotFromListException("Unknown exhibition contributor role"),
};
}
/**
* Lists all available names.
*
* @return array<string>
*/
public static function caseNames():array {
$output = [];
$cases = self::cases();
foreach ($cases as $case) {
$output[] = $case->name;
}
return $output;
}
/**
* Gets an unsorted list of the entries in a translated version.
*
* @param MDTlLoader $tlLoader Translation loader.
*
* @return array<string, string>
*/
public static function getUnsortedList(MDTlLoader $tlLoader):array {
return MDValueSet::getTlUnsortedList($tlLoader, self::caseNames(), "exhibition_contributor_roles", "exhibition_contributor_roles");
}
/**
* Gets a sorted list of the entries in a translated version.
*
* @param MDTlLoader $tlLoader Translation loader.
*
* @return array<string, string>
*/
public static function getSortedList(MDTlLoader $tlLoader):array {
return MDValueSet::getTlSortedList($tlLoader, self::caseNames(), "exhibition_contributor_roles", "exhibition_contributor_roles");
}
/**
* Lists all available names.
*
* @return array<integer>
*/
public static function caseInts():array {
$output = [];
$cases = self::cases();
foreach ($cases as $case) {
$output[] = $case->toInt();
}
return $output;
}
/**
* Returns integer representation of object record status.
*
* @return integer
*/
public function toInt():int {
return match($this) {
self::concept => 0,
self::curator => 1,
self::design => 2,
self::coordinator => 3,
self::protagonist => 4,
};
}
/**
* Returns canonical string representation of object record status.
*
* @return string
*/
public function toString():string {
return match($this) {
self::concept => 'concept',
self::curator => 'curator',
self::design => 'design',
self::coordinator => 'coordinator',
self::protagonist => 'protagonist',
};
}
/**
* Returns the name of the current value in translation.
*
* @param MDTlLoader $tlLoader Translation loader.
*
* @return string
*/
public function getTledName(MDTlLoader $tlLoader):string {
return $tlLoader->tl("exhibition_contributor_roles", "exhibition_contributor_roles", $this->name);
}
/**
* Provides the option to serialize as a string during json_encode().
*
* @return string
*/
public function jsonSerialize():string {
return $this->name;
}
}

143
src/enums/MDLoanType.php Normal file
View File

@@ -0,0 +1,143 @@
<?PHP
declare(strict_types = 1);
/**
* Represents a type of loan.
*/
enum MDLoanType implements MDValueEnumInterface, JsonSerializable {
case outgoing;
case incoming;
/**
* Returns a value of this type based on a string.
*
* @param string $input Input to get a value from.
*
* @return MDLoanType
*/
public static function fromString(string $input):MDLoanType {
return match($input) {
"outgoing" => self::outgoing,
"incoming" => self::incoming,
default => throw new MDpageParameterNotFromListException("Unknown loan type"),
};
}
/**
* Returns a value of this type based on an integer.
*
* @param integer $input Input to get a value from.
*
* @return MDLoanType
*/
public static function fromInt(int $input):MDLoanType {
return match($input) {
0 => self::outgoing,
1 => self::incoming,
default => throw new MDpageParameterNotFromListException("Unknown loan type"),
};
}
/**
* Lists all available names.
*
* @return array<string>
*/
public static function caseNames():array {
$output = [];
$cases = self::cases();
foreach ($cases as $case) {
$output[] = $case->name;
}
return $output;
}
/**
* Gets an unsorted list of the entries in a translated version.
*
* @param MDTlLoader $tlLoader Translation loader.
*
* @return array<string, string>
*/
public static function getUnsortedList(MDTlLoader $tlLoader):array {
return MDValueSet::getTlUnsortedList($tlLoader, self::caseNames(), "loan_types", "loan_types");
}
/**
* Gets a sorted list of the entries in a translated version.
*
* @param MDTlLoader $tlLoader Translation loader.
*
* @return array<string, string>
*/
public static function getSortedList(MDTlLoader $tlLoader):array {
return MDValueSet::getTlSortedList($tlLoader, self::caseNames(), "loan_types", "loan_types");
}
/**
* Lists all available names.
*
* @return array<integer>
*/
public static function caseInts():array {
$output = [];
$cases = self::cases();
foreach ($cases as $case) {
$output[] = $case->toInt();
}
return $output;
}
/**
* Returns integer representation of object record status.
*
* @return integer
*/
public function toInt():int {
return match($this) {
self::outgoing => 0,
self::incoming => 1,
};
}
/**
* Returns the name of the current value in translation.
*
* @param MDTlLoader $tlLoader Translation loader.
*
* @return string
*/
public function getTledName(MDTlLoader $tlLoader):string {
return $tlLoader->tl("loan_types", "loan_types", $this->name);
}
/**
* Provides the option to serialize as a string during json_encode().
*
* @return string
*/
public function jsonSerialize():string {
return $this->name;
}
}

View File

@@ -37,6 +37,18 @@ enum MDMeasurementType implements MDValueEnumInterface, JsonSerializable {
case length_frame; case length_frame;
case height_frame; case height_frame;
case width_frame; case width_frame;
case diameter_frame;
case length_min;
case length_max;
case height_min;
case height_max;
case width_min;
case width_max;
case diameter_min;
case diameter_max;
case length_blade;
case height_blade;
case width_blade;
/** /**
* Returns a value of this type based on a string. * Returns a value of this type based on a string.
@@ -69,6 +81,18 @@ enum MDMeasurementType implements MDValueEnumInterface, JsonSerializable {
'length_frame' => self::length_frame, 'length_frame' => self::length_frame,
'height_frame' => self::height_frame, 'height_frame' => self::height_frame,
'width_frame' => self::width_frame, 'width_frame' => self::width_frame,
'length_min' => self::length_min,
'length_max' => self::length_max,
'height_min' => self::height_min,
'height_max' => self::height_max,
'width_min' => self::width_min,
'width_max' => self::width_max,
'diameter_min' => self::diameter_min,
'diameter_max' => self::diameter_max,
'diameter_frame' => self::diameter_frame,
'length_blade' => self::length_blade,
'height_blade' => self::height_blade,
'width_blade' => self::width_blade,
default => throw new MDpageParameterNotFromListException("Unknown measurement type"), default => throw new MDpageParameterNotFromListException("Unknown measurement type"),
}; };
@@ -105,6 +129,18 @@ enum MDMeasurementType implements MDValueEnumInterface, JsonSerializable {
19 => self::length_frame, 19 => self::length_frame,
20 => self::height_frame, 20 => self::height_frame,
21 => self::width_frame, 21 => self::width_frame,
22 => self::length_min,
23 => self::length_max,
24 => self::height_min,
25 => self::height_max,
26 => self::width_min,
27 => self::width_max,
28 => self::diameter_min,
29 => self::diameter_max,
30 => self::diameter_frame,
31 => self::length_blade,
32 => self::height_blade,
33 => self::width_blade,
default => throw new MDpageParameterNotFromListException("Unknown measurement type"), default => throw new MDpageParameterNotFromListException("Unknown measurement type"),
}; };
@@ -161,6 +197,18 @@ enum MDMeasurementType implements MDValueEnumInterface, JsonSerializable {
self::length_frame => self::length, self::length_frame => self::length,
self::height_frame => self::height, self::height_frame => self::height,
self::width_frame => self::width, self::width_frame => self::width,
self::length_min => self::length,
self::length_max => self::length,
self::height_min => self::height,
self::height_max => self::height,
self::width_min => self::width,
self::width_max => self::width,
self::diameter_min => self::diameter,
self::diameter_max => self::diameter,
self::diameter_frame => self::diameter,
self::length_blade => self::length,
self::height_blade => self::height,
self::width_blade => self::width,
# default => throw new MDpageParameterNotFromListException("Unknown measurement type"), # default => throw new MDpageParameterNotFromListException("Unknown measurement type"),
}; };
@@ -195,6 +243,18 @@ enum MDMeasurementType implements MDValueEnumInterface, JsonSerializable {
self::length_frame => 19, self::length_frame => 19,
self::height_frame => 20, self::height_frame => 20,
self::width_frame => 21, self::width_frame => 21,
self::length_min => 22,
self::length_max => 23,
self::height_min => 24,
self::height_max => 25,
self::width_min => 26,
self::width_max => 27,
self::diameter_min => 28,
self::diameter_max => 29,
self::diameter_frame => 30,
self::length_blade => 31,
self::height_blade => 32,
self::width_blade => 33,
# default => throw new MDpageParameterNotFromListException("Unknown measurement type"), # default => throw new MDpageParameterNotFromListException("Unknown measurement type"),
}; };

View File

@@ -53,37 +53,44 @@ enum MDNodaRepository implements MDValueEnumInterface, JsonSerializable {
return match($input) { return match($input) {
'allgemein' => self::allgemein, // General link to a good source 'allgemein' => self::allgemein, // General link to a good source
'AAT-ID',
'aat' => self::aat, 'aat' => self::aat,
'ackerbau' => self::ackerbau, 'ackerbau' => self::ackerbau,
'bne' => self::bne, 'bne' => self::bne,
'bnf' => self::bnf, 'bnf' => self::bnf,
'cona' => self::cona, 'cona' => self::cona,
'edition humboldt digital' => self::editionhumboldtdigital, 'edition humboldt digital' => self::editionhumboldtdigital,
'gnd' => self::gnd, 'gnd',
'GND' => self::gnd, 'GND',
'o-gnd' => self::gnd, 'o-gnd',
'O-GND' => self::gnd, 'O-GND',
'pnd' => self::gnd, 'GND-Identnummer',
'http://d-nb.info/gnd' => self::gnd, 'GND-Nummer',
'http://d-nb.info/gnd/' => self::gnd, 'pnd',
'd-nb.info' => self::gnd, 'http://d-nb.info/', // This is technically wrong, but used in practice...
'd-nb' => self::gnd, 'http://d-nb.info/gnd',
'https://portal.dnb.de' => self::gnd, 'http://d-nb.info/gnd/',
'd-nb.info',
'd-nb',
'https://portal.dnb.de',
'https://explore.gnd.network/gnd/' => self::gnd, 'https://explore.gnd.network/gnd/' => self::gnd,
'grobsystematik' => self::grobsystematik, 'grobsystematik' => self::grobsystematik,
'iconclass' => self::iconclass, 'iconclass' => self::iconclass,
'Iconclass' => self::iconclass,
'http://iconclass.org' => self::iconclass,
'https://iconclass.org' => self::iconclass,
'klbb' => self::klbb, 'klbb' => self::klbb,
'kl-bb' => self::klbb, 'kl-bb' => self::klbb,
'lcsh' => self::lcsh, 'lcsh' => self::lcsh,
'loc' => self::loc, // Duplicate? 'loc' => self::loc, // Duplicate?
'mindat.org' => self::mindatorg, 'mindat.org' => self::mindatorg,
'moebeltypologie' => self::moebeltypologie, 'moebeltypologie' => self::moebeltypologie,
'ndb/adb' => self::ndb_adb, 'ndb/adb',
'NDB/ADB' => self::ndb_adb, 'NDB/ADB' => self::ndb_adb,
'ndl' => self::ndl, 'ndl' => self::ndl,
'ndp-ikmk' => self::ndp_ikmk, 'ndp-ikmk' => self::ndp_ikmk,
'ndp-ikmk-persons' => self::ndp_ikmk_persons, 'ndp-ikmk-persons' => self::ndp_ikmk_persons,
'nomisma' => self::nomisma, 'nomisma',
'nomisma.org' => self::nomisma, 'nomisma.org' => self::nomisma,
'npg' => self::npg, 'npg' => self::npg,
'oberbegriffsdatei' => self::oberbegriffsdatei, 'oberbegriffsdatei' => self::oberbegriffsdatei,
@@ -94,11 +101,11 @@ enum MDNodaRepository implements MDValueEnumInterface, JsonSerializable {
'rkd' => self::rkd, 'rkd' => self::rkd,
'ulan' => self::ulan, 'ulan' => self::ulan,
'ULAN' => self::ulan, 'ULAN' => self::ulan,
'viaf' => self::viaf, 'viaf',
'VIAF' => self::viaf, 'VIAF' => self::viaf,
'wikidata' => self::wikidata, 'wikidata',
'Wikidata' => self::wikidata, 'Wikidata',
'www.wikidata.org' => self::wikidata, 'www.wikidata.org',
'WIKIDATA' => self::wikidata, 'WIKIDATA' => self::wikidata,
default => throw new MDpageParameterNotFromListException("Unknown norm data repository: '" . $input . "'"), default => throw new MDpageParameterNotFromListException("Unknown norm data repository: '" . $input . "'"),
}; };

View File

@@ -0,0 +1,147 @@
<?PHP
/**
* Represents a type of check an object may be subject to (completeness, condition, general audit).
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
*/
declare(strict_types = 1);
/**
* Represents a type of check an object may be subject to (completeness, condition, general audit).
*/
enum MDTranscriptionStatus implements MDValueEnumInterface, JsonSerializable {
case incomplete;
case machine_generated;
case rough_draft;
case quality_control_failed;
case quality_control_passed;
case reviewed;
/**
* Returns a value of this type based on a string.
*
* @param string $input Input to get a value from.
*
* @return MDTranscriptionStatus
*/
public static function fromString(string $input):MDTranscriptionStatus {
return match($input) {
'incomplete' => self::incomplete,
'machine_generated' => self::machine_generated,
'rough_draft' => self::rough_draft,
'quality_control_failed' => self::quality_control_failed,
'quality_control_passed' => self::quality_control_passed,
'reviewed' => self::reviewed,
default => throw new MDpageParameterNotFromListException("Unknown transcript status"),
};
}
/**
* Returns a value of this status based on an integer.
*
* @param integer $input Input to get a value from.
*
* @return MDTranscriptionStatus
*/
public static function fromInt(int $input):MDTranscriptionStatus {
return match($input) {
1 => self::incomplete,
2 => self::machine_generated,
3 => self::rough_draft,
4 => self::quality_control_failed,
5 => self::quality_control_passed,
6 => self::reviewed,
default => throw new MDpageParameterNotFromListException("Unknown transcript status"),
};
}
/**
* Lists all available names.
*
* @return array<string>
*/
public static function caseNames():array {
$output = [];
$cases = self::cases();
foreach ($cases as $case) {
$output[] = $case->name;
}
return $output;
}
/**
* Returns an integer representation of the collective (for storage in DB).
*
* @return integer
*/
public function toInt():int {
return match($this) {
self::incomplete => 1,
self::machine_generated => 2,
self::rough_draft => 3,
self::quality_control_failed => 4,
self::quality_control_passed => 5,
self::reviewed => 6,
# default => throw new MDpageParameterNotFromListException("Unknown transcription type"),
};
}
/**
* Gets an unsorted list of the entries in a translated version.
*
* @param MDTlLoader $tlLoader Translation loader.
*
* @return array<string, string>
*/
public static function getUnsortedList(MDTlLoader $tlLoader):array {
return MDValueSet::getTlUnsortedList($tlLoader, self::caseNames(), "transcript_status", "transcript_status");
}
/**
* Gets a sorted list of the entries in a translated version.
*
* @param MDTlLoader $tlLoader Translation loader.
*
* @return array<string, string>
*/
public static function getSortedList(MDTlLoader $tlLoader):array {
return MDValueSet::getTlSortedList($tlLoader, self::caseNames(), "transcript_status", "transcript_status");
}
/**
* Returns the name of the current value in translation.
*
* @param MDTlLoader $tlLoader Translation loader.
*
* @return string
*/
public function getTledName(MDTlLoader $tlLoader):string {
return $tlLoader->tl("transcript_status", "transcript_status", $this->name);
}
/**
* Provides the option to serialize as a string during json_encode().
*
* @return string
*/
public function jsonSerialize():string {
return $this->name;
}
}

View File

@@ -0,0 +1,147 @@
<?PHP
/**
* Represents a type a transcription was generated towards.
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
*/
declare(strict_types = 1);
/**
* Represents a type a transcription was generated towards.
*/
enum MDTranscriptionType implements MDValueEnumInterface, JsonSerializable {
case simple_transcription;
case diplomatic_transcription;
case critical_edition;
case historical_critical_edition;
case reading_edition;
case constituted_text;
/**
* Returns a value of this type based on a string.
*
* @param string $input Input to get a value from.
*
* @return MDTranscriptionType
*/
public static function fromString(string $input):MDTranscriptionType {
return match($input) {
'simple_transcription' => self::simple_transcription,
'diplomatic_transcription' => self::diplomatic_transcription,
'critical_edition' => self::critical_edition,
'historical_critical_edition' => self::historical_critical_edition,
'reading_edition' => self::reading_edition,
'constituted_text' => self::constituted_text,
default => throw new MDpageParameterNotFromListException("Unknown transcription type"),
};
}
/**
* Returns a value of this type based on an integer.
*
* @param integer $input Input to get a value from.
*
* @return MDTranscriptionType
*/
public static function fromInt(int $input):MDTranscriptionType {
return match($input) {
1 => self::simple_transcription,
2 => self::diplomatic_transcription,
3 => self::critical_edition,
4 => self::historical_critical_edition,
5 => self::reading_edition,
6 => self::constituted_text,
default => throw new MDpageParameterNotFromListException("Unknown transcript type"),
};
}
/**
* Lists all available names.
*
* @return array<string>
*/
public static function caseNames():array {
$output = [];
$cases = self::cases();
foreach ($cases as $case) {
$output[] = $case->name;
}
return $output;
}
/**
* Returns an integer representation of the collective (for storage in DB).
*
* @return integer
*/
public function toInt():int {
return match($this) {
self::simple_transcription => 1,
self::diplomatic_transcription => 2,
self::critical_edition => 3,
self::historical_critical_edition => 4,
self::reading_edition => 5,
self::constituted_text => 6,
# default => throw new MDpageParameterNotFromListException("Unknown TranscriptionTypee"),
};
}
/**
* Gets an unsorted list of the entries in a translated version.
*
* @param MDTlLoader $tlLoader Translation loader.
*
* @return array<string, string>
*/
public static function getUnsortedList(MDTlLoader $tlLoader):array {
return MDValueSet::getTlUnsortedList($tlLoader, self::caseNames(), "transcript_types", "transcript_types");
}
/**
* Gets a sorted list of the entries in a translated version.
*
* @param MDTlLoader $tlLoader Translation loader.
*
* @return array<string, string>
*/
public static function getSortedList(MDTlLoader $tlLoader):array {
return MDValueSet::getTlSortedList($tlLoader, self::caseNames(), "transcript_types", "transcript_types");
}
/**
* Returns the name of the current value in translation.
*
* @param MDTlLoader $tlLoader Translation loader.
*
* @return string
*/
public function getTledName(MDTlLoader $tlLoader):string {
return $tlLoader->tl("transcript_types", "transcript_types", $this->name);
}
/**
* Provides the option to serialize as a string during json_encode().
*
* @return string
*/
public function jsonSerialize():string {
return $this->name;
}
}