This could be a somewhat complicated issue, depending on your prior coding experience. But the first step is relatively straightforward – though not without some challenges – so I would recommend starting by translating static labels.
1. Translating labels
The translation process is outlined in the Omeka documentation. You will need to generate translations for any static labels that are not already covered. Anywhere you see a string in the code like
__('Tags') (with two underscores preceding quoted text in parenthesis), that string can be automatically updated to the Welsh equivalent if it is already in the .po/.mo translation files. A user should automatically see
Tagiau instead of
Tags if they have Welsh set as their language of choice (either in the browser or via a language-switching plugin).
In the case of strings like “Tags,” “Items,” etc, those should already be translated to Welsh and work without further change (since, I think, Omeka ships with a basic Welsh translation), but you’ll need to add ones that are unique to the Curatescape theme (e.g. “View a random story,” “Tour,” etc.).
NOTE: Before getting into more complicated changes, I should point out that manually editing the theme will impact your ability to get updates going forward. You will essentially be taking on the task of maintaining your own theme since any future updates will overwrite your changes.
That said, here are some pointers:
2. Adding a new field
You can edit item types at
/admin/item-types. There you could add a field like
Story (Welsh) to the Curatescape Story item type.
3. Displaying a new field
The story text is generated using a function called
mh_the_text(), which you can see in the
custom.php file at line 915:
(That function currently uses the Dublin Core Description as a fallback if there is no value for the Story field, but that is a legacy functionality that will be removed so you can ignore it.)
To show both English and Welsh versions at once, you could update that function to something like this (assuming your new field is called “Story (Welsh)”):
$welsh_text = element_exists('Item Type Metadata','Story (Welsh)') ? '<div class="welsh">'.metadata($item,array('Item Type Metadata', 'Story (Welsh)'),$options).'</div>' : null;
$primary_text = element_exists('Item Type Metadata','Story') ? '<div class="english">'.metadata($item,array('Item Type Metadata', 'Story'),$options).'</div>' : null;
return $primary_text ? replace_br($primary_text.$welsh_text) : null;
Your implementation may vary depending on how your language-switching plugin works and what you have in mind for the user experience.
You would also need to do something similar in several other functions, including for the title, subtitle, lede, etc. All those functions can be found in the
custom.php file and are implemented throughout the theme, including in
items/show-template-default.php, among many others.
4. Styling the new field