<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;}
span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        mso-ligatures:none;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:36977885;
        mso-list-template-ids:985971550;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1
        {mso-list-id:906648857;
        mso-list-template-ids:-1258025318;}
@list l1:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level2
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level5
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level8
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
@list l1:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;
        mso-ansi-font-size:10.0pt;
        font-family:Symbol;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">Hello Ron,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">It’s great to hear that you’re working on customizing your interfaces to have the option of providing labels in Dutch. I believe there are some institutions in the Netherlands, Belgium, and Luxembourg that have already done that, and you
 may hear from them here or directly. That would likely give you a very significant head start on your customization.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">The Dutch translations themselves have not been contributed to the core ArchivesSpace yet, but we would be very interested in having them. We have a few options for contributing translations to ArchivesSpace, including using the Weblate
 service. If you are comfortable working directly with the .yml files, however, you need to first grab the ones from our GitHub repository itself. If you only use the ones in a release distribution file, your interface will be only partially translated.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">These are the six directories to look for:<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;line-height:150%">
<span style="color:#333333"><a href="https://github.com/archivesspace/archivesspace/tree/master/common/locales">https://github.com/archivesspace/archivesspace/tree/master/common/locales</a><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;line-height:150%">
<span style="color:#333333"><a href="https://github.com/archivesspace/archivesspace/tree/master/common/locales/enums">https://github.com/archivesspace/archivesspace/tree/master/common/locales/enums</a><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;line-height:150%">
<span style="color:#333333"><a href="https://github.com/archivesspace/archivesspace/tree/master/frontend/config/locales">https://github.com/archivesspace/archivesspace/tree/master/frontend/config/locales</a><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;line-height:150%">
<span style="color:#333333"><a href="https://github.com/archivesspace/archivesspace/tree/master/frontend/config/locales/help">https://github.com/archivesspace/archivesspace/tree/master/frontend/config/locales/help</a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#333333"><a href="https://github.com/archivesspace/archivesspace/tree/master/public/config/locales">https://github.com/archivesspace/archivesspace/tree/master/public/config/locales</a></span>
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><a href="https://github.com/archivesspace/archivesspace/tree/master/reports">https://github.com/archivesspace/archivesspace/tree/master/reports</a> (there are locale files for each of the reports in the subdirectories under this main directory)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">It’s probably easiest to use the en.yml ones as your starting point since the labels in the file (the text that appears before the colons) need to stay in English. Follow the pattern you see and make a set where each file is named nl.yml.
 Within the files, change the text that appears after the colon for each entry you want to be in Dutch. (Don’t change any of the formatting or line spacing since a computer is very literal.)<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Once you’ve made all the changes you want, you can pull request the new files to us via GitHub, we can review, and then when all is correct and working like it should we will include them in a future release of ArchivesSpace.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">There’s plenty more to say, but I’ll start there and see if anyone who’s currently working with a translated interface or with translations has advice to offer. We’re always interested in people submitting more languages for the ArchivesSpace
 application or improving the ones we have.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Christine<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">Christine Di Bella</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D">ArchivesSpace Senior Program Manager</span><o:p></o:p></p>
<p class="MsoNormal"><span style="color:#1F497D"><a href="mailto:christine.dibella@lyrasis.org">christine.dibella@lyrasis.org</a></span><o:p></o:p></p>
<p class="MsoNormal"> <o:p></o:p></p>
<p class="MsoNormal"><img border="0" width="224" height="48" style="width:2.3333in;height:.4965in" id="Picture_x0020_1" src="cid:image001.jpg@01DA282F.D73F8850"><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> archivesspace_users_group-bounces@lyralists.lyrasis.org <archivesspace_users_group-bounces@lyralists.lyrasis.org>
<b>On Behalf Of </b>Ron Van den Branden<br>
<b>Sent:</b> Wednesday, December 6, 2023 9:51 AM<br>
<b>To:</b> archivesspace_users_group@lyralists.lyrasis.org<br>
<b>Subject:</b> [Archivesspace_Users_Group] how to add a new locale to ArchivesSpace?<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="color:black">Hi all,</span> <o:p></o:p></p>
<div style="margin-top:12.0pt;margin-bottom:12.0pt">
<p class="MsoNormal"><span style="color:black">We're in the process of customizing the ArchivesSpace (3.4.1) staff interface for use in a Dutch-speaking context. We would like to translate the back-end user interface to Dutch. So far, in order to gain speed,
 we've resorted to tweaking the en.yml localization files with Dutch labels. In the longer run, hijacking "English" for another language feels like a hack, though.</span><o:p></o:p></p>
</div>
<div style="margin-top:12.0pt;margin-bottom:12.0pt">
<p class="MsoNormal"><span style="color:black">The documentation for "customizing text" at
<a href="https://archivesspace.github.io/tech-docs/customization/locales.html">https://archivesspace.github.io/tech-docs/customization/locales.html</a>  does mention where strings can be customized in current locales, but not how new locales can be added. Simply
 adding new locale files for new languages, with according names and language codes, at the right locations doesn't seem to do the trick:</span><o:p></o:p></p>
</div>
<ul type="disc">
<li class="MsoNormal" style="color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
either the language is not being offered in the list of available languages<o:p></o:p></li><li class="MsoNormal" style="color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l0 level1 lfo1">
when additionally the new language is specified explicitly in the config/config.rb file as
<span style="font-size:10.0pt;font-family:"Courier New"">AppConfig[:locale] = :nl</span> , this yields following error at startup:<o:p></o:p></li></ul>
<blockquote style="border:none;border-left:solid #C8C8C8 2.25pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<div>
<pre style="margin-left:.5in"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:black">JSONModel::ValidationException: #<:ValidationException: {:errors=>{"defaults/locale"=>["Invalid value 'nl'.  Must be one of: en, fr, de, ja, es"]}}><o:p></o:p></span></pre>
</div>
<div>
<pre style="margin-left:.5in"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:black">                      validate at uri:classloader:/jsonmodel_type.rb:385<o:p></o:p></span></pre>
</div>
<div>
<pre style="margin-left:.5in"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:black">            with_validator_for at uri:classloader:/validator_cache.rb:41<o:p></o:p></span></pre>
</div>
</blockquote>
<div style="margin-top:12.0pt;margin-bottom:12.0pt">
<p class="MsoNormal"><span style="color:black">...so there must be more to adding a new locale. Yet, we can't find where in the ArchivesSpace distribution code such a list of default locales can be found or edited.</span><o:p></o:p></p>
</div>
<div style="margin-top:12.0pt;margin-bottom:12.0pt">
<p class="MsoNormal"><span style="color:black">We <i>did </i>find the file in the ArchivesSpace source tree at
<a href="https://github.com/archivesspace/archivesspace/blob/master/common/aspace_i18n.rb#L28">
https://github.com/archivesspace/archivesspace/blob/master/common/aspace_i18n.rb#L28</a> which defines above list of locales This file can't be found in the distribution code, however, so it's not clear how it relates to the distribution code. The commit history
 also shows commits from the Weblate project at <a href="https://hosted.weblate.org/projects/archivesspace-interfaces/#languages">
https://hosted.weblate.org/projects/archivesspace-interfaces/#languages</a>, which contains additional languages Portuguese and Italian.</span><o:p></o:p></p>
</div>
<div style="margin-top:12.0pt;margin-bottom:12.0pt">
<p class="MsoNormal"><span style="color:black">This leads to following questions:</span><o:p></o:p></p>
</div>
<ul type="disc">
<li class="MsoNormal" style="color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level1 lfo2">
what's the mechanism for adding a new locale to an ArchivesSpace instance?<o:p></o:p></li><li class="MsoNormal" style="color:black;mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;mso-list:l1 level1 lfo2">
if our translations would reach a stage of being of broader interest, what would be the procedure for contributing them?<o:p></o:p></li></ul>
<div style="margin-top:12.0pt;margin-bottom:12.0pt">
<p class="MsoNormal"><span style="color:black">Kind regards,</span><o:p></o:p></p>
</div>
<div style="margin-top:12.0pt;margin-bottom:12.0pt">
<p class="MsoNormal"><span style="color:black">Ron</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
</div>
<div id="Signature">
<p style="line-height:13.75pt;background:white"><b><span style="font-size:9.0pt;font-family:"Arial",sans-serif;color:#4D4D4D">Ron Van den Branden | functioneel analist - applicatiebeheerder Letterenhuis</span></b><o:p></o:p></p>
<p style="line-height:13.75pt;background:white"><span style="font-size:9.0pt;font-family:"Arial",sans-serif;color:#4D4D4D">Stad Antwerpen | Talentontwikkeling en Vrijetijdsbeleving</span><span style="font-size:9.0pt;font-family:"Arial",sans-serif;color:black"> </span><span style="font-size:9.0pt;font-family:"Arial",sans-serif;color:#4D4D4D">| 
 Boeken en Letteren</span><o:p></o:p></p>
<p style="line-height:13.75pt;background:white"><span style="font-size:9.0pt;font-family:"Arial",sans-serif;color:#4D4D4D">Minderbroedersstraat 22, 2000 Antwerpen</span><o:p></o:p></p>
<p style="background:white"><span style="font-size:9.0pt;font-family:"Arial",sans-serif;color:#4D4D4D">Grote Markt 1, 2000 Antwerpen</span><o:p></o:p></p>
<p style="background:white"><span style="font-size:9.0pt;font-family:"Arial",sans-serif;color:#4D4D4D">gsm +32 0485 02 80 50 | tel. +32 3 222 93 30</span><o:p></o:p></p>
<p style="line-height:13.75pt;background:white"><span style="font-size:9.0pt;font-family:"Arial",sans-serif;color:#4D4D4D"><a href="http://www.letterenhuis.be/" target="_blank"><span style="color:#4D4D4D">letterenhuis.be</span></a> |
<a href="https://www.instagram.com/letterenhuis/" target="_blank"><span style="color:#4D4D4D">instagram</span></a> |
<a href="https://www.facebook.com/Letterenhuis" target="_blank"><span style="color:#4D4D4D">facebook</span></a></span><o:p></o:p></p>
<p style="line-height:13.75pt;background:white"><span style="font-size:9.0pt;font-family:"Arial",sans-serif;color:#4D4D4D"> </span><o:p></o:p></p>
<p style="line-height:13.75pt;background:white"><b><span style="font-size:7.0pt;font-family:"Arial",sans-serif;color:#4D4D4D">Proclaimer</span></b><o:p></o:p></p>
<p style="line-height:13.75pt;background:white"><span style="font-size:7.0pt;font-family:"Arial",sans-serif;color:#4D4D4D">Vergissen is menselijk. Dus als deze e-mail, samen met eventuele bijlagen, niet voor u bestemd is, vragen we u vriendelijk om dat te melden
 aan de afzender. Deze e-mail en de bijlagen zijn namelijk officiële documenten van de stad Antwerpen. Ze kunnen vertrouwelijke of persoonlijke informatie bevatten. Als stad nemen we privacy heel serieus en willen we als een goede huisvader waken over de vertrouwelijkheid
 van documenten. Als u dit bericht per vergissing hebt ontvangen of ergens hebt gevonden, wees dan zo eerlijk om het meteen te verwijderen en het niet verder te verspreiden of te kopiëren.</span><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</body>
</html>