Skip to content

Commit c27d6f5

Browse files
author
Sigmabrogz
committed
feat: use i18n for hardcoded strings in components and pages
Closes #2128
1 parent 77c4570 commit c27d6f5

File tree

5 files changed

+45
-27
lines changed

5 files changed

+45
-27
lines changed

app/components/Package/SkillsModal.vue

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,7 @@ function getWarningTooltip(skill: SkillListItem): string | undefined {
6767
: 'border-transparent text-fg-subtle hover:text-fg'
6868
"
6969
@click="selectedMethod = 'skills-npm'"
70-
>
71-
skills-npm
72-
</button>
70+
>{{ $t('package.skills.method_npm') }}</button>
7371
<button
7472
role="tab"
7573
:aria-selected="selectedMethod === 'skills-cli'"
@@ -82,9 +80,7 @@ function getWarningTooltip(skill: SkillListItem): string | undefined {
8280
: 'border-transparent text-fg-subtle hover:text-fg'
8381
"
8482
@click="selectedMethod = 'skills-cli'"
85-
>
86-
skills CLI
87-
</button>
83+
>{{ $t('package.skills.method_cli') }}</button>
8884
</div>
8985
</div>
9086

@@ -100,7 +96,7 @@ function getWarningTooltip(skill: SkillListItem): string | undefined {
10096
scope="global"
10197
>
10298
<template #tool>
103-
<code class="font-mono text-fg">skills-npm</code>
99+
<code class="font-mono text-fg">{{ $t('package.skills.method_npm') }}</code>
104100
</template>
105101
</i18n-t>
106102
<a

app/components/diff/ViewerPanel.vue

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -174,10 +174,10 @@ function getCodeUrl(version: string): string {
174174
>
175175
<div class="flex flex-col gap-2">
176176
<!-- Merge modified lines toggle -->
177-
<SettingsToggle label="Merge modified lines" v-model="mergeModifiedLines" />
177+
<SettingsToggle :label="$t('compare.viewer.merge_modified_lines')" v-model="mergeModifiedLines" />
178178

179179
<!-- Word wrap toggle -->
180-
<SettingsToggle label="Word wrap" v-model="wordWrap" />
180+
<SettingsToggle :label="$t('compare.viewer.word_wrap')" v-model="wordWrap" />
181181

182182
<!-- Sliders -->
183183
<div
@@ -186,14 +186,14 @@ function getCodeUrl(version: string): string {
186186
>
187187
<!-- Change ratio slider -->
188188
<div class="sr-only">
189-
<label for="change-ratio">Change ratio</label>
189+
<label for="change-ratio">{{ $t('compare.viewer.change_ratio') }}</label>
190190
</div>
191191
<div
192192
class="slider-shell w-full min-w-0"
193193
:class="{ 'is-disabled': !mergeModifiedLines }"
194194
>
195195
<div class="slider-labels">
196-
<span class="slider-label">Change ratio</span>
196+
<span class="slider-label">{{ $t('compare.viewer.change_ratio') }}</span>
197197
<span class="slider-value tabular-nums">{{ maxChangeRatio.toFixed(2) }}</span>
198198
</div>
199199
<div class="slider-track">
@@ -219,14 +219,14 @@ function getCodeUrl(version: string): string {
219219

220220
<!-- Diff distance slider -->
221221
<div class="sr-only">
222-
<label for="diff-distance">Diff distance</label>
222+
<label for="diff-distance">{{ $t('compare.viewer.diff_distance') }}</label>
223223
</div>
224224
<div
225225
class="slider-shell w-full min-w-0"
226226
:class="{ 'is-disabled': !mergeModifiedLines }"
227227
>
228228
<div class="slider-labels">
229-
<span class="slider-label">Diff distance</span>
229+
<span class="slider-label">{{ $t('compare.viewer.diff_distance') }}</span>
230230
<span class="slider-value tabular-nums">{{ maxDiffDistance }}</span>
231231
</div>
232232
<div class="slider-track">
@@ -252,14 +252,14 @@ function getCodeUrl(version: string): string {
252252

253253
<!-- Char edits slider -->
254254
<div class="sr-only">
255-
<label for="char-edits">Char edits</label>
255+
<label for="char-edits">{{ $t('compare.viewer.char_edits') }}</label>
256256
</div>
257257
<div
258258
class="slider-shell w-full min-w-0"
259259
:class="{ 'is-disabled': !mergeModifiedLines }"
260260
>
261261
<div class="slider-labels">
262-
<span class="slider-label">Char edits</span>
262+
<span class="slider-label">{{ $t('compare.viewer.char_edits') }}</span>
263263
<span class="slider-value tabular-nums">{{ inlineMaxCharEdits }}</span>
264264
</div>
265265
<div class="slider-track">
@@ -317,14 +317,14 @@ function getCodeUrl(version: string): string {
317317
<!-- Loading state -->
318318
<div v-else-if="status === 'pending'" class="py-12 text-center">
319319
<div class="i-svg-spinners-ring-resize w-6 h-6 mx-auto text-fg-muted" />
320-
<p class="mt-2 text-sm text-fg-muted">Loading diff...</p>
320+
<p class="mt-2 text-sm text-fg-muted">{{ $t('compare.viewer.loading_diff') }}</p>
321321
</div>
322322

323323
<!-- Error state -->
324324
<div v-else-if="status === 'error'" class="py-8 text-center">
325325
<span class="i-lucide:triangle-alert w-8 h-8 mx-auto text-fg-subtle mb-2 block" />
326326
<p class="text-fg-muted text-sm mb-2">
327-
{{ loadError?.message || 'Failed to load diff' }}
327+
{{ loadError?.message || $t('compare.viewer.failed_to_load_diff') }}
328328
</p>
329329
<div class="flex items-center justify-center gap-2">
330330
<NuxtLink

app/pages/blog/index.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ useSeoMeta({
3737
:authors="post.authors"
3838
:title="post.title"
3939
:path="post.slug"
40-
:excerpt="post.excerpt || post.description || 'No Excerpt Available'"
40+
:excerpt="post.excerpt || post.description || $t('blog.no_excerpt')"
4141
:topics="Array.isArray(post.tags) ? post.tags : placeHolder"
4242
:published="post.date"
4343
:index="idx"
@@ -47,7 +47,7 @@ useSeoMeta({
4747
</template>
4848
</article>
4949

50-
<p v-else class="text-center py-20 text-fg-subtle">No posts found.</p>
50+
<p v-else class="text-center py-20 text-fg-subtle">{{ $t('blog.no_posts') }}</p>
5151
</article>
5252
</main>
5353
</template>

app/pages/diff/[[org]]/[packageName]/v/[versionRange].vue

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -135,21 +135,21 @@ useSeoMeta({
135135
<!-- Error: invalid route -->
136136
<div v-if="!versionRange" class="container py-20 text-center">
137137
<p class="text-fg-muted mb-4">
138-
Invalid comparison URL. Use format: /diff/package/v/from...to
138+
{{ $t('compare.invalid_url') }}
139139
</p>
140-
<NuxtLink :to="packageRoute(packageName)" class="btn">Go to package</NuxtLink>
140+
<NuxtLink :to="packageRoute(packageName)" class="btn">{{ $t('compare.go_to_package') }}</NuxtLink>
141141
</div>
142142

143143
<!-- Loading state -->
144144
<div v-else-if="compareStatus === 'pending'" class="container py-20 text-center">
145145
<div class="i-svg-spinners-ring-resize w-8 h-8 mx-auto text-fg-muted" />
146-
<p class="mt-4 text-fg-muted">Comparing versions...</p>
146+
<p class="mt-4 text-fg-muted">{{ $t('compare.comparing_versions') }}</p>
147147
</div>
148148

149149
<!-- Error state -->
150150
<div v-else-if="compareStatus === 'error'" class="container py-20 text-center" role="alert">
151-
<p class="text-fg-muted mb-4">Failed to compare versions</p>
152-
<NuxtLink :to="packageRoute(packageName)" class="btn">Back to package</NuxtLink>
151+
<p class="text-fg-muted mb-4">{{ $t('compare.failed_to_compare') }}</p>
152+
<NuxtLink :to="packageRoute(packageName)" class="btn">{{ $t('compare.back_to_package') }}</NuxtLink>
153153
</div>
154154

155155
<!-- Comparison content -->

i18n/locales/en.json

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,9 @@
110110
"like_count": "{count} like | {count} likes",
111111
"repost_count": "{count} repost | {count} reposts",
112112
"more_replies": "{count} more reply... | {count} more replies..."
113-
}
113+
},
114+
"no_excerpt": "No Excerpt Available",
115+
"no_posts": "No posts found."
114116
},
115117
"settings": {
116118
"title": "settings",
@@ -286,7 +288,9 @@
286288
"refs": "{count} ref | {count} refs",
287289
"assets": "{count} asset | {count} assets"
288290
},
289-
"view_source": "View source"
291+
"view_source": "View source",
292+
"method_npm": "skills-npm",
293+
"method_cli": "skills CLI"
290294
},
291295
"links": {
292296
"main": "main",
@@ -1205,7 +1209,25 @@
12051209
"files_button": "Files",
12061210
"select_file_prompt": "Select a file from the sidebar to view its diff",
12071211
"close_files_panel": "Close files panel",
1208-
"filter_files_label": "Filter files by change type"
1212+
"filter_files_label": "Filter files by change type",
1213+
"invalid_url": "Invalid comparison URL. Use format: /diff/package/v/from...to",
1214+
"go_to_package": "Go to package",
1215+
"comparing_versions": "Comparing versions...",
1216+
"failed_to_compare": "Failed to compare versions",
1217+
"back_to_package": "Back to package",
1218+
"viewer": {
1219+
"options": "Options",
1220+
"merge_modified_lines": "Merge modified lines",
1221+
"word_wrap": "Word wrap",
1222+
"change_ratio": "Change ratio",
1223+
"diff_distance": "Diff distance",
1224+
"char_edits": "Char edits",
1225+
"view_file": "View file",
1226+
"loading_diff": "Loading diff...",
1227+
"failed_to_load_diff": "Failed to load diff",
1228+
"view_in_code_browser": "View in code browser",
1229+
"no_content_changes": "No content changes detected"
1230+
}
12091231
},
12101232
"pds": {
12111233
"title": "npmx.social",

0 commit comments

Comments
 (0)