Skip to content

Commit 6f9cb6c

Browse files
authored
feat: always display full Target Support grid, improve translatability (#191)
* feat: always display full Target Support grid, improve translatability * docs: add links to useful tolgee docs pages
1 parent 0db997d commit 6f9cb6c

File tree

3 files changed

+58
-17
lines changed

3 files changed

+58
-17
lines changed

CONTRIBUTING.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,14 @@ To do this:
128128

129129
Using the in-context translation Screenshot feature also requires installing the _Tolgee Tools_ browser extension.
130130

131+
To define new translation keys yourself, contact us on the Discord about getting Edit Keys scope access to the project.
132+
133+
See these documentation pages about how to use Tolgee in code:
134+
135+
- [Using `$t()` and the `T` component](https://tolgee.io/js-sdk/integrations/svelte/translating)
136+
- [Full spec for `$t()`](https://tolgee.io/js-sdk/api/core_package/tolgee#t)
137+
- [ICU Message Format](https://tolgee.io/platform/translation_process/icu_message_format)
138+
131139
### Downloading Translations
132140

133141
This project uses Tolgee to manage translations.

src/lib/components/mods/ModLatestVersions.svelte

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import VersionTargetSupportGrid from '$lib/components/versions/VersionTargetSupportGrid.svelte';
77
import VersionDependenciesGrid from '$lib/components/versions/VersionDependenciesGrid.svelte';
88
import type { Version, VersionDependency, VersionTarget } from '$lib/generated';
9+
import { T } from '@tolgee/svelte';
910
1011
type IVersion = Pick<Version, 'id' | 'link' | 'version' | 'created_at'> & {
1112
targets?: Pick<VersionTarget, 'targetName' | 'size' | 'hash'>[];
@@ -31,7 +32,7 @@
3132
<div class="card p-4">
3233
<section>
3334
<div class="grid grid-flow-row gap-y-2">
34-
<h3 class="my-4 text-2xl font-bold">{$t('mod.latest-versions')}</h3>
35+
<h3 class="my-4 text-2xl font-bold"><T keyName="mod.latest-versions" defaultValue="Latest Versions" /></h3>
3536

3637
{#each Object.keys(stabilities) as stability}
3738
{#if latestVersions[stability]}
@@ -43,22 +44,25 @@
4344
<a
4445
href="{base}/mod/{modId}/version/{latestVersions[stability].id}/"
4546
class="text-yellow-500 underline"
46-
title="Click to view patch notes for this version">Version {latestVersions[stability].version}</a>
47+
title={$t('version.version-number.tooltip', 'Click to view patch notes for this version')}>
48+
<T
49+
keyName="version.version-number"
50+
defaultValue={'Version {versionNumber}'}
51+
params={{ versionNumber: latestVersions[stability].version }} /></a>
4752
<div>{prettyDate(latestVersions[stability].created_at)}</div>
4853
</div>
4954
<div class="text-1xl col-span-3 h-auto w-auto p-2.5">
5055
<a
5156
href="#top"
5257
on:click={() => installMod(modReference)}
53-
title="Install via Satisfactory Mod Manager"
58+
title={$t('version.install.tooltip', 'Install via Satisfactory Mod Manager')}
5459
class="text-yellow-500">
55-
<span class="material-icons align-middle" style="font-size: 118x;">download</span> <u>Install</u>
60+
<span class="material-icons align-middle" style="font-size: 118x;">download</span>
61+
<u><T keyName="version.install" defaultValue="Install" /></u>
5662
</a>
5763
</div>
5864
</div>
59-
{#if latestVersions[stability].targets.length > 1}
60-
<VersionTargetSupportGrid targets={latestVersions[stability].targets} />
61-
{/if}
65+
<VersionTargetSupportGrid targets={latestVersions[stability].targets} />
6266
<VersionDependenciesGrid dependencies={latestVersions[stability].dependencies} />
6367
{/if}
6468
{/each}

src/lib/components/versions/VersionTargetSupportGrid.svelte

Lines changed: 39 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,29 @@
11
<script lang="ts">
22
import type { VersionTarget } from '$lib/generated';
3+
import { getTranslate } from '@tolgee/svelte';
4+
import { T } from '@tolgee/svelte';
5+
6+
export const { t } = getTranslate();
37
48
export let targets!: Pick<VersionTarget, 'targetName'>[];
59
6-
function formatTooltip(found: boolean, selectedTarget: string) {
7-
if (found) {
8-
return `This version supports the ${selectedTarget} target`;
10+
function formatTooltip(filesFoundForTarget: boolean, selectedTarget: string) {
11+
if (filesFoundForTarget) {
12+
return $t({
13+
key: 'version.target-support-tooltip.supported',
14+
defaultValue: `This version supports the {TargetPlatform} platform`,
15+
params: {
16+
TargetPlatform: selectedTarget
17+
}
18+
});
919
}
10-
11-
return `This version lacks files for the ${selectedTarget} target`;
20+
return $t({
21+
key: 'version.target-support-tooltip.unsupported',
22+
defaultValue: `This version does not support the {TargetPlatform} platform`,
23+
params: {
24+
TargetPlatform: selectedTarget
25+
}
26+
});
1227
}
1328
1429
const yesGlyph = 'checkmark';
@@ -36,11 +51,17 @@
3651
<tbody>
3752
<tr class="rounded border !border-surface-500">
3853
<td style="width: 20%;" />
39-
<td style="width: 40%;"><div class="text-center" title="Game client">Client</div></td>
40-
<td style="width: 40%;"><div class="text-center" title="Dedicated server">Server</div></td>
54+
<td style="width: 40%;"
55+
><div class="text-center" title="Game client">
56+
<T keyName="target-platform.client" defaultValue="Client" />
57+
</div></td>
58+
<td style="width: 40%;"
59+
><div class="text-center" title="Dedicated server">
60+
<T keyName="target-platform.server" defaultValue="Server" />
61+
</div></td>
4162
</tr>
4263
<tr class="rounded border !border-surface-500">
43-
<td>Windows</td>
64+
<td><T keyName="target-platform.windows" defaultValue="Windows" /></td>
4465
<td
4566
><div class="text-center">
4667
<span class="material-icons text-center" style="width: 20px" title={WindowsSupport.tooltip}
@@ -53,8 +74,16 @@
5374
</div></td>
5475
</tr>
5576
<tr class="rounded border !border-surface-500">
56-
<td>Linux</td>
57-
<td><div class="text-center" title="There is no Client distribution of Satisfactory for Linux">N/A</div></td>
77+
<td><T keyName="target-platform.linux" defaultValue="Linux" /></td>
78+
<td
79+
><div
80+
class="text-center"
81+
title={$t(
82+
'version.target-support-tooltip.no-linux-client',
83+
'There is no Client distribution of Satisfactory for Linux'
84+
)}>
85+
<T keyName="not-applicable.abbreviation" defaultValue="N/A" />
86+
</div></td>
5887
<td
5988
><div class="text-center">
6089
<span class="material-icons text-center" style="width: 20px" title={LinuxServerSupport.tooltip}

0 commit comments

Comments
 (0)