« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/page
diff options
context:
space:
mode:
Diffstat (limited to 'src/page')
-rw-r--r--src/page/album-commentary.js24
-rw-r--r--src/page/album.js64
-rw-r--r--src/page/artist.js90
-rw-r--r--src/page/flash.js28
-rw-r--r--src/page/group.js40
-rw-r--r--src/page/homepage.js10
-rw-r--r--src/page/listing.js18
-rw-r--r--src/page/news.js16
-rw-r--r--src/page/tag.js10
-rw-r--r--src/page/track.js58
10 files changed, 179 insertions, 179 deletions
diff --git a/src/page/album-commentary.js b/src/page/album-commentary.js
index 90b36fc..3c2b23c 100644
--- a/src/page/album-commentary.js
+++ b/src/page/album-commentary.js
@@ -36,28 +36,28 @@ export function write(album, {wikiData}) {
             to,
             transformMultiline
         }) => ({
-            title: strings('albumCommentaryPage.title', {album: album.name}),
+            title: language.$('albumCommentaryPage.title', {album: album.name}),
             stylesheet: getAlbumStylesheet(album),
             theme: getThemeString(album.color),
 
             main: {
                 content: fixWS`
                     <div class="long-content">
-                        <h1>${strings('albumCommentaryPage.title', {
+                        <h1>${language.$('albumCommentaryPage.title', {
                             album: link.album(album)
                         })}</h1>
-                        <p>${strings('albumCommentaryPage.infoLine', {
+                        <p>${language.$('albumCommentaryPage.infoLine', {
                             words: `<b>${strings.count.words(words, {unit: true})}</b>`,
                             entries: `<b>${language.countCommentaryEntries(entries.length, {unit: true})}</b>`
                         })}</p>
                         ${album.commentary && fixWS`
-                            <h3>${strings('albumCommentaryPage.entry.title.albumCommentary')}</h3>
+                            <h3>${language.$('albumCommentaryPage.entry.title.albumCommentary')}</h3>
                             <blockquote>
                                 ${transformMultiline(album.commentary)}
                             </blockquote>
                         `}
                         ${album.tracks.filter(t => t.commentary).map(track => fixWS`
-                            <h3 id="${track.directory}">${strings('albumCommentaryPage.entry.title.trackCommentary', {
+                            <h3 id="${track.directory}">${language.$('albumCommentaryPage.entry.title.trackCommentary', {
                                 track: link.track(track)
                             })}</h3>
                             <blockquote style="${getLinkThemeString(track.color)}">
@@ -73,10 +73,10 @@ export function write(album, {wikiData}) {
                     {toHome: true},
                     {
                         path: ['localized.commentaryIndex'],
-                        title: strings('commentaryIndex.title')
+                        title: language.$('commentaryIndex.title')
                     },
                     {
-                        html: strings('albumCommentaryPage.nav.album', {
+                        html: language.$('albumCommentaryPage.nav.album', {
                             album: link.albumCommentary(album, {class: 'current'})
                         })
                     }
@@ -109,21 +109,21 @@ export function writeTargetless({wikiData}) {
             link,
             strings
         }) => ({
-            title: strings('commentaryIndex.title'),
+            title: language.$('commentaryIndex.title'),
 
             main: {
                 content: fixWS`
                     <div class="long-content">
-                        <h1>${strings('commentaryIndex.title')}</h1>
-                        <p>${strings('commentaryIndex.infoLine', {
+                        <h1>${language.$('commentaryIndex.title')}</h1>
+                        <p>${language.$('commentaryIndex.infoLine', {
                             words: `<b>${strings.count.words(totalWords, {unit: true})}</b>`,
                             entries: `<b>${language.countCommentaryEntries(totalEntries, {unit: true})}</b>`
                         })}</p>
-                        <p>${strings('commentaryIndex.albumList.title')}</p>
+                        <p>${language.$('commentaryIndex.albumList.title')}</p>
                         <ul>
                             ${data
                                 .map(({ album, entries, words }) => fixWS`
-                                    <li>${strings('commentaryIndex.albumList.item', {
+                                    <li>${language.$('commentaryIndex.albumList.item', {
                                         album: link.albumCommentary(album),
                                         words: strings.count.words(words, {unit: true}),
                                         entries: language.countCommentaryEntries(entries.length, {unit: true})
diff --git a/src/page/album.js b/src/page/album.js
index 66d4bfa..4b4ac6b 100644
--- a/src/page/album.js
+++ b/src/page/album.js
@@ -41,11 +41,11 @@ export function write(album, {wikiData}) {
                 track.artistContribs.map(c => c.who),
                 album.artistContribs.map(c => c.who),
                 {checkOrder: false})
-                ? strings('trackList.item.withDuration', itemOpts)
-                : strings('trackList.item.withDuration.withArtists', {
+                ? language.$('trackList.item.withDuration', itemOpts)
+                : language.$('trackList.item.withDuration.withArtists', {
                     ...itemOpts,
                     by: `<span class="by">${
-                        strings('trackList.item.withArtists.by', {
+                        language.$('trackList.item.withArtists.by', {
                             artists: getArtistString(track.artistContribs)
                         })
                     }</span>`
@@ -121,7 +121,7 @@ export function write(album, {wikiData}) {
             const cover = getAlbumCover(album);
 
             return {
-                title: strings('albumPage.title', {album: album.name}),
+                title: language.$('albumPage.title', {album: album.name}),
                 stylesheet: getAlbumStylesheet(album),
                 theme: getThemeString(album.color, [
                     `--album-directory: ${album.directory}`
@@ -130,7 +130,7 @@ export function write(album, {wikiData}) {
                 banner: album.bannerArtistContribs.length && {
                     dimensions: album.bannerDimensions,
                     path: ['media.albumBanner', album.directory, album.bannerFileExtension],
-                    alt: strings('misc.alt.albumBanner'),
+                    alt: language.$('misc.alt.albumBanner'),
                     position: 'top'
                 },
 
@@ -138,58 +138,58 @@ export function write(album, {wikiData}) {
                     content: fixWS`
                         ${cover && generateCoverLink({
                             src: cover,
-                            alt: strings('misc.alt.albumCover'),
+                            alt: language.$('misc.alt.albumCover'),
                             tags: album.artTags
                         })}
-                        <h1>${strings('albumPage.title', {album: album.name})}</h1>
+                        <h1>${language.$('albumPage.title', {album: album.name})}</h1>
                         <p>
                             ${[
-                                album.artistContribs.length && strings('releaseInfo.by', {
+                                album.artistContribs.length && language.$('releaseInfo.by', {
                                     artists: getArtistString(album.artistContribs, {
                                         showContrib: true,
                                         showIcons: true
                                     })
                                 }),
-                                album.coverArtistContribs.length && strings('releaseInfo.coverArtBy', {
+                                album.coverArtistContribs.length && language.$('releaseInfo.coverArtBy', {
                                     artists: getArtistString(album.coverArtistContribs, {
                                         showContrib: true,
                                         showIcons: true
                                     })
                                 }),
-                                album.wallpaperArtistContribs.length && strings('releaseInfo.wallpaperArtBy', {
+                                album.wallpaperArtistContribs.length && language.$('releaseInfo.wallpaperArtBy', {
                                     artists: getArtistString(album.wallpaperArtistContribs, {
                                         showContrib: true,
                                         showIcons: true
                                     })
                                 }),
-                                album.bannerArtistContribs.length && strings('releaseInfo.bannerArtBy', {
+                                album.bannerArtistContribs.length && language.$('releaseInfo.bannerArtBy', {
                                     artists: getArtistString(album.bannerArtistContribs, {
                                         showContrib: true,
                                         showIcons: true
                                     })
                                 }),
-                                album.date && strings('releaseInfo.released', {
+                                album.date && language.$('releaseInfo.released', {
                                     date: strings.count.date(album.date)
                                 }),
                                 (album.coverArtDate &&
                                     +album.coverArtDate !== +album.date &&
-                                    strings('releaseInfo.artReleased', {
+                                    language.$('releaseInfo.artReleased', {
                                         date: strings.count.date(album.coverArtDate)
                                     })),
-                                strings('releaseInfo.duration', {
+                                language.$('releaseInfo.duration', {
                                     duration: strings.count.duration(albumDuration, {approximate: album.tracks.length > 1})
                                 })
                             ].filter(Boolean).join('<br>\n')}
                         </p>
                         ${commentaryEntries && `<p>${
-                            strings('releaseInfo.viewCommentary', {
+                            language.$('releaseInfo.viewCommentary', {
                                 link: link.albumCommentary(album, {
-                                    text: strings('releaseInfo.viewCommentary.link')
+                                    text: language.$('releaseInfo.viewCommentary.link')
                                 })
                             })
                         }</p>`}
                         ${album.urls?.length && `<p>${
-                            strings('releaseInfo.listenOn', {
+                            language.$('releaseInfo.listenOn', {
                                 links: strings.list.or(album.urls.map(url => fancifyURL(url, {album: true})))
                             })
                         }</p>`}
@@ -197,7 +197,7 @@ export function write(album, {wikiData}) {
                             <dl class="album-group-list">
                                 ${album.trackGroups.map(({ name, color, startIndex, tracks }) => fixWS`
                                     <dt>${
-                                        strings('trackList.group', {
+                                        language.$('trackList.group', {
                                             duration: strings.count.duration(getTotalDuration(tracks), {approximate: tracks.length > 1}),
                                             group: name
                                         })
@@ -215,14 +215,14 @@ export function write(album, {wikiData}) {
                         ${album.dateAddedToWiki && fixWS`
                             <p>
                                 ${[
-                                    strings('releaseInfo.addedToWiki', {
+                                    language.$('releaseInfo.addedToWiki', {
                                         date: strings.count.date(album.dateAddedToWiki)
                                     })
                                 ].filter(Boolean).join('<br>\n')}
                             </p>
                         `}
                         ${album.commentary && fixWS`
-                            <p>${strings('releaseInfo.artistCommentary')}</p>
+                            <p>${language.$('releaseInfo.artistCommentary')}</p>
                             <blockquote>
                                 ${transformMultiline(album.commentary)}
                             </blockquote>
@@ -243,7 +243,7 @@ export function write(album, {wikiData}) {
                     links: [
                         {toHome: true},
                         {
-                            html: strings('albumPage.nav.album', {
+                            html: language.$('albumPage.nav.album', {
                                 album: link.album(album, {class: 'current'})
                             })
                         },
@@ -276,7 +276,7 @@ export function generateAlbumSidebar(album, currentTrack, {
 
     /*
     const trackGroups = album.trackGroups || [{
-        name: strings('albumSidebar.trackList.fallbackGroupName'),
+        name: language.$('albumSidebar.trackList.fallbackGroupName'),
         color: album.color,
         startIndex: 0,
         tracks: album.tracks
@@ -287,13 +287,13 @@ export function generateAlbumSidebar(album, currentTrack, {
 
     const trackToListItem = track => html.tag('li',
         {class: track === currentTrack && 'current'},
-        strings('albumSidebar.trackList.item', {
+        language.$('albumSidebar.trackList.item', {
             track: link.track(track)
         }));
 
     const nameOrDefault = (isDefaultTrackGroup, name) =>
         (isDefaultTrackGroup
-            ? strings('albumSidebar.trackList.fallbackGroupName')
+            ? language.$('albumSidebar.trackList.fallbackGroupName')
             : name);
 
     const trackListPart = fixWS`
@@ -309,11 +309,11 @@ export function generateAlbumSidebar(album, currentTrack, {
                 html.tag('summary',
                     {style: getLinkThemeString(color)},
                     (listTag === 'ol'
-                        ? strings('albumSidebar.trackList.group.withRange', {
+                        ? language.$('albumSidebar.trackList.group.withRange', {
                             group: `<span class="group-name">${nameOrDefault(isDefaultTrackGroup, name)}</span>`,
                             range: `${startIndex + 1}&ndash;${startIndex + tracks.length}`
                         })
-                        : strings('albumSidebar.trackList.group', {
+                        : language.$('albumSidebar.trackList.group', {
                             group: `<span class="group-name">${nameOrDefault(isDefaultTrackGroup, name)}</span>`
                         }))
                 ),
@@ -335,24 +335,24 @@ export function generateAlbumSidebar(album, currentTrack, {
         return {group, next, previous};
     }).map(({group, next, previous}) => fixWS`
         <h1>${
-            strings('albumSidebar.groupBox.title', {
+            language.$('albumSidebar.groupBox.title', {
                 group: link.groupInfo(group)
             })
         }</h1>
         ${!currentTrack && transformMultiline(group.descriptionShort)}
         ${group.urls?.length && `<p>${
-            strings('releaseInfo.visitOn', {
+            language.$('releaseInfo.visitOn', {
                 links: strings.list.or(group.urls.map(url => fancifyURL(url)))
             })
         }</p>`}
         ${!currentTrack && fixWS`
             ${next && `<p class="group-chronology-link">${
-                strings('albumSidebar.groupBox.next', {
+                language.$('albumSidebar.groupBox.next', {
                     album: link.album(next)
                 })
             }</p>`}
             ${previous && `<p class="group-chronology-link">${
-                strings('albumSidebar.groupBox.previous', {
+                language.$('albumSidebar.groupBox.previous', {
                     album: link.album(previous)
                 })
             }</p>`}
@@ -397,8 +397,8 @@ export function generateAlbumNavLinks(album, currentTrack, {
     });
     const randomLink = `<a href="#" data-random="track-in-album" id="random-button">${
         (currentTrack
-            ? strings('trackPage.nav.random')
-            : strings('albumPage.nav.randomTrack'))
+            ? language.$('trackPage.nav.random')
+            : language.$('albumPage.nav.randomTrack'))
     }</a>`;
 
     return (previousNextLinks
diff --git a/src/page/artist.js b/src/page/artist.js
index 0383c68..3a9de70 100644
--- a/src/page/artist.js
+++ b/src/page/artist.js
@@ -143,20 +143,20 @@ export function write(artist, {wikiData}) {
         aka, entry, artists, contrib
     }) =>
         (aka
-            ? strings('artistPage.creditList.entry.rerelease', {entry})
+            ? language.$('artistPage.creditList.entry.rerelease', {entry})
             : (artists.length
                 ? ((contrib.what || contrib.whatArray?.length)
-                    ? strings('artistPage.creditList.entry.withArtists.withContribution', {
+                    ? language.$('artistPage.creditList.entry.withArtists.withContribution', {
                         entry,
                         artists: getArtistString(artists),
                         contribution: (contrib.whatArray ? strings.list.unit(contrib.whatArray) : contrib.what)
                     })
-                    : strings('artistPage.creditList.entry.withArtists', {
+                    : language.$('artistPage.creditList.entry.withArtists', {
                         entry,
                         artists: getArtistString(artists)
                     }))
                 : ((contrib.what || contrib.whatArray?.length)
-                    ? strings('artistPage.creditList.entry.withContribution', {
+                    ? language.$('artistPage.creditList.entry.withContribution', {
                         entry,
                         contribution: (contrib.whatArray ? strings.list.unit(contrib.whatArray) : contrib.what)
                     })
@@ -168,24 +168,24 @@ export function write(artist, {wikiData}) {
         <dl>
             ${chunks.map(({date, album, chunk, duration}) => fixWS`
                 <dt>${
-                    (date && duration) ? strings('artistPage.creditList.album.withDate.withDuration', {
+                    (date && duration) ? language.$('artistPage.creditList.album.withDate.withDuration', {
                         album: link.album(album),
                         date: strings.count.date(date),
                         duration: strings.count.duration(duration, {approximate: true})
-                    }) : date ? strings('artistPage.creditList.album.withDate', {
+                    }) : date ? language.$('artistPage.creditList.album.withDate', {
                         album: link.album(album),
                         date: strings.count.date(date)
-                    }) : duration ? strings('artistPage.creditList.album.withDuration', {
+                    }) : duration ? language.$('artistPage.creditList.album.withDuration', {
                         album: link.album(album),
                         duration: strings.count.duration(duration, {approximate: true})
-                    }) : strings('artistPage.creditList.album', {
+                    }) : language.$('artistPage.creditList.album', {
                         album: link.album(album)
                     })}</dt>
                 <dd><ul>
                     ${(chunk
                         .map(({track, ...props}) => ({
                             aka: track.aka,
-                            entry: strings('artistPage.creditList.entry.track.withDuration', {
+                            entry: language.$('artistPage.creditList.entry.track.withDuration', {
                                 track: link.track(track),
                                 duration: strings.count.duration(track.duration)
                             }),
@@ -283,47 +283,47 @@ export function write(artist, {wikiData}) {
             });
 
             return {
-                title: strings('artistPage.title', {artist: name}),
+                title: language.$('artistPage.title', {artist: name}),
 
                 main: {
                     content: fixWS`
                         ${artist.hasAvatar && generateCoverLink({
                             src: getArtistAvatar(artist),
-                            alt: strings('misc.alt.artistAvatar')
+                            alt: language.$('misc.alt.artistAvatar')
                         })}
-                        <h1>${strings('artistPage.title', {artist: name})}</h1>
+                        <h1>${language.$('artistPage.title', {artist: name})}</h1>
                         ${contextNotes && fixWS`
-                            <p>${strings('releaseInfo.note')}</p>
+                            <p>${language.$('releaseInfo.note')}</p>
                             <blockquote>
                                 ${transformMultiline(contextNotes)}
                             </blockquote>
                             <hr>
                         `}
-                        ${urls?.length && `<p>${strings('releaseInfo.visitOn', {
+                        ${urls?.length && `<p>${language.$('releaseInfo.visitOn', {
                             links: strings.list.or(urls.map(url => fancifyURL(url, {strings})))
                         })}</p>`}
-                        ${hasGallery && `<p>${strings('artistPage.viewArtGallery', {
+                        ${hasGallery && `<p>${language.$('artistPage.viewArtGallery', {
                             link: link.artistGallery(artist, {
-                                text: strings('artistPage.viewArtGallery.link')
+                                text: language.$('artistPage.viewArtGallery.link')
                             })
                         })}</p>`}
-                        <p>${strings('misc.jumpTo.withLinks', {
+                        <p>${language.$('misc.jumpTo.withLinks', {
                             links: strings.list.unit([
-                                allTracks.length && `<a href="#tracks">${strings('artistPage.trackList.title')}</a>`,
-                                artThingsAll.length && `<a href="#art">${strings('artistPage.artList.title')}</a>`,
-                                wikiInfo.enableFlashesAndGames && flashes.length && `<a href="#flashes">${strings('artistPage.flashList.title')}</a>`,
-                                commentaryThings.length && `<a href="#commentary">${strings('artistPage.commentaryList.title')}</a>`
+                                allTracks.length && `<a href="#tracks">${language.$('artistPage.trackList.title')}</a>`,
+                                artThingsAll.length && `<a href="#art">${language.$('artistPage.artList.title')}</a>`,
+                                wikiInfo.enableFlashesAndGames && flashes.length && `<a href="#flashes">${language.$('artistPage.flashList.title')}</a>`,
+                                commentaryThings.length && `<a href="#commentary">${language.$('artistPage.commentaryList.title')}</a>`
                             ].filter(Boolean))
                         })}</p>
                         ${allTracks.length && fixWS`
-                            <h2 id="tracks">${strings('artistPage.trackList.title')}</h2>
-                            <p>${strings('artistPage.contributedDurationLine', {
+                            <h2 id="tracks">${language.$('artistPage.trackList.title')}</h2>
+                            <p>${language.$('artistPage.contributedDurationLine', {
                                 artist: artist.name,
                                 duration: strings.count.duration(totalDuration, {approximate: true, unit: true})
                             })}</p>
-                            <p>${strings('artistPage.musicGroupsLine', {
+                            <p>${language.$('artistPage.musicGroupsLine', {
                                 groups: strings.list.unit(musicGroups
-                                    .map(({ group, contributions }) => strings('artistPage.groupsLine.item', {
+                                    .map(({ group, contributions }) => language.$('artistPage.groupsLine.item', {
                                         group: link.groupInfo(group),
                                         contributions: language.countContributions(contributions)
                                     })))
@@ -331,22 +331,22 @@ export function write(artist, {wikiData}) {
                             ${generateTrackList(trackListChunks)}
                         `}
                         ${artThingsAll.length && fixWS`
-                            <h2 id="art">${strings('artistPage.artList.title')}</h2>
-                            ${hasGallery && `<p>${strings('artistPage.viewArtGallery.orBrowseList', {
+                            <h2 id="art">${language.$('artistPage.artList.title')}</h2>
+                            ${hasGallery && `<p>${language.$('artistPage.viewArtGallery.orBrowseList', {
                                 link: link.artistGallery(artist, {
-                                    text: strings('artistPage.viewArtGallery.link')
+                                    text: language.$('artistPage.viewArtGallery.link')
                                 })
                             })}</p>`}
-                            <p>${strings('artistPage.artGroupsLine', {
+                            <p>${language.$('artistPage.artGroupsLine', {
                                 groups: strings.list.unit(artGroups
-                                    .map(({ group, contributions }) => strings('artistPage.groupsLine.item', {
+                                    .map(({ group, contributions }) => language.$('artistPage.groupsLine.item', {
                                         group: link.groupInfo(group),
                                         contributions: language.countContributions(contributions)
                                     })))
                             })}</p>
                             <dl>
                                 ${artListChunks.map(({date, album, chunk}) => fixWS`
-                                    <dt>${strings('artistPage.creditList.album.withDate', {
+                                    <dt>${language.$('artistPage.creditList.album.withDate', {
                                         album: link.album(album),
                                         date: strings.count.date(date)
                                     })}</dt>
@@ -354,10 +354,10 @@ export function write(artist, {wikiData}) {
                                         ${(chunk
                                             .map(({album, track, key, ...props}) => ({
                                                 entry: (track
-                                                    ? strings('artistPage.creditList.entry.track', {
+                                                    ? language.$('artistPage.creditList.entry.track', {
                                                         track: link.track(track)
                                                     })
-                                                    : `<i>${strings('artistPage.creditList.entry.album.' + {
+                                                    : `<i>${language.$('artistPage.creditList.entry.album.' + {
                                                         wallpaperArtistContribs: 'wallpaperArt',
                                                         bannerArtistContribs: 'bannerArt',
                                                         coverArtistContribs: 'coverArt'
@@ -372,17 +372,17 @@ export function write(artist, {wikiData}) {
                             </dl>
                         `}
                         ${wikiInfo.enableFlashesAndGames && flashes.length && fixWS`
-                            <h2 id="flashes">${strings('artistPage.flashList.title')}</h2>
+                            <h2 id="flashes">${language.$('artistPage.flashList.title')}</h2>
                             <dl>
                                 ${flashListChunks.map(({act, chunk, dateFirst, dateLast}) => fixWS`
-                                    <dt>${strings('artistPage.creditList.flashAct.withDateRange', {
+                                    <dt>${language.$('artistPage.creditList.flashAct.withDateRange', {
                                         act: link.flash(chunk[0].flash, {text: act.name}),
                                         dateRange: strings.count.dateRange([dateFirst, dateLast])
                                     })}</dt>
                                     <dd><ul>
                                         ${(chunk
                                             .map(({flash, ...props}) => ({
-                                                entry: strings('artistPage.creditList.entry.flash', {
+                                                entry: language.$('artistPage.creditList.entry.flash', {
                                                     flash: link.flash(flash)
                                                 }),
                                                 ...props
@@ -395,19 +395,19 @@ export function write(artist, {wikiData}) {
                             </dl>
                         `}
                         ${commentaryThings.length && fixWS`
-                            <h2 id="commentary">${strings('artistPage.commentaryList.title')}</h2>
+                            <h2 id="commentary">${language.$('artistPage.commentaryList.title')}</h2>
                             <dl>
                                 ${commentaryListChunks.map(({album, chunk}) => fixWS`
-                                    <dt>${strings('artistPage.creditList.album', {
+                                    <dt>${language.$('artistPage.creditList.album', {
                                         album: link.album(album)
                                     })}</dt>
                                     <dd><ul>
                                         ${(chunk
                                             .map(({album, track, ...props}) => track
-                                                ? strings('artistPage.creditList.entry.track', {
+                                                ? language.$('artistPage.creditList.entry.track', {
                                                     track: link.track(track)
                                                 })
-                                                : `<i>${strings('artistPage.creditList.entry.album.commentary')}</i>`)
+                                                : `<i>${language.$('artistPage.creditList.entry.album.commentary')}</i>`)
                                             .map(row => `<li>${row}</li>`)
                                             .join('\n'))}
                                     </ul></dd>
@@ -439,13 +439,13 @@ export function write(artist, {wikiData}) {
             strings,
             to
         }) => ({
-            title: strings('artistGalleryPage.title', {artist: name}),
+            title: language.$('artistGalleryPage.title', {artist: name}),
 
             main: {
                 classes: ['top-index'],
                 content: fixWS`
-                    <h1>${strings('artistGalleryPage.title', {artist: name})}</h1>
-                    <p class="quick-info">${strings('artistGalleryPage.infoLine', {
+                    <h1>${language.$('artistGalleryPage.title', {artist: name})}</h1>
+                    <p class="quick-info">${language.$('artistGalleryPage.infoLine', {
                         coverArts: language.countCoverArts(artThingsGallery.length, {unit: true})
                     })}</p>
                     <div class="grid-listing">
@@ -497,10 +497,10 @@ function generateNavForArtist(artist, isGallery, hasGallery, {
             wikiInfo.enableListings &&
             {
                 path: ['localized.listingIndex'],
-                title: strings('listingIndex.title')
+                title: language.$('listingIndex.title')
             },
             {
-                html: strings('artistPage.nav.artist', {
+                html: language.$('artistPage.nav.artist', {
                     artist: link.artist(artist, {class: 'current'})
                 })
             },
diff --git a/src/page/flash.js b/src/page/flash.js
index 54653a0..5e027f7 100644
--- a/src/page/flash.js
+++ b/src/page/flash.js
@@ -36,20 +36,20 @@ export function write(flash, {wikiData}) {
             strings,
             transformInline
         }) => ({
-            title: strings('flashPage.title', {flash: flash.name}),
+            title: language.$('flashPage.title', {flash: flash.name}),
             theme: getThemeString(flash.color, [
                 `--flash-directory: ${flash.directory}`
             ]),
 
             main: {
                 content: fixWS`
-                    <h1>${strings('flashPage.title', {flash: flash.name})}</h1>
+                    <h1>${language.$('flashPage.title', {flash: flash.name})}</h1>
                     ${generateCoverLink({
                         src: getFlashCover(flash),
-                        alt: strings('misc.alt.flashArt')
+                        alt: language.$('misc.alt.flashArt')
                     })}
-                    <p>${strings('releaseInfo.released', {date: strings.count.date(flash.date)})}</p>
-                    ${(flash.page || flash.urls?.length) && `<p>${strings('releaseInfo.playOn', {
+                    <p>${language.$('releaseInfo.released', {date: strings.count.date(flash.date)})}</p>
+                    ${(flash.page || flash.urls?.length) && `<p>${language.$('releaseInfo.playOn', {
                         links: strings.list.or([
                             flash.page && getFlashLink(flash),
                             ...flash.urls ?? []
@@ -59,10 +59,10 @@ export function write(flash, {wikiData}) {
                         <p>Tracks featured in <i>${flash.name.replace(/\.$/, '')}</i>:</p>
                         <ul>
                             ${(flash.featuredTracks
-                                .map(track => strings('trackList.item.withArtists', {
+                                .map(track => language.$('trackList.item.withArtists', {
                                     track: link.track(track),
                                     by: `<span class="by">${
-                                        strings('trackList.item.withArtists.by', {
+                                        language.$('trackList.item.withArtists.by', {
                                             artists: getArtistString(track.artistContribs)
                                         })
                                     }</span>`
@@ -72,7 +72,7 @@ export function write(flash, {wikiData}) {
                         </ul>
                     `}
                     ${flash.contributorContribs.length && fixWS`
-                        <p>${strings('releaseInfo.contributors')}</p>
+                        <p>${language.$('releaseInfo.contributors')}</p>
                         <ul>
                             ${flash.contributorContribs
                                 .map(contrib => `<li>${getArtistString([contrib], {
@@ -111,14 +111,14 @@ export function writeTargetless({wikiData}) {
             link,
             strings
         }) => ({
-            title: strings('flashIndex.title'),
+            title: language.$('flashIndex.title'),
 
             main: {
                 classes: ['flash-index'],
                 content: fixWS`
-                    <h1>${strings('flashIndex.title')}</h1>
+                    <h1>${language.$('flashIndex.title')}</h1>
                     <div class="long-content">
-                        <p class="quick-info">${strings('misc.jumpTo')}</p>
+                        <p class="quick-info">${language.$('misc.jumpTo')}</p>
                         <ul class="quick-info">
                             ${flashActData.filter(act => act.jump).map(({ anchor, jump, jumpColor }) => fixWS`
                                 <li><a href="#${anchor}" style="${getLinkThemeString(jumpColor)}">${jump}</a></li>
@@ -165,10 +165,10 @@ function generateNavForFlash(flash, {
             {toHome: true},
             {
                 path: ['localized.flashIndex'],
-                title: strings('flashIndex.title')
+                title: language.$('flashIndex.title')
             },
             {
-                html: strings('flashPage.nav.flash', {
+                html: language.$('flashPage.nav.flash', {
                     flash: link.flash(flash, {class: 'current'})
                 })
             },
@@ -211,7 +211,7 @@ function generateSidebarForFlash(flash, {link, strings, wikiData}) {
 
     return {
         content: fixWS`
-            <h1>${link.flashIndex('', {text: strings('flashIndex.title')})}</h1>
+            <h1>${link.flashIndex('', {text: language.$('flashIndex.title')})}</h1>
             <dl>
                 ${flashActData.filter(act =>
                     act.name.startsWith('Act 1') ||
diff --git a/src/page/group.js b/src/page/group.js
index 7ffade6..53c792a 100644
--- a/src/page/group.js
+++ b/src/page/group.js
@@ -42,44 +42,44 @@ export function write(group, {wikiData}) {
             strings,
             transformMultiline
         }) => ({
-            title: strings('groupInfoPage.title', {group: group.name}),
+            title: language.$('groupInfoPage.title', {group: group.name}),
             theme: getThemeString(group.color),
 
             main: {
                 content: fixWS`
-                    <h1>${strings('groupInfoPage.title', {group: group.name})}</h1>
+                    <h1>${language.$('groupInfoPage.title', {group: group.name})}</h1>
                     ${group.urls?.length && `<p>${
-                        strings('releaseInfo.visitOn', {
+                        language.$('releaseInfo.visitOn', {
                             links: strings.list.or(group.urls.map(url => fancifyURL(url, {strings})))
                         })
                     }</p>`}
                     <blockquote>
                         ${transformMultiline(group.description)}
                     </blockquote>
-                    <h2>${strings('groupInfoPage.albumList.title')}</h2>
+                    <h2>${language.$('groupInfoPage.albumList.title')}</h2>
                     <p>${
-                        strings('groupInfoPage.viewAlbumGallery', {
+                        language.$('groupInfoPage.viewAlbumGallery', {
                             link: link.groupGallery(group, {
-                                text: strings('groupInfoPage.viewAlbumGallery.link')
+                                text: language.$('groupInfoPage.viewAlbumGallery.link')
                             })
                         })
                     }</p>
                     <ul>
                         ${albumLines.map(({ album, otherGroup }) => {
                             const item = (album.date
-                                ? strings('groupInfoPage.albumList.item', {
+                                ? language.$('groupInfoPage.albumList.item', {
                                     year: album.date.getFullYear(),
                                     album: link.album(album)
                                 })
-                                : strings('groupInfoPage.albumList.item.withoutYear', {
+                                : language.$('groupInfoPage.albumList.item.withoutYear', {
                                     album: link.album(album)
                                 }));
                             return html.tag('li', (otherGroup
-                                ? strings('groupInfoPage.albumList.item.withAccent', {
+                                ? language.$('groupInfoPage.albumList.item.withAccent', {
                                     item,
                                     accent: html.tag('span',
                                         {class: 'other-group-accent'},
-                                        strings('groupInfoPage.albumList.item.otherGroupAccent', {
+                                        language.$('groupInfoPage.albumList.item.otherGroupAccent', {
                                             group: link.groupInfo(otherGroup, {color: false})
                                         }))
                                 })
@@ -118,15 +118,15 @@ export function write(group, {wikiData}) {
             link,
             strings
         }) => ({
-            title: strings('groupGalleryPage.title', {group: group.name}),
+            title: language.$('groupGalleryPage.title', {group: group.name}),
             theme: getThemeString(group.color),
 
             main: {
                 classes: ['top-index'],
                 content: fixWS`
-                    <h1>${strings('groupGalleryPage.title', {group: group.name})}</h1>
+                    <h1>${language.$('groupGalleryPage.title', {group: group.name})}</h1>
                     <p class="quick-info">${
-                        strings('groupGalleryPage.infoLine', {
+                        language.$('groupGalleryPage.infoLine', {
                             tracks: `<b>${language.countTracks(tracks.length, {unit: true})}</b>`,
                             albums: `<b>${language.countAlbums(albums.length, {unit: true})}</b>`,
                             time: `<b>${strings.count.duration(totalDuration, {unit: true})}</b>`
@@ -134,9 +134,9 @@ export function write(group, {wikiData}) {
                     }</p>
                     ${wikiInfo.enableGroupUI && wikiInfo.enableListings && html.tag('p',
                         {class: 'quick-info'},
-                        strings('groupGalleryPage.anotherGroupLine', {
+                        language.$('groupGalleryPage.anotherGroupLine', {
                             link: link.listing(listingSpec.find(l => l.directory === 'groups/by-category'), {
-                                text: strings('groupGalleryPage.anotherGroupLine.link')
+                                text: language.$('groupGalleryPage.anotherGroupLine.link')
                             })
                         })
                     )}
@@ -187,7 +187,7 @@ function generateGroupSidebar(currentGroup, isGallery, {
 
     return {
         content: fixWS`
-            <h1>${strings('groupSidebar.title')}</h1>
+            <h1>${language.$('groupSidebar.title')}</h1>
             ${groupCategoryData.map(category =>
                 html.tag('details', {
                     open: category === currentGroup.category,
@@ -195,7 +195,7 @@ function generateGroupSidebar(currentGroup, isGallery, {
                 }, [
                     html.tag('summary',
                         {style: getLinkThemeString(category.color)},
-                        strings('groupSidebar.groupList.category', {
+                        language.$('groupSidebar.groupList.category', {
                             category: `<span class="group-name">${category.name}</span>`
                         })),
                     html.tag('ul',
@@ -204,7 +204,7 @@ function generateGroupSidebar(currentGroup, isGallery, {
                                 class: group === currentGroup && 'current',
                                 style: getLinkThemeString(group.color)
                             },
-                            strings('groupSidebar.groupList.item', {
+                            language.$('groupSidebar.groupList.item', {
                                 group: link[linkKey](group)
                             }))))
                 ])).join('\n')}
@@ -245,10 +245,10 @@ function generateGroupNav(currentGroup, isGallery, {
             wikiInfo.enableListings &&
             {
                 path: ['localized.listingIndex'],
-                title: strings('listingIndex.title')
+                title: language.$('listingIndex.title')
             },
             {
-                html: strings('groupPage.nav.group', {
+                html: language.$('groupPage.nav.group', {
                     group: link[linkKey](currentGroup, {class: 'current'})
                 })
             },
diff --git a/src/page/homepage.js b/src/page/homepage.js
index 8b470e9..ed7d344 100644
--- a/src/page/homepage.js
+++ b/src/page/homepage.js
@@ -84,14 +84,14 @@ export function writeTargetless({wikiData}) {
                 // (even though that would 8e hilarious).
                 content: (transformMultiline(homepageLayout.sidebarContent.replace('[[news]]', '__GENERATE_NEWS__'))
                     .replace('<p>__GENERATE_NEWS__</p>', wikiInfo.enableNews ? fixWS`
-                        <h1>${strings('homepage.news.title')}</h1>
+                        <h1>${language.$('homepage.news.title')}</h1>
                         ${newsData.slice(0, 3).map((entry, i) => html.tag('article',
                             {class: ['news-entry', i === 0 && 'first-news-entry']},
                             fixWS`
                                 <h2><time>${strings.count.date(entry.date)}</time> ${link.newsEntry(entry)}</h2>
                                 ${transformMultiline(entry.contentShort)}
                                 ${entry.contentShort !== entry.content && link.newsEntry(entry, {
-                                    text: strings('homepage.news.entry.viewRest')
+                                    text: language.$('homepage.news.entry.viewRest')
                                 })}
                             `)).join('\n')}
                     ` : `<p><i>News requested in content description but this feature isn't enabled</i></p>`))
@@ -103,11 +103,11 @@ export function writeTargetless({wikiData}) {
                         ${[
                             link.home('', {text: wikiInfo.nameShort, class: 'current', to}),
                             wikiInfo.enableListings &&
-                            link.listingIndex('', {text: strings('listingIndex.title'), to}),
+                            link.listingIndex('', {text: language.$('listingIndex.title'), to}),
                             wikiInfo.enableNews &&
-                            link.newsIndex('', {text: strings('newsIndex.title'), to}),
+                            link.newsIndex('', {text: language.$('newsIndex.title'), to}),
                             wikiInfo.enableFlashesAndGames &&
-                            link.flashIndex('', {text: strings('flashIndex.title'), to}),
+                            link.flashIndex('', {text: language.$('flashIndex.title'), to}),
                             ...(staticPageData
                                 .filter(page => page.showInNavigationBar)
                                 .map(page => link.staticPage(page, {text: page.nameShort})))
diff --git a/src/page/listing.js b/src/page/listing.js
index dbac4b7..efa3fdf 100644
--- a/src/page/listing.js
+++ b/src/page/listing.js
@@ -47,11 +47,11 @@ export function write(listing, {wikiData}) {
             const titleKey = `listingPage.${listing.stringsKey}.title`;
 
             return {
-                title: strings(titleKey),
+                title: language.$(titleKey),
 
                 main: {
                     content: fixWS`
-                        <h1>${strings(titleKey)}</h1>
+                        <h1>${language.$(titleKey)}</h1>
                         ${listing.html && (listing.data
                             ? listing.html(data, opts)
                             : listing.html(opts))}
@@ -80,7 +80,7 @@ export function write(listing, {wikiData}) {
                         {toHome: true},
                         {
                             path: ['localized.listingIndex'],
-                            title: strings('listingIndex.title')
+                            title: language.$('listingIndex.title')
                         },
                         {toCurrentPage: true}
                     ]
@@ -105,19 +105,19 @@ export function writeTargetless({wikiData}) {
             strings,
             link
         }) => ({
-            title: strings('listingIndex.title'),
+            title: language.$('listingIndex.title'),
 
             main: {
                 content: fixWS`
-                    <h1>${strings('listingIndex.title')}</h1>
-                    <p>${strings('listingIndex.infoLine', {
+                    <h1>${language.$('listingIndex.title')}</h1>
+                    <p>${language.$('listingIndex.infoLine', {
                         wiki: wikiInfo.name,
                         tracks: `<b>${language.countTracks(trackData.length, {unit: true})}</b>`,
                         albums: `<b>${language.countAlbums(albumData.length, {unit: true})}</b>`,
                         duration: `<b>${strings.count.duration(totalDuration, {approximate: true, unit: true})}</b>`
                     })}</p>
                     <hr>
-                    <p>${strings('listingIndex.exploreList')}</p>
+                    <p>${language.$('listingIndex.exploreList')}</p>
                     ${generateLinkIndexForListings(null, false, {link, strings, wikiData})}
                 `
             },
@@ -147,7 +147,7 @@ function generateSidebarForListings(currentListing, {
     wikiData
 }) {
     return fixWS`
-        <h1>${link.listingIndex('', {text: strings('listingIndex.title')})}</h1>
+        <h1>${link.listingIndex('', {text: language.$('listingIndex.title')})}</h1>
         ${generateLinkIndexForListings(currentListing, true, {
             getLinkThemeString,
             link,
@@ -175,7 +175,7 @@ function generateLinkIndexForListings(currentListing, forSidebar, {
     const genUL = listings => html.tag('ul',
         listings.map(listing => html.tag('li',
             {class: [listing === currentListing && 'current']},
-            link.listing(listing, {text: strings(`listingPage.${listing.stringsKey}.title.short`)})
+            link.listing(listing, {text: language.$(`listingPage.${listing.stringsKey}.title.short`)})
         )));
 
     if (forSidebar) {
diff --git a/src/page/news.js b/src/page/news.js
index 759bb93..9951a2a 100644
--- a/src/page/news.js
+++ b/src/page/news.js
@@ -24,13 +24,13 @@ export function write(entry, {wikiData}) {
             strings,
             transformMultiline,
         }) => ({
-            title: strings('newsEntryPage.title', {entry: entry.name}),
+            title: language.$('newsEntryPage.title', {entry: entry.name}),
 
             main: {
                 content: fixWS`
                     <div class="long-content">
-                        <h1>${strings('newsEntryPage.title', {entry: entry.name})}</h1>
-                        <p>${strings('newsEntryPage.published', {date: strings.count.date(entry.date)})}</p>
+                        <h1>${language.$('newsEntryPage.title', {entry: entry.name})}</h1>
+                        <p>${language.$('newsEntryPage.published', {date: strings.count.date(entry.date)})}</p>
                         ${transformMultiline(entry.content)}
                     </div>
                 `
@@ -59,18 +59,18 @@ export function writeTargetless({wikiData}) {
             strings,
             transformMultiline
         }) => ({
-            title: strings('newsIndex.title'),
+            title: language.$('newsIndex.title'),
 
             main: {
                 content: fixWS`
                     <div class="long-content news-index">
-                        <h1>${strings('newsIndex.title')}</h1>
+                        <h1>${language.$('newsIndex.title')}</h1>
                         ${newsData.map(entry => fixWS`
                             <article id="${entry.directory}">
                                 <h2><time>${strings.count.date(entry.date)}</time> ${link.newsEntry(entry)}</h2>
                                 ${transformMultiline(entry.contentShort)}
                                 ${entry.contentShort !== entry.content && `<p>${link.newsEntry(entry, {
-                                    text: strings('newsIndex.entry.viewRest')
+                                    text: language.$('newsIndex.entry.viewRest')
                                 })}</p>`}
                             </article>
                         `).join('\n')}
@@ -108,10 +108,10 @@ function generateNewsEntryNav(entry, {
             {toHome: true},
             {
                 path: ['localized.newsIndex'],
-                title: strings('newsEntryPage.nav.news')
+                title: language.$('newsEntryPage.nav.news')
             },
             {
-                html: strings('newsEntryPage.nav.entry', {
+                html: language.$('newsEntryPage.nav.entry', {
                     date: strings.count.date(entry.date),
                     entry: link.newsEntry(entry, {class: 'current'})
                 })
diff --git a/src/page/tag.js b/src/page/tag.js
index 09d0beb..af2e394 100644
--- a/src/page/tag.js
+++ b/src/page/tag.js
@@ -37,14 +37,14 @@ export function write(tag, {wikiData}) {
             strings,
             to
         }) => ({
-            title: strings('tagPage.title', {tag: tag.name}),
+            title: language.$('tagPage.title', {tag: tag.name}),
             theme: getThemeString(tag.color),
 
             main: {
                 classes: ['top-index'],
                 content: fixWS`
-                    <h1>${strings('tagPage.title', {tag: tag.name})}</h1>
-                    <p class="quick-info">${strings('tagPage.infoLine', {
+                    <h1>${language.$('tagPage.title', {tag: tag.name})}</h1>
+                    <p class="quick-info">${language.$('tagPage.infoLine', {
                         coverArts: language.countCoverArts(things.length, {unit: true})
                     })}</p>
                     <div class="grid-listing">
@@ -92,10 +92,10 @@ function generateTagNav(tag, {
             wikiData.wikiInfo.enableListings &&
             {
                 path: ['localized.listingIndex'],
-                title: strings('listingIndex.title')
+                title: language.$('listingIndex.title')
             },
             {
-                html: strings('tagPage.nav.tag', {
+                html: language.$('tagPage.nav.tag', {
                     tag: link.tag(tag, {class: 'current'})
                 })
             },
diff --git a/src/page/track.js b/src/page/track.js
index c27b2b6..92a49ff 100644
--- a/src/page/track.js
+++ b/src/page/track.js
@@ -52,14 +52,14 @@ export function write(track, {wikiData}) {
 
     const unbound_generateTrackList = (tracks, {getArtistString, link, strings}) => html.tag('ul',
         tracks.map(track => {
-            const line = strings('trackList.item.withArtists', {
+            const line = language.$('trackList.item.withArtists', {
                 track: link.track(track),
-                by: `<span class="by">${strings('trackList.item.withArtists.by', {
+                by: `<span class="by">${language.$('trackList.item.withArtists.by', {
                     artists: getArtistString(track.artistContribs)
                 })}</span>`
             });
             return (track.aka
-                ? `<li class="rerelease">${strings('trackList.item.rerelease', {track: line})}</li>`
+                ? `<li class="rerelease">${language.$('trackList.item.rerelease', {track: line})}</li>`
                 : `<li>${line}</li>`);
         })
     );
@@ -76,7 +76,7 @@ export function write(track, {wikiData}) {
                 .filter(line => line.replace(/<\/b>/g, '').includes(':</i>'))
                 .map(line => fixWS`
                     ${line}
-                    ${strings('releaseInfo.artistCommentary.seeOriginalRelease', {
+                    ${language.$('releaseInfo.artistCommentary.seeOriginalRelease', {
                         original: link.track(track)
                     })}
                 `)
@@ -140,7 +140,7 @@ export function write(track, {wikiData}) {
             const cover = getTrackCover(track);
 
             return {
-                title: strings('trackPage.title', {track: track.name}),
+                title: language.$('trackPage.title', {track: track.name}),
                 stylesheet: getAlbumStylesheet(album, {to}),
                 theme: getThemeString(track.color, [
                     `--album-directory: ${album.directory}`,
@@ -153,7 +153,7 @@ export function write(track, {wikiData}) {
                     classes: ['dim'],
                     dimensions: album.bannerDimensions,
                     path: ['media.albumBanner', album.directory, album.bannerFileExtension],
-                    alt: strings('misc.alt.albumBanner'),
+                    alt: language.$('misc.alt.albumBanner'),
                     position: 'bottom'
                 },
                 */
@@ -162,49 +162,49 @@ export function write(track, {wikiData}) {
                     content: fixWS`
                         ${cover && generateCoverLink({
                             src: cover,
-                            alt: strings('misc.alt.trackCover'),
+                            alt: language.$('misc.alt.trackCover'),
                             tags: track.artTags
                         })}
-                        <h1>${strings('trackPage.title', {track: track.name})}</h1>
+                        <h1>${language.$('trackPage.title', {track: track.name})}</h1>
                         <p>
                             ${[
-                                strings('releaseInfo.by', {
+                                language.$('releaseInfo.by', {
                                     artists: getArtistString(track.artistContribs, {
                                         showContrib: true,
                                         showIcons: true
                                     })
                                 }),
-                                track.coverArtistContribs.length && strings('releaseInfo.coverArtBy', {
+                                track.coverArtistContribs.length && language.$('releaseInfo.coverArtBy', {
                                     artists: getArtistString(track.coverArtistContribs, {
                                         showContrib: true,
                                         showIcons: true
                                     })
                                 }),
-                                track.date && strings('releaseInfo.released', {
+                                track.date && language.$('releaseInfo.released', {
                                     date: strings.count.date(track.date)
                                 }),
                                 (track.coverArtDate &&
                                     +track.coverArtDate !== +track.date &&
-                                    strings('releaseInfo.artReleased', {
+                                    language.$('releaseInfo.artReleased', {
                                         date: strings.count.date(track.coverArtDate)
                                     })),
-                                track.duration && strings('releaseInfo.duration', {
+                                track.duration && language.$('releaseInfo.duration', {
                                     duration: strings.count.duration(track.duration)
                                 })
                             ].filter(Boolean).join('<br>\n')}
                         </p>
                         <p>${
                             (track.urls?.length
-                                ? strings('releaseInfo.listenOn', {
+                                ? language.$('releaseInfo.listenOn', {
                                     links: strings.list.or(track.urls.map(url => fancifyURL(url, {strings})))
                                 })
-                                : strings('releaseInfo.listenOn.noLinks'))
+                                : language.$('releaseInfo.listenOn.noLinks'))
                         }</p>
                         ${otherReleases.length && fixWS`
-                            <p>${strings('releaseInfo.alsoReleasedAs')}</p>
+                            <p>${language.$('releaseInfo.alsoReleasedAs')}</p>
                             <ul>
                                 ${otherReleases.map(track => fixWS`
-                                    <li>${strings('releaseInfo.alsoReleasedAs.item', {
+                                    <li>${language.$('releaseInfo.alsoReleasedAs.item', {
                                         track: link.track(track),
                                         album: link.album(track.album)
                                     })}</li>
@@ -212,7 +212,7 @@ export function write(track, {wikiData}) {
                             </ul>
                         `}
                         ${track.contributorContribs.length && fixWS`
-                            <p>${strings('releaseInfo.contributors')}</p>
+                            <p>${language.$('releaseInfo.contributors')}</p>
                             <ul>
                                 ${(track.contributorContribs
                                     .map(contrib => `<li>${getArtistString([contrib], {
@@ -223,19 +223,19 @@ export function write(track, {wikiData}) {
                             </ul>
                         `}
                         ${referencedTracks.length && fixWS`
-                            <p>${strings('releaseInfo.tracksReferenced', {track: `<i>${track.name}</i>`})}</p>
+                            <p>${language.$('releaseInfo.tracksReferenced', {track: `<i>${track.name}</i>`})}</p>
                             ${generateTrackList(referencedTracks)}
                         `}
                         ${referencedByTracks.length && fixWS`
-                            <p>${strings('releaseInfo.tracksThatReference', {track: `<i>${track.name}</i>`})}</p>
+                            <p>${language.$('releaseInfo.tracksThatReference', {track: `<i>${track.name}</i>`})}</p>
                             ${useDividedReferences && fixWS`
                                 <dl>
                                     ${rbtOfficial.length && fixWS`
-                                        <dt>${strings('trackPage.referenceList.official')}</dt>
+                                        <dt>${language.$('trackPage.referenceList.official')}</dt>
                                         <dd>${generateTrackList(rbtOfficial)}</dd>
                                     `}
                                     ${rbtFanon.length && fixWS`
-                                        <dt>${strings('trackPage.referenceList.fandom')}</dt>
+                                        <dt>${language.$('trackPage.referenceList.fandom')}</dt>
                                         <dd>${generateTrackList(rbtFanon)}</dd>
                                     `}
                                 </dl>
@@ -243,28 +243,28 @@ export function write(track, {wikiData}) {
                             ${!useDividedReferences && generateTrackList(referencedByTracks)}
                         `}
                         ${wikiInfo.enableFlashesAndGames && flashesThatFeature.length && fixWS`
-                            <p>${strings('releaseInfo.flashesThatFeature', {track: `<i>${track.name}</i>`})}</p>
+                            <p>${language.$('releaseInfo.flashesThatFeature', {track: `<i>${track.name}</i>`})}</p>
                             <ul>
                                 ${flashesThatFeature.map(({ flash, as }) => html.tag('li',
                                     {class: as !== track && 'rerelease'},
                                     (as === track
-                                        ? strings('releaseInfo.flashesThatFeature.item', {
+                                        ? language.$('releaseInfo.flashesThatFeature.item', {
                                             flash: link.flash(flash)
                                         })
-                                        : strings('releaseInfo.flashesThatFeature.item.asDifferentRelease', {
+                                        : language.$('releaseInfo.flashesThatFeature.item.asDifferentRelease', {
                                             flash: link.flash(flash),
                                             track: link.track(as)
                                         })))).join('\n')}
                             </ul>
                         `}
                         ${track.lyrics && fixWS`
-                            <p>${strings('releaseInfo.lyrics')}</p>
+                            <p>${language.$('releaseInfo.lyrics')}</p>
                             <blockquote>
                                 ${transformLyrics(track.lyrics)}
                             </blockquote>
                         `}
                         ${hasCommentary && fixWS`
-                            <p>${strings('releaseInfo.artistCommentary')}</p>
+                            <p>${language.$('releaseInfo.artistCommentary')}</p>
                             <blockquote>
                                 ${generateCommentary({link, strings, transformMultiline})}
                             </blockquote>
@@ -289,12 +289,12 @@ export function write(track, {wikiData}) {
                             title: album.name
                         },
                         listTag === 'ol' ? {
-                            html: strings('trackPage.nav.track.withNumber', {
+                            html: language.$('trackPage.nav.track.withNumber', {
                                 number: album.tracks.indexOf(track) + 1,
                                 track: link.track(track, {class: 'current', to})
                             })
                         } : {
-                            html: strings('trackPage.nav.track', {
+                            html: language.$('trackPage.nav.track', {
                                 track: link.track(track, {class: 'current', to})
                             })
                         },