headers and i18n

This commit is contained in:
Bruno Bergher 2026-01-10 10:38:33 +00:00
parent 99b1f9eacd
commit 60cb90230d
24 changed files with 107 additions and 30 deletions

View file

@ -46,7 +46,6 @@
},
"title": "Marketplace"
},
"done": "Done",
"tabs": {
"installed": "Installed",
"browse": "Browse",

View file

@ -84,16 +84,13 @@ const HistoryView = ({ onDone }: HistoryViewProps) => {
<TabHeader className="flex flex-col gap-2">
<div className="flex items-center justify-between gap-2">
<div className="flex items-center gap-2">
<StandardTooltip content={t("history:done")}>
<Button
variant="ghost"
className="px-1.5 -ml-2"
onClick={onDone}
aria-label={t("history:done")}>
<ArrowLeft />
<span className="sr-only">{t("history:done")}</span>
</Button>
</StandardTooltip>
<Button
variant="ghost"
className="px-1.5 -ml-2"
onClick={onDone}
aria-label={t("settings:back")}>
<ArrowLeft />
</Button>
<h3 className="text-vscode-foreground m-0">{t("history:history")}</h3>
</div>
<StandardTooltip

View file

@ -1,6 +1,5 @@
import { useState, useEffect, useMemo, useContext } from "react"
import { Button } from "@/components/ui/button"
import { StandardTooltip } from "@/components/ui"
import { ArrowLeft } from "lucide-react"
import { Tab, TabContent, TabHeader } from "../common/Tab"
import { MarketplaceViewStateManager } from "./MarketplaceViewStateManager"
@ -103,16 +102,14 @@ export function MarketplaceView({ stateManager, onDone, targetTab }: Marketplace
<TabHeader className="flex flex-col sticky top-0 z-10 px-3 py-2">
<div className="flex items-center justify-between gap-2 px-2">
<div className="flex items-center gap-2">
<StandardTooltip content={t("marketplace:done")}>
<Button
variant="ghost"
className="px-1.5 -ml-2"
onClick={() => onDone?.()}
aria-label={t("marketplace:done")}>
<ArrowLeft />
<span className="sr-only">{t("marketplace:done")}</span>
</Button>
</StandardTooltip>
<Button
variant="ghost"
className="px-1.5 -ml-2"
onClick={() => onDone?.()}
aria-label={t("settings:back")}>
<ArrowLeft />
<span className="sr-only">{t("marketplace:done")}</span>
</Button>
<h3 className="font-bold m-0">{t("marketplace:title")}</h3>
</div>
</div>

View file

@ -38,17 +38,17 @@ export function SettingsSearchInput({
onKeyDown={onKeyDown}
placeholder={t("settings:search.placeholder")}
className={cn(
"pl-6 w-[0px] border-none focus:border-vscode-input-border focus:pl-8 focus:min-w-[110px] focus:w-full",
value && "pr-4 pl-8 min-w-[108px]",
"pl-6 focus:pl-8 w-[0px] border-none focus:border-vscode-input-border focus:min-w-[90px] focus:w-full",
value && "pl-8 pr-8 min-w-[50px] w-full",
)}
/>
{value && (
<button
type="button"
onClick={() => onChange("")}
className="absolute cursor-pointer right-2.5 top-1/2 -translate-y-1/2 size-4 text-vscode-descriptionForeground hover:text-vscode-foreground focus:outline-none"
className="absolute cursor-pointer right-2 top-1/2 -translate-y-1/2 size-4 text-vscode-descriptionForeground hover:text-vscode-foreground focus:outline-none"
aria-label="Clear search">
<X className="size-4" />
<X className="size-3" />
</button>
)}
</div>

View file

@ -671,7 +671,7 @@ const SettingsView = forwardRef<SettingsViewRef, SettingsViewProps>(({ onDone, t
return (
<Tab>
<TabHeader className="flex justify-between items-center gap-2">
<div className="flex items-center gap-2 grow truncate">
<div className="flex items-center gap-2 grow">
<StandardTooltip content={t("settings:header.doneButtonTooltip")}>
<Button variant="ghost" className="px-1.5 -ml-2" onClick={() => checkUnsaveChanges(onDone)}>
<ArrowLeft />

View file

@ -1,4 +1,9 @@
{
"back": "Torna a la vista de tasques",
"search": {
"placeholder": "Troba un ajust...",
"noResults": "No s'han trobat resultats per \"{{query}}\""
},
"common": {
"save": "Desar",
"done": "Fet",

View file

@ -1,4 +1,9 @@
{
"back": "Zur Aufgabenansicht zurück",
"search": {
"placeholder": "Einstellung finden...",
"noResults": "Keine Treffer für \"{{query}}\""
},
"common": {
"save": "Speichern",
"done": "Fertig",

View file

@ -3,7 +3,6 @@
"history": "History",
"exitSelectionMode": "Exit Selection Mode",
"enterSelectionMode": "Enter Selection Mode",
"done": "Done",
"searchPlaceholder": "Fuzzy search history...",
"newest": "Newest",
"oldest": "Oldest",

View file

@ -1,11 +1,11 @@
{
"back": "Back to tasks view",
"search": {
"placeholder": "Find setting...",
"noResults": "No results found for \"{{query}}\""
},
"common": {
"save": "Save",
"done": "Done",
"cancel": "Cancel",
"reset": "Reset",
"select": "Select",
@ -16,7 +16,7 @@
"title": "Settings",
"saveButtonTooltip": "Save changes",
"nothingChangedTooltip": "Nothing changed",
"doneButtonTooltip": "Discard unsaved changes and close settings panel"
"doneButtonTooltip": "Discard unsaved changes and go back to tasks view"
},
"unsavedChangesDialog": {
"title": "Unsaved Changes",

View file

@ -1,4 +1,9 @@
{
"back": "Volver a la vista de tareas",
"search": {
"placeholder": "Buscar ajuste...",
"noResults": "No se encontraron resultados para \"{{query}}\""
},
"common": {
"save": "Guardar",
"done": "Hecho",

View file

@ -1,4 +1,9 @@
{
"back": "Retour à la vue des tâches",
"search": {
"placeholder": "Trouver un réglage...",
"noResults": "Aucun résultat pour \"{{query}}\""
},
"common": {
"save": "Enregistrer",
"done": "Terminé",

View file

@ -1,4 +1,9 @@
{
"back": "टास्क व्यू पर वापस जाओ",
"search": {
"placeholder": "सेटिंग खोजें...",
"noResults": "\"{{query}}\" के लिए कोई परिणाम नहीं मिला"
},
"common": {
"save": "सहेजें",
"done": "पूर्ण",

View file

@ -1,4 +1,9 @@
{
"back": "Kembali ke tampilan tugas",
"search": {
"placeholder": "Cari pengaturan...",
"noResults": "Tidak ada hasil untuk \"{{query}}\""
},
"common": {
"save": "Simpan",
"done": "Selesai",

View file

@ -1,4 +1,9 @@
{
"back": "Torna alla vista attività",
"search": {
"placeholder": "Trova impostazione...",
"noResults": "Nessun risultato per \"{{query}}\""
},
"common": {
"save": "Salva",
"done": "Fatto",

View file

@ -1,4 +1,9 @@
{
"back": "タスクビューに戻る",
"search": {
"placeholder": "設定を検索...",
"noResults": "\"{{query}}\" の結果はありません"
},
"common": {
"save": "保存",
"done": "完了",

View file

@ -1,4 +1,9 @@
{
"back": "작업 보기로 돌아가기",
"search": {
"placeholder": "설정 찾기...",
"noResults": "\"{{query}}\"에 대한 결과가 없습니다"
},
"common": {
"save": "저장",
"done": "완료",

View file

@ -1,4 +1,9 @@
{
"back": "Terug naar takenoverzicht",
"search": {
"placeholder": "Instelling zoeken...",
"noResults": "Geen resultaten voor \"{{query}}\""
},
"common": {
"save": "Opslaan",
"done": "Gereed",

View file

@ -1,4 +1,9 @@
{
"back": "Wróć do widoku zadań",
"search": {
"placeholder": "Znajdź ustawienie...",
"noResults": "Brak wyników dla \"{{query}}\""
},
"common": {
"save": "Zapisz",
"done": "Gotowe",

View file

@ -1,4 +1,9 @@
{
"back": "Voltar para a visualização de tarefas",
"search": {
"placeholder": "Encontrar configuração...",
"noResults": "Nenhum resultado para \"{{query}}\""
},
"common": {
"save": "Salvar",
"done": "Concluído",

View file

@ -1,4 +1,9 @@
{
"back": "Назад к списку задач",
"search": {
"placeholder": "Найти настройку...",
"noResults": "Нет результатов для \"{{query}}\""
},
"common": {
"save": "Сохранить",
"done": "Готово",

View file

@ -1,4 +1,9 @@
{
"back": "Görev görünümüne dön",
"search": {
"placeholder": "Ayar bul...",
"noResults": "\"{{query}}\" için sonuç yok"
},
"common": {
"save": "Kaydet",
"done": "Tamamlandı",

View file

@ -1,4 +1,9 @@
{
"back": "Quay lại chế độ xem nhiệm vụ",
"search": {
"placeholder": "Tìm cài đặt...",
"noResults": "Không tìm thấy kết quả cho \"{{query}}\""
},
"common": {
"save": "Lưu",
"done": "Hoàn thành",

View file

@ -1,4 +1,9 @@
{
"back": "返回任务视图",
"search": {
"placeholder": "查找设置...",
"noResults": "未找到与 \"{{query}}\" 匹配的结果"
},
"common": {
"save": "保存",
"done": "完成",

View file

@ -1,4 +1,9 @@
{
"back": "返回工作檢視",
"search": {
"placeholder": "搜尋設定...",
"noResults": "沒有找到與 \"{{query}}\" 相符的結果"
},
"common": {
"save": "儲存",
"done": "完成",