UploadWizard

From Linkwiki
tbd @

Background

Customizing Extension:UploadWizard is not as easy as it should be, which is why we document the configuration used at Wiki Aventurica on this page.

Using Extension:MediaUploader would be preferable, but it seems to be unmaintained.

Source code

Using code from Modifying file pages created by Upload Wizard and How do I add custom license to Extension:UploadWizard?.

LocalSettings

$wgExtensionFunctions[] = function() {
	$GLOBALS['wgUploadNavigationUrl'] = SpecialPage::getTitleFor( 'UploadWizard' )->getLocalURL();
	return true;
};
$uwCcAvailableLanguages = [
	'an', 'ar', 'az', 'be', 'bg', 'bn', 'ca', 'cs', 'da', 'de', 'el',
	'en', 'eo', 'es', 'et', 'eu', 'fa', 'fi', 'fr', 'fy', 'ga',
	'gl', 'hi', 'hr', 'hu', 'id', 'is', 'it', 'ja', 'ko', 'lt',
	'lv', 'ms', 'nl', 'no', 'pl', 'pt', 'pt-br', 'ro', 'ru', 'sk',
	'sl', 'sr-latn', 'sv', 'tr', 'uk', 'zh-hans', 'zh-hant'
];
$wgUploadWizardConfig = array(
	'debug' => false,
	'enableLicensePreference' => true,
	'feedbackPage' => 'Wiki Aventurica:Bugs',
	'feedbackLink' => false, // Disable the link for feedback (default: points to Commons)
	'allCategoriesLink' => 'https://de.wiki-aventurica.de/wiki/Kategorie:Datei',
	'altUploadForm' => 'Special:Upload',
	'fallbackToAltUploadForm' => false,
	'alternativeUploadToolsPage' => false, // Disable the link to alternative upload tools (default: points to Commons)
	'enableFormData' => true, // Enable FileAPI uploads be used on supported browsers
	'enableMultipleFiles' => true,
	'enableMultiFileSelect' => true,
	'enableCategoryCheck' => false,
	'display' => [
		'headerLabel' => ''
		],
	'uwLanguages' => [
		'de' => 'Deutsch',
		'en' => 'English',
		'fr' => 'Français'
		], // Selectable languages for file descriptions - defaults to 'en'
	'tutorial' => [ 'skip' => true ],
	'maxUploads' => 15, // Number of uploads with one form - defaults to 50
	'fileExtensions' => $wgFileExtensions, // omitting this may cause errors
	'licenses' => [
		'cc-by-4.0' => [
			'msg' => 'mwe-upwiz-license-cc-by-4.0-text',
			'msgExplain' => 'mwe-upwiz-source-ownwork-cc-by-4.0-explain',
			'templates' => [ 'CC@40 by' ],
			'icons' => [ 'cc-by' ],
			'url' => '//creativecommons.org/licenses/by/4.0/',
			'languageCodePrefix' => 'deed.',
			'availableLanguages' => $uwCcAvailableLanguages
			],
		'cc-by-sa-4.0' => [
			'msg' => 'mwe-upwiz-license-cc-by-sa-4.0-text',
			'msgExplain' => 'mwe-upwiz-source-ownwork-cc-by-sa-4.0-explain',
			'templates' => [ 'CC@40 by sa' ],
			'icons' => [ 'cc-by', 'cc-sa' ],
			'url' => '//creativecommons.org/licenses/by-sa/4.0/',
			'languageCodePrefix' => 'deed.',
			'availableLanguages' => $uwCcAvailableLanguages
			],
		'cc-by-nc-4.0' => [
			'msg' => 'mwe-upwiz-license-cc-by-nc-4.0-text',
			'msgExplain' => 'mwe-upwiz-source-ownwork-cc-by-nc-4.0-explain',
			'templates' => [ 'CC@40 by nc' ],
			'icons' => [ 'cc-by', 'cc-nc' ],
			'url' => '//creativecommons.org/licenses/by-nc/4.0/',
			'languageCodePrefix' => 'deed.',
			'availableLanguages' => $uwCcAvailableLanguages
			],
		'cc-by-nc-sa-4.0' => [
			'msg' => 'mwe-upwiz-license-cc-by-nc-sa-4.0-text',
			'msgExplain' => 'mwe-upwiz-source-ownwork-cc-by-nc-sa-4.0-explain',
			'templates' => [ 'CC@40 by nc sa' ],
			'icons' => [ 'cc-by', 'cc-nc', 'cc-sa' ],
			'url' => '//creativecommons.org/licenses/by-nc-sa/4.0/',
			'languageCodePrefix' => 'deed.',
			'availableLanguages' => $uwCcAvailableLanguages
			],
		'cc-by-nc-nd-4.0' => [
			'msg' => 'mwe-upwiz-license-cc-by-nc-nd-4.0-text',
			'msgExplain' => 'mwe-upwiz-source-ownwork-cc-by-nc-nd-4.0-explain',
			'templates' => [ 'CC@40 by nc nd' ],
			'icons' => [ 'cc-by', 'cc-nc', 'cc-nd' ],
			'url' => '//creativecommons.org/licenses/by-nc-nd/4.0/',
			'languageCodePrefix' => 'deed.',
			'availableLanguages' => $uwCcAvailableLanguages
			],
		'cc-by-nd-4.0' => [
			'msg' => 'mwe-upwiz-license-cc-by-nd-4.0-text',
			'msgExplain' => 'mwe-upwiz-source-ownwork-cc-by-nd-4.0-explain',
			'templates' => [ 'CC@40 by nd' ],
			'icons' => [ 'cc-by', 'cc-nd' ],
			'url' => '//creativecommons.org/licenses/by-nd/4.0/',
			'languageCodePrefix' => 'deed.',
			'availableLanguages' => $uwCcAvailableLanguages
			],
		'cc-by-3.0' => [
			'msg' => 'mwe-upwiz-license-cc-by-3.0-text',
			'msgExplain' => 'mwe-upwiz-source-ownwork-cc-by-3.0-explain',
			'templates' => [ 'CC@30 by' ],
			'icons' => [ 'cc-by' ],
			'url' => '//creativecommons.org/licenses/by/3.0/',
			'languageCodePrefix' => 'deed.',
			'availableLanguages' => $uwCcAvailableLanguages
			],
		'cc-by-sa-3.0' => [
			'msg' => 'mwe-upwiz-license-cc-by-sa-3.0-text',
			'msgExplain' => 'mwe-upwiz-source-ownwork-cc-by-sa-3.0-explain',
			'templates' => [ 'CC@30 by sa' ],
			'icons' => [ 'cc-by', 'cc-sa' ],
			'url' => '//creativecommons.org/licenses/by-sa/3.0/',
			'languageCodePrefix' => 'deed.',
			'availableLanguages' => $uwCcAvailableLanguages
			],
		'cc-by-nc-3.0' => [
			'msg' => 'mwe-upwiz-license-cc-by-nc-3.0-text',
			'msgExplain' => 'mwe-upwiz-source-ownwork-cc-by-nc-3.0-explain',
			'templates' => [ 'CC@30 by nc' ],
			'icons' => [ 'cc-by', 'cc-nc' ],
			'url' => '//creativecommons.org/licenses/by-nc/3.0/',
			'languageCodePrefix' => 'deed.',
			'availableLanguages' => $uwCcAvailableLanguages
			],
		'cc-by-nc-sa-3.0' => [
			'msg' => 'mwe-upwiz-license-cc-by-nc-sa-3.0-text',
			'msgExplain' => 'mwe-upwiz-source-ownwork-cc-by-nc-sa-3.0-explain',
			'templates' => [ 'CC@30 by nc sa' ],
			'icons' => [ 'cc-by', 'cc-nc', 'cc-sa' ],
			'url' => '//creativecommons.org/licenses/by-nc-sa/3.0/',
			'languageCodePrefix' => 'deed.',
			'availableLanguages' => $uwCcAvailableLanguages
			],
		'cc-by-nc-nd-3.0' => [
			'msg' => 'mwe-upwiz-license-cc-by-nc-nd-3.0-text',
			'msgExplain' => 'mwe-upwiz-source-ownwork-cc-by-nc-nd-3.0-explain',
			'templates' => [ 'CC@30 by nc nd' ],
			'icons' => [ 'cc-by', 'cc-nc', 'cc-nd' ],
			'url' => '//creativecommons.org/licenses/by-nc-nd/3.0/',
			'languageCodePrefix' => 'deed.',
			'availableLanguages' => $uwCcAvailableLanguages
			],
		'cc-by-nd-3.0' => [
			'msg' => 'mwe-upwiz-license-cc-by-nd-3.0-text',
			'msgExplain' => 'mwe-upwiz-source-ownwork-cc-by-nd-3.0-explain',
			'templates' => [ 'CC@30 by nd' ],
			'icons' => [ 'cc-by', 'cc-nd' ],
			'url' => '//creativecommons.org/licenses/by-nd/3.0/',
			'languageCodePrefix' => 'deed.',
			'availableLanguages' => $uwCcAvailableLanguages
			],
		'cc-by-2.5' => [
			'msg' => 'mwe-upwiz-license-cc-by-2.5-text',
			'msgExplain' => 'mwe-upwiz-source-ownwork-cc-by-2.5-explain',
			'templates' => [ 'CC@25 by' ],
			'icons' => [ 'cc-by' ],
			'url' => '//creativecommons.org/licenses/by/2.5/',
			'languageCodePrefix' => 'deed.',
			'availableLanguages' => $uwCcAvailableLanguages
			],
		'cc-by-sa-2.5' => [
			'msg' => 'mwe-upwiz-license-cc-by-sa-2.5-text',
			'msgExplain' => 'mwe-upwiz-source-ownwork-cc-by-sa-2.5-explain',
			'templates' => [ 'CC@25 by sa' ],
			'icons' => [ 'cc-by', 'cc-sa' ],
			'url' => '//creativecommons.org/licenses/by-sa/2.5/',
			'languageCodePrefix' => 'deed.',
			'availableLanguages' => $uwCcAvailableLanguages
			],
		'cc-by-2.0' => [
			'msg' => 'mwe-upwiz-license-cc-by-2.0-text',
			'msgExplain' => 'mwe-upwiz-source-ownwork-cc-by-2.0-explain',
			'templates' => [ 'CC@20 by' ],
			'icons' => [ 'cc-by' ],
			'url' => '//creativecommons.org/licenses/by/2.0/',
			'languageCodePrefix' => 'deed.',
			'availableLanguages' => $uwCcAvailableLanguages
			],
		'cc-by-sa-2.0' => [
			'msg' => 'mwe-upwiz-license-cc-by-sa-2.0-text',
			'msgExplain' => 'mwe-upwiz-source-ownwork-cc-by-sa-2.0-explain',
			'templates' => [ 'CC@20 by sa' ],
			'icons' => [ 'cc-by', 'cc-sa' ],
			'url' => '//creativecommons.org/licenses/by-sa/2.0/',
			'languageCodePrefix' => 'deed.',
			'availableLanguages' => $uwCcAvailableLanguages
			],
		'cc-zero' => [
			'msg' => 'mwe-upwiz-license-cc-zero-text',
			'msgExplain' => 'mwe-upwiz-source-ownwork-cc-zero-explain',
			'templates' => [ 'CC 0' ],
			'icons' => [ 'cc-zero' ],
			'url' => '//creativecommons.org/publicdomain/zero/1.0/',
			'languageCodePrefix' => 'deed.',
			'availableLanguages' => $uwCcAvailableLanguages
			],
		'fal' => [
			'msg' => 'mwe-upwiz-license-fal',
			'templates' => [ 'Free Art Licence' ]
			],
		'gfdl' => [
			'msg' => 'mwe-upwiz-license-gfdl',
			'templates' => [ 'GFDL' ]
			],
		'pd-ki' => [
			'msg' => 'mwe-upwiz-license-pd-ki',
			'msgExplain' => 'mwe-upwiz-source-ownwork-pd-ki-explain',
			'templates' => [ 'KI' ],
			'icons' => [ 'pd' ]
			],
		'pd-old' => [
			'msg' => 'mwe-upwiz-license-pd-old',
			'templates' => [ 'Schutzfrist abgelaufen', 'public domain' ],
			'icons' => [ 'pd' ]
			],
		'pd-ineligible' => [
			'msg' => 'mwe-upwiz-license-pd-ineligible',
			'msgExplain' => 'mwe-upwiz-source-ownwork-pd-ineligible-explain',
			'templates' => [ 'public domain' ],
			'icons' => [ 'pd' ]
			],
		'none' => [
			'msg' => 'mwe-upwiz-license-none',
			'msgExplain' => 'mwe-upwiz-source-ownwork-none-explain',
			'templates' => [ 'copyright' ],
			'icons' => [ 'copy' ]
			],
		'custom' => [
			'msg' => 'mwe-upwiz-license-custom-text',
			'templates' => [ 'custom' ]
			]
		],
);


$wgUploadWizardConfig['defaults']['categories'] = [
	'Datei'
];
$wgUploadWizardConfig['licensing']['ownWork'] = [
	'type' => 'or',
	'template' => '',
	'defaults' => 'cc-by-sa-4.0',
	'licenses' => [
		'cc-by-sa-4.0',
		'cc-by-4.0',
		'cc-by-nc-4.0',
		'cc-by-nc-sa-4.0',
		'cc-by-nc-nd-4.0',
		'cc-by-nd-4.0',
		'cc-zero',
		'fal',
		'gfdl',
		'pd-ki',
		'pd-ineligible',
		'none'
		]
];
$wgUploadWizardConfig['licensing']['thirdParty'] = [
	'type' => 'or',
	'defaults' => 'cc-by-sa-4.0',
	'licenseGroups' => [
		[
			'head' => 'mwe-upwiz-license-cc-head',
			'subhead' => 'mwe-upwiz-license-cc-subhead',
			'licenses' => [
				'cc-by-4.0',
				'cc-by-sa-4.0',
				'cc-by-nc-4.0',
				'cc-by-nc-sa-4.0',
				'cc-by-nc-nd-4.0',
				'cc-by-nd-4.0',
				'cc-by-3.0',
				'cc-by-sa-3.0',
				'cc-by-nc-3.0',
				'cc-by-nc-sa-3.0',
				'cc-by-nc-nd-3.0',
				'cc-by-nd-3.0',
				'cc-by-2.5',
				'cc-by-sa-2.5',
				'cc-by-2.0',
				'cc-by-sa-2.0',
				'cc-by-1.0',
				'cc-zero',
				'fal',
				'gfdl'
				]
			],
		[
			'head' => 'mwe-upwiz-license-cc0-head',
			'subhead' => 'mwe-upwiz-license-cc0-subhead',
			'icons' => [ 'cc-public-domain' ],
			'url' => 'https://de.wikipedia.org/wiki/Urheberrecht_%28Deutschland%29',
			'licenses' => [
				'pd-ki',
				'pd-old',
				'pd-ineligible'
				]
			],
		[
			'head' => 'mwe-upwiz-license-custom-head',
			'special' => 'custom',
			'licenses' => [
				'custom'
				]
			],
		[
			'head' => 'mwe-upwiz-license-none-head',
			'licenses' => [
				'none'
				]
			]
		]
];

// register a ResourceLoader module...
$wgResourceModules['myUploadWizardResources'] = [
	'localBasePath' => $wgCustomPath,
        //'scripts' => array( '$wgCustomResources/UploadWizard/myUploadWizard.js' ),

        'styles' => [ '/resources/UploadWizard/myUploadWizard.css' ],

        'messages' => [
                'mwe-upwiz-license-cc-by-nc-nd-4.0-text',
                'mwe-upwiz-source-ownwork-cc-by-nc-nd-4.0-explain',
                'mwe-upwiz-license-cc-by-nc-4.0-text',
                'mwe-upwiz-source-ownwork-cc-by-nc-4.0-explain',
                'mwe-upwiz-license-cc-by-nc-sa-4.0-text',
                'mwe-upwiz-source-ownwork-cc-by-nc-sa-4.0-explain',
                'mwe-upwiz-license-cc-by-nd-4.0-text',
                'mwe-upwiz-source-ownwork-cc-by-nd-4.0-explain',
                'mwe-upwiz-license-cc-by-nc-nd-3.0-text',
                'mwe-upwiz-source-ownwork-cc-by-nc-nd-3.0-explain',
                'mwe-upwiz-license-cc-by-nc-3.0-text',
                'mwe-upwiz-source-ownwork-cc-by-nc-3.0-explain',
                'mwe-upwiz-license-cc-by-nc-sa-3.0-text',
                'mwe-upwiz-source-ownwork-cc-by-nc-sa-3.0-explain',
                'mwe-upwiz-license-cc-by-nd-3.0-text',
                'mwe-upwiz-source-ownwork-cc-by-nd-3.0-explain',
				'mwe-upwiz-license-pd-ki',
                'mwe-upwiz-source-ownwork-pd-ki-explain',
                'mwe-upwiz-source-ownwork-none-explain',
                'mwe-upwiz-source-ownwork-pd-ineligible-explain',
			],
];

// The content of the messages (based on  $IP/extensions/UploadWizard/i18n/*.json)
$wgMessagesDirs['myUploadWizardResources'] = "$wgCustomPath/resources/UploadWizard/i18n";

// Set up a hook to add our resource loader module to every page
function myUploadWizardResourcesLoader( &$out ) {
        $out->addModules( 'myUploadWizardResources' );
        return true;
}

// Register the hook
$wgHooks['BeforePageDisplay'][] = 'myUploadWizardResourcesLoader';

$wgHooks['ParserPreSaveTransformComplete'][] = function ( Parser $parser, string &$text ) {
	if ( preg_match( '/=={{int:filedesc}}==
{{Information
\|description=(.*)
\|date=(.*)
\|source=(.*)
\|author=(.*)
\|permission=(.*)
\|other versions=(.*)
}}

=={{int:license-header}}==
(.*?)
(\[\[Kategorie.*)/s', $text, $matches ) ) {

		// Get data
		$description = $matches[1];
		$date = $matches[2];
		$source = $matches[3];
		$author = $matches[4];
		$permission = $matches[5];
		$otherVersions = $matches[6];
		$license = str_replace("|","",$matches[7]);
		$categories = $matches[8];

		// Process data
		if ( $source === '{{own}}' ) {
			$source = 'selbst erstellt';
			$permission = $author;
		}
		if ( $license === '{{KI}}' ) {
			$author = $author . ' {{KI}}';
			$license = '{{public domain}}';
		}
		if ( preg_match( '/({{CC)@([^}]+}})/', $license, $matches ) ) {
			$license = $matches[1] . '|' . $matches[2];
			$permission = '{{Lizenz}}';
		}
		if ( preg_match( '/(public domain|CC|GFDL|Free Art Licence)/', $license, $matches ) ) {
			$permission = '{{Lizenz}}';
		}
		if ( preg_match( '/({{custom}}\n)(.*)/s', $license, $matches ) ) {
			$license = $matches[2];
			$permission = '{{Lizenz}}';
		}
		// Build wikitext
		$text = "$description

{{Datei
|Quelle=$source
|Urheber=$author
|Genehmigung=$permission
|Lizenz=$license
}}
$categories";
	}
};

new files

Create the folder resourcesCustom/UploadWizard/, therein the folder i18n and the file myUploadWizard.css and all icons used in the CSS file. Inside the folder i18n create the files de.json and en.json. All this is called by the code above from the localsettings.

myUploadWizard.css
.mwe-upwiz-cc-nc-icon {
        /* @embed */
        background: url( 18px-Cc-nc_white.svg.png ) no-repeat center center;
}
.mwe-upwiz-cc-nd-icon {
        /* @embed */
        background: url( 18px-Cc-nd_white.svg.png ) no-repeat center center;
}
.mwe-upwiz-pd-icon {
        /* @embed */
        background: url( 18px-PD-icon.svg.png ) no-repeat center center;
}
.mwe-upwiz-copy-icon {
        /* @embed */
        background: url( 18px-Red_copyright.svg.png ) no-repeat center center;
}
de.json
{
    "mwe-upwiz-source-ownwork-cc-by-nc-nd-4.0-explain": "(Jeder darf {{PLURAL:$1|dieses Werk|diese Werke}} zu nicht-kommerziellen Zwecken weitergeben, solange ich als Urheber angegeben werde.)",
    "mwe-upwiz-license-cc-by-nc-nd-4.0-text": "Creative Commons „Namensnennung – Nicht kommerziell – Keine Bearbeitungen 4.0“ $3 [$2 (mehr erfahren)]",
    "mwe-upwiz-source-ownwork-cc-by-nc-4.0-explain": "(Jeder darf {{PLURAL:$1|dieses Werk|diese Werke}} zu nicht-kommerziellen Zwecken nutzen, weitergeben oder verändern, solange ich als Urheber angegeben werde.)",
    "mwe-upwiz-license-cc-by-nc-4.0-text": "Creative Commons „Namensnennung – Nicht kommerziell 4.0“ $3 [$2 (mehr erfahren)]",
    "mwe-upwiz-source-ownwork-cc-by-nc-sa-4.0-explain": "(Jeder darf {{PLURAL:$1|dieses Werk|diese Werke}} zu nicht-kommerziellen Zwecken nutzen, weitergeben oder verändern, solange ich als Urheber angegeben werde und Änderungen gemäß der gleichen Lizenz weitergegeben werden.)",
    "mwe-upwiz-license-cc-by-nc-sa-4.0-text": "Creative Commons „Namensnennung – Nicht kommerziell – Weitergabe unter gleichen Bedingungen 4.0“ $3 [$2 (mehr erfahren)]",
    "mwe-upwiz-source-ownwork-cc-by-nd-4.0-explain": "(Jeder darf {{PLURAL:$1|dieses Werk|diese Werke}} weitergeben, solange ich als Urheber angegeben werde.)",
    "mwe-upwiz-license-cc-by-nd-4.0-text": "Creative Commons „Namensnennung – Keine Bearbeitungen 4.0“ $3 [$2 (mehr erfahren)]",
    "mwe-upwiz-source-ownwork-cc-by-nc-nd-3.0-explain": "(Jeder darf {{PLURAL:$1|dieses Werk|diese Werke}} zu nicht-kommerziellen Zwecken weitergeben, solange ich als Urheber angegeben werde.)",
    "mwe-upwiz-license-cc-by-nc-nd-3.0-text": "Creative Commons „Namensnennung – Nicht kommerziell – Keine Bearbeitungen 3.0“ $3 [$2 (mehr erfahren)]",
    "mwe-upwiz-source-ownwork-cc-by-nc-3.0-explain": "(Jeder darf {{PLURAL:$1|dieses Werk|diese Werke}} zu nicht-kommerziellen Zwecken nutzen, weitergeben oder verändern, solange ich als Urheber angegeben werde.)",
    "mwe-upwiz-license-cc-by-nc-3.0-text": "Creative Commons „Namensnennung – Nicht kommerziell 3.0“ $3 [$2 (mehr erfahren)]",
    "mwe-upwiz-source-ownwork-cc-by-nc-sa-3.0-explain": "(Jeder darf {{PLURAL:$1|dieses Werk|diese Werke}} zu nicht-kommerziellen Zwecken nutzen, weitergeben oder verändern, solange ich als Urheber angegeben werde und Änderungen gemäß der gleichen Lizenz weitergegeben werden.)",
    "mwe-upwiz-license-cc-by-nc-sa-3.0-text": "Creative Commons „Namensnennung – Nicht kommerziell – Weitergabe unter gleichen Bedingungen 3.0“ $3 [$2 (mehr erfahren)]",
    "mwe-upwiz-source-ownwork-cc-by-nd-3.0-explain": "(Jeder darf {{PLURAL:$1|dieses Werk|diese Werke}} weitergeben, solange ich als Urheber angegeben werde.)",
    "mwe-upwiz-license-cc-by-nd-3.0-text": "Creative Commons „Namensnennung – Keine Bearbeitungen 3.0“ $3 [$2 (mehr erfahren)]",
    "mwe-upwiz-source-ownwork-pd-ki-explain": "(Mittels Bildgeneratoren erstellte Werke sind urheberrechtlich nicht geschützt.)",
    "mwe-upwiz-license-pd-ki": "Das Werk wurde mittels eines [[Wiki Aventurica:Bildgenerator|Bildgenerators]] erstellt. $3",
    "mwe-upwiz-source-ownwork-none-explain": "(Das Werk darf außerhalb des Wiki Aventurica nur mit deiner expliziten Erlaubnis verwendet werden.)",
    "mwe-upwiz-source-ownwork-pd-ineligible-explain": "(etwa einfache geometrische Form)"
}
en.json
{
    "mwe-upwiz-source-ownwork-cc-by-nc-nd-4.0-explain": "(Anyone may share {{PLURAL:$1|this work|these works}} with NonCommercial purposes, as long as they credit me.)",
    "mwe-upwiz-license-cc-by-nc-nd-4.0-text": "Creative Commons Attribution NonCommercial NoDerivatives 4.0 $3 ([$2 legal code])",
    "mwe-upwiz-source-ownwork-cc-by-nc-4.0-explain": "(Anyone may use, share or remix {{PLURAL:$1|this work|these works}} with NonCommercial purposes, as long as they credit me.)",
    "mwe-upwiz-license-cc-by-nc-4.0-text": "Creative Commons Attribution NonCommercial 4.0 $3 ([$2 legal code])",
    "mwe-upwiz-source-ownwork-cc-by-nc-sa-4.0-explain": "(Anyone may use, share or remix {{PLURAL:$1|this work|these works}} with NonCommercial purposes, as long as they credit me and share any derivative work under this license.)",
    "mwe-upwiz-license-cc-by-nc-sa-4.0-text": "Creative Commons Attribution NonCommercial ShareAlike 4.0 $3 ([$2 legal code])",
    "mwe-upwiz-source-ownwork-cc-by-nd-4.0-explain": "(Anyone may share {{PLURAL:$1|this work|these works}}, as long as they credit me.)",
    "mwe-upwiz-license-cc-by-nd-4.0-text": "Creative Commons Attribution NoDerivatives 4.0 $3 ([$2 legal code])",
    "mwe-upwiz-source-ownwork-cc-by-nc-nd-3.0-explain": "(Anyone may share {{PLURAL:$1|this work|these works}} with NonCommercial purposes, as long as they credit me.)",
    "mwe-upwiz-license-cc-by-nc-nd-3.0-text": "Creative Commons Attribution NonCommercial NoDerivatives 3.0 $3 ([$2 legal code])",
    "mwe-upwiz-source-ownwork-cc-by-nc-3.0-explain": "(Anyone may use, share or remix {{PLURAL:$1|this work|these works}} with NonCommercial purposes, as long as they credit me.)",
    "mwe-upwiz-license-cc-by-nc-3.0-text": "Creative Commons Attribution NonCommercial 3.0 $3 ([$2 legal code])",
    "mwe-upwiz-source-ownwork-cc-by-nc-sa-3.0-explain": "(Anyone may use, share or remix {{PLURAL:$1|this work|these works}} with NonCommercial purposes, as long as they credit me and share any derivative work under this license.)",
    "mwe-upwiz-license-cc-by-nc-sa-3.0-text": "Creative Commons Attribution NonCommercial ShareAlike 3.0 $3 ([$2 legal code])",
    "mwe-upwiz-source-ownwork-cc-by-nd-3.0-explain": "(Anyone may share {{PLURAL:$1|this work|these works}}, as long as they credit me.)",
    "mwe-upwiz-license-cc-by-nd-3.0-text": "Creative Commons Attribution NoDerivatives 3.0 $3 ([$2 legal code])",
    "mwe-upwiz-source-ownwork-pd-ki-explain": "(There is no copyright on AI-created works)",
    "mwe-upwiz-license-pd-ki": "This work was created by an AI, and thus has no copyright."
}