Uitgaven met meerdere landen van uitgaven

Sommige uitgaven, vooral digitale, hebben een lange lijst met landen waarin ze zijn uitgegeven, soms zelfs (bijna) alle landen ter wereld (op een paar na waar de uitgave niet officieel verkrijgbaar is). Picard heeft wat hulpmiddelen om hiermee te helpen.

Let’s take the release Bleach, by Nirvana (MusicBrainz release adab3feb-1822-4d27-a997-db7d6c9688c0) as an example.

Standaard schrijft Picard één tag releasecountry naar bestanden. Vóór Picard 2.3.1 vulde Picard die tag met het land dat de server van MusicBrainz retourneerde als land van uitgave. Als er meerdere uitgavegebeurtenissen waren, werd er voor dit veld gewoon het eerste land op alfabetische volgorde gebruikt (in ons voorbeeld Afghanistan). In Picard 2.3.1 kwamen er wat opties bij om hier beter mee om te gaan.

Met uitgavevoorkeuren

In ‘Opties ‣ Metadata ‣ Voorkeursuitgaven’ kan je instellen dat uitgaven uit bepaalde landen voorrang moeten krijgen als wordt bepaald welke uitgave bij de metadata in je bestanden hoort. Dan gebruikt Picard het eerste land uit die lijst dat ook in de lijst met uitgavegebeurtenissen voorkomt. Dus als je hebt ingesteld dat Europa, Canada, Duitsland en het VK je voorkeurslanden zijn, wordt de tag releasecountry in ons voorbeeld ingesteld als Canada.

Met een script

In Picard 2.3.1 is ook een nieuwe variabele toegevoegd, %_releasecountries%. Deze meervoudige variabele bevat de volledige lijst met landen van uitgave. Je kan deze variabele gebruiken om verschillende waarden voor releasecountry in te stellen.

Met het volgende script stel je de tag bijvoorbeeld in op ‘[International]’ als er meer dan tien landen aan de uitgave zijn gekoppeld:

$if($gte($lenmulti(%_releasecountries%),10),$set(releasecountry,[International]))

Je kan het aantal en de vervangende tekst natuurlijk aanpassen. Met het volgende script kan je de hele lijst in de tag opslaan in plaats van slechts één land:

$setmulti(releasecountry,%_releasecountries%)

Misschien wil je deze lijst beperken tot een paar van de eerste landen. Het volgende voorbeeld beperkt de lijst tot de eerste zes landen:

$setmulti(releasecountry,$slice(%_releasecountries%,0,6))

Wat ontbreekt er?

Op dit moment worden de landen in de vorm van de ISO 3166-1-landcode naar de tags geschreven. Daarnaast zijn er een aantal speciale waarden voor niet langer bestaande landen en voor regio’s zoals [Europa] en [Wereldwijd]. Deze codes zijn niet altijd makkelijk te herkennen, zoals ‘DZ’ voor Algerije en ‘DE’ voor Duitsland. Je kan dit met scripts natuurlijk leesbaarder maken. Als je in deze tag bijvoorbeeld ‘Verenigd Koninkrijk’ wil zien staan in plaats van ‘GB’, gebruik je:

$if($eq(%releasecountry%,GB),$set(releasecountry,United Kingdom))

Dit werkt als je maar een paar landen gebruikt of voor een paar speciale gevallen zoals ‘Europa’ in plaats van ‘XE’, zoals in het volgende script:

$if($eq(%releasecountry%,XE),$set(releasecountry,Europe))
$if($eq(%releasecountry%,XU),$set(releasecountry,[Unknown]))
$if($eq(%releasecountry%,XW),$set(releasecountry,[Worldwide]))
$if($eq(%releasecountry%,XG),$set(releasecountry,DDR))

Sinds Picard 2.7 kan je ook de functie $countryname() gebruiken om de code eenvoudig in een leesbare landnaam om te zetten, zoals in het volgende script:

$noop( Convert only %releasecountry% )
$set(releasecountry,$countryname(%releasecountry%,yes))

$noop( List all countries by name )
$setmulti(releasecountry,$map(%_releasecountries%,$countryname(%_loop_value%,yes)))

$noop( List only the first 6 countries by name )
$setmulti(temp,$slice(%_releasecountries%,0,6))
$setmulti(releasecountry,$map(%temp%,$countryname(%_loop_value%,yes)))