Просмотр исходного кода

fix(app): missing translations for status

adamelmore 3 недель назад
Родитель
Сommit
3d23d2df71

+ 29 - 12
packages/app/src/components/status-popover.tsx

@@ -153,7 +153,7 @@ export function StatusPopover() {
               "bg-border-weak-base": server.healthy() === undefined,
               "bg-border-weak-base": server.healthy() === undefined,
             }}
             }}
           />
           />
-          <span class="text-12-regular text-text-strong">Status</span>
+          <span class="text-12-regular text-text-strong">{language.t("status.popover.trigger")}</span>
         </div>
         </div>
       }
       }
       class="[&_[data-slot=popover-body]]:p-0 w-[360px] max-w-[calc(100vw-40px)] bg-transparent border-0 shadow-none rounded-xl"
       class="[&_[data-slot=popover-body]]:p-0 w-[360px] max-w-[calc(100vw-40px)] bg-transparent border-0 shadow-none rounded-xl"
@@ -166,7 +166,7 @@ export function StatusPopover() {
         style={{ "box-shadow": "var(--shadow-lg-border-base)" }}
         style={{ "box-shadow": "var(--shadow-lg-border-base)" }}
       >
       >
         <Tabs
         <Tabs
-          aria-label="Server Configurations"
+          aria-label={language.t("status.popover.ariaLabel")}
           class="tabs"
           class="tabs"
           data-component="tabs"
           data-component="tabs"
           data-active="servers"
           data-active="servers"
@@ -189,16 +189,20 @@ export function StatusPopover() {
             }}
             }}
           >
           >
             <Tabs.Trigger value="servers" data-slot="tab" class="text-12-regular">
             <Tabs.Trigger value="servers" data-slot="tab" class="text-12-regular">
-              {serverCount() > 0 ? `${serverCount()} ` : ""}Servers
+              {serverCount() > 0 ? `${serverCount()} ` : ""}
+              {language.t("status.popover.tab.servers")}
             </Tabs.Trigger>
             </Tabs.Trigger>
             <Tabs.Trigger value="mcp" data-slot="tab" class="text-12-regular">
             <Tabs.Trigger value="mcp" data-slot="tab" class="text-12-regular">
-              {mcpConnected() > 0 ? `${mcpConnected()} ` : ""}MCP
+              {mcpConnected() > 0 ? `${mcpConnected()} ` : ""}
+              {language.t("status.popover.tab.mcp")}
             </Tabs.Trigger>
             </Tabs.Trigger>
             <Tabs.Trigger value="lsp" data-slot="tab" class="text-12-regular">
             <Tabs.Trigger value="lsp" data-slot="tab" class="text-12-regular">
-              {lspCount() > 0 ? `${lspCount()} ` : ""}LSP
+              {lspCount() > 0 ? `${lspCount()} ` : ""}
+              {language.t("status.popover.tab.lsp")}
             </Tabs.Trigger>
             </Tabs.Trigger>
             <Tabs.Trigger value="plugins" data-slot="tab" class="text-12-regular">
             <Tabs.Trigger value="plugins" data-slot="tab" class="text-12-regular">
-              {pluginCount() > 0 ? `${pluginCount()} ` : ""}Plugins
+              {pluginCount() > 0 ? `${pluginCount()} ` : ""}
+              {language.t("status.popover.tab.plugins")}
             </Tabs.Trigger>
             </Tabs.Trigger>
           </Tabs.List>
           </Tabs.List>
 
 
@@ -274,7 +278,7 @@ export function StatusPopover() {
                           </Show>
                           </Show>
                           <Show when={isDefault()}>
                           <Show when={isDefault()}>
                             <span class="text-11-regular text-text-base bg-surface-base px-1.5 py-0.5 rounded-md">
                             <span class="text-11-regular text-text-base bg-surface-base px-1.5 py-0.5 rounded-md">
-                              Default
+                              {language.t("common.default")}
                             </span>
                             </span>
                           </Show>
                           </Show>
                           <div class="flex-1" />
                           <div class="flex-1" />
@@ -292,7 +296,7 @@ export function StatusPopover() {
                   class="mt-3 self-start h-8 px-3 py-1.5"
                   class="mt-3 self-start h-8 px-3 py-1.5"
                   onClick={() => dialog.show(() => <DialogSelectServer />)}
                   onClick={() => dialog.show(() => <DialogSelectServer />)}
                 >
                 >
-                  Manage servers
+                  {language.t("status.popover.action.manageServers")}
                 </Button>
                 </Button>
               </div>
               </div>
             </div>
             </div>
@@ -304,7 +308,9 @@ export function StatusPopover() {
                 <Show
                 <Show
                   when={mcpItems().length > 0}
                   when={mcpItems().length > 0}
                   fallback={
                   fallback={
-                    <div class="text-14-regular text-text-base text-center my-auto">No MCP servers configured</div>
+                    <div class="text-14-regular text-text-base text-center my-auto">
+                      {language.t("dialog.mcp.empty")}
+                    </div>
                   }
                   }
                 >
                 >
                   <For each={mcpItems()}>
                   <For each={mcpItems()}>
@@ -351,7 +357,7 @@ export function StatusPopover() {
                   when={lspItems().length > 0}
                   when={lspItems().length > 0}
                   fallback={
                   fallback={
                     <div class="text-14-regular text-text-base text-center my-auto">
                     <div class="text-14-regular text-text-base text-center my-auto">
-                      LSPs auto-detected from file types
+                      {language.t("dialog.lsp.empty")}
                     </div>
                     </div>
                   }
                   }
                 >
                 >
@@ -381,8 +387,19 @@ export function StatusPopover() {
                   when={plugins().length > 0}
                   when={plugins().length > 0}
                   fallback={
                   fallback={
                     <div class="text-14-regular text-text-base text-center my-auto">
                     <div class="text-14-regular text-text-base text-center my-auto">
-                      Plugins configured in{" "}
-                      <code class="bg-surface-raised-base px-1.5 py-0.5 rounded-sm text-text-base">opencode.json</code>
+                      {(() => {
+                        const value = language.t("dialog.plugins.empty")
+                        const file = "opencode.json"
+                        const parts = value.split(file)
+                        if (parts.length === 1) return value
+                        return (
+                          <>
+                            {parts[0]}
+                            <code class="bg-surface-raised-base px-1.5 py-0.5 rounded-sm text-text-base">{file}</code>
+                            {parts.slice(1).join(file)}
+                          </>
+                        )
+                      })()}
                     </div>
                     </div>
                   }
                   }
                 >
                 >

+ 8 - 0
packages/app/src/i18n/ar.ts

@@ -426,6 +426,14 @@ export const dict = {
   "session.header.search.placeholder": "بحث {{project}}",
   "session.header.search.placeholder": "بحث {{project}}",
   "session.header.searchFiles": "بحث عن الملفات",
   "session.header.searchFiles": "بحث عن الملفات",
 
 
+  "status.popover.trigger": "الحالة",
+  "status.popover.ariaLabel": "إعدادات الخوادم",
+  "status.popover.tab.servers": "الخوادم",
+  "status.popover.tab.mcp": "MCP",
+  "status.popover.tab.lsp": "LSP",
+  "status.popover.tab.plugins": "الإضافات",
+  "status.popover.action.manageServers": "إدارة الخوادم",
+
   "session.share.popover.title": "نشر على الويب",
   "session.share.popover.title": "نشر على الويب",
   "session.share.popover.description.shared": "هذه الجلسة عامة على الويب. يمكن لأي شخص لديه الرابط الوصول إليها.",
   "session.share.popover.description.shared": "هذه الجلسة عامة على الويب. يمكن لأي شخص لديه الرابط الوصول إليها.",
   "session.share.popover.description.unshared": "شارك الجلسة علنًا على الويب. ستكون متاحة لأي شخص لديه الرابط.",
   "session.share.popover.description.unshared": "شارك الجلسة علنًا على الويب. ستكون متاحة لأي شخص لديه الرابط.",

+ 8 - 0
packages/app/src/i18n/br.ts

@@ -422,6 +422,14 @@ export const dict = {
   "session.header.search.placeholder": "Buscar {{project}}",
   "session.header.search.placeholder": "Buscar {{project}}",
   "session.header.searchFiles": "Buscar arquivos",
   "session.header.searchFiles": "Buscar arquivos",
 
 
+  "status.popover.trigger": "Status",
+  "status.popover.ariaLabel": "Configurações de servidores",
+  "status.popover.tab.servers": "Servidores",
+  "status.popover.tab.mcp": "MCP",
+  "status.popover.tab.lsp": "LSP",
+  "status.popover.tab.plugins": "Plugins",
+  "status.popover.action.manageServers": "Gerenciar servidores",
+
   "session.share.popover.title": "Publicar na web",
   "session.share.popover.title": "Publicar na web",
   "session.share.popover.description.shared":
   "session.share.popover.description.shared":
     "Esta sessão é pública na web. Está acessível para qualquer pessoa com o link.",
     "Esta sessão é pública na web. Está acessível para qualquer pessoa com o link.",

+ 8 - 0
packages/app/src/i18n/da.ts

@@ -409,6 +409,14 @@ export const dict = {
   "session.header.search.placeholder": "Søg {{project}}",
   "session.header.search.placeholder": "Søg {{project}}",
   "session.header.searchFiles": "Søg efter filer",
   "session.header.searchFiles": "Søg efter filer",
 
 
+  "status.popover.trigger": "Status",
+  "status.popover.ariaLabel": "Serverkonfigurationer",
+  "status.popover.tab.servers": "Servere",
+  "status.popover.tab.mcp": "MCP",
+  "status.popover.tab.lsp": "LSP",
+  "status.popover.tab.plugins": "Plugins",
+  "status.popover.action.manageServers": "Administrer servere",
+
   "session.share.popover.title": "Udgiv på nettet",
   "session.share.popover.title": "Udgiv på nettet",
   "session.share.popover.description.shared":
   "session.share.popover.description.shared":
     "Denne session er offentlig på nettet. Den er tilgængelig for alle med linket.",
     "Denne session er offentlig på nettet. Den er tilgængelig for alle med linket.",

+ 8 - 0
packages/app/src/i18n/de.ts

@@ -416,6 +416,14 @@ export const dict = {
   "session.header.search.placeholder": "{{project}} durchsuchen",
   "session.header.search.placeholder": "{{project}} durchsuchen",
   "session.header.searchFiles": "Dateien suchen",
   "session.header.searchFiles": "Dateien suchen",
 
 
+  "status.popover.trigger": "Status",
+  "status.popover.ariaLabel": "Serverkonfigurationen",
+  "status.popover.tab.servers": "Server",
+  "status.popover.tab.mcp": "MCP",
+  "status.popover.tab.lsp": "LSP",
+  "status.popover.tab.plugins": "Plugins",
+  "status.popover.action.manageServers": "Server verwalten",
+
   "session.share.popover.title": "Im Web veröffentlichen",
   "session.share.popover.title": "Im Web veröffentlichen",
   "session.share.popover.description.shared":
   "session.share.popover.description.shared":
     "Diese Sitzung ist öffentlich im Web. Sie ist für jeden mit dem Link zugänglich.",
     "Diese Sitzung ist öffentlich im Web. Sie ist für jeden mit dem Link zugänglich.",

+ 8 - 0
packages/app/src/i18n/en.ts

@@ -430,6 +430,14 @@ export const dict = {
   "session.header.search.placeholder": "Search {{project}}",
   "session.header.search.placeholder": "Search {{project}}",
   "session.header.searchFiles": "Search files",
   "session.header.searchFiles": "Search files",
 
 
+  "status.popover.trigger": "Status",
+  "status.popover.ariaLabel": "Server configurations",
+  "status.popover.tab.servers": "Servers",
+  "status.popover.tab.mcp": "MCP",
+  "status.popover.tab.lsp": "LSP",
+  "status.popover.tab.plugins": "Plugins",
+  "status.popover.action.manageServers": "Manage servers",
+
   "session.share.popover.title": "Publish on web",
   "session.share.popover.title": "Publish on web",
   "session.share.popover.description.shared":
   "session.share.popover.description.shared":
     "This session is public on the web. It is accessible to anyone with the link.",
     "This session is public on the web. It is accessible to anyone with the link.",

+ 8 - 0
packages/app/src/i18n/es.ts

@@ -410,6 +410,14 @@ export const dict = {
   "session.header.search.placeholder": "Buscar {{project}}",
   "session.header.search.placeholder": "Buscar {{project}}",
   "session.header.searchFiles": "Buscar archivos",
   "session.header.searchFiles": "Buscar archivos",
 
 
+  "status.popover.trigger": "Estado",
+  "status.popover.ariaLabel": "Configuraciones del servidor",
+  "status.popover.tab.servers": "Servidores",
+  "status.popover.tab.mcp": "MCP",
+  "status.popover.tab.lsp": "LSP",
+  "status.popover.tab.plugins": "Plugins",
+  "status.popover.action.manageServers": "Administrar servidores",
+
   "session.share.popover.title": "Publicar en web",
   "session.share.popover.title": "Publicar en web",
   "session.share.popover.description.shared":
   "session.share.popover.description.shared":
     "Esta sesión es pública en la web. Es accesible para cualquiera con el enlace.",
     "Esta sesión es pública en la web. Es accesible para cualquiera con el enlace.",

+ 8 - 0
packages/app/src/i18n/fr.ts

@@ -415,6 +415,14 @@ export const dict = {
   "session.header.search.placeholder": "Rechercher {{project}}",
   "session.header.search.placeholder": "Rechercher {{project}}",
   "session.header.searchFiles": "Rechercher des fichiers",
   "session.header.searchFiles": "Rechercher des fichiers",
 
 
+  "status.popover.trigger": "Statut",
+  "status.popover.ariaLabel": "Configurations des serveurs",
+  "status.popover.tab.servers": "Serveurs",
+  "status.popover.tab.mcp": "MCP",
+  "status.popover.tab.lsp": "LSP",
+  "status.popover.tab.plugins": "Plugins",
+  "status.popover.action.manageServers": "Gérer les serveurs",
+
   "session.share.popover.title": "Publier sur le web",
   "session.share.popover.title": "Publier sur le web",
   "session.share.popover.description.shared":
   "session.share.popover.description.shared":
     "Cette session est publique sur le web. Elle est accessible à toute personne disposant du lien.",
     "Cette session est publique sur le web. Elle est accessible à toute personne disposant du lien.",

+ 8 - 0
packages/app/src/i18n/ja.ts

@@ -407,6 +407,14 @@ export const dict = {
   "session.header.search.placeholder": "{{project}}を検索",
   "session.header.search.placeholder": "{{project}}を検索",
   "session.header.searchFiles": "ファイルを検索",
   "session.header.searchFiles": "ファイルを検索",
 
 
+  "status.popover.trigger": "ステータス",
+  "status.popover.ariaLabel": "サーバー設定",
+  "status.popover.tab.servers": "サーバー",
+  "status.popover.tab.mcp": "MCP",
+  "status.popover.tab.lsp": "LSP",
+  "status.popover.tab.plugins": "プラグイン",
+  "status.popover.action.manageServers": "サーバーを管理",
+
   "session.share.popover.title": "ウェブで公開",
   "session.share.popover.title": "ウェブで公開",
   "session.share.popover.description.shared":
   "session.share.popover.description.shared":
     "このセッションはウェブで公開されています。リンクを知っている人なら誰でもアクセスできます。",
     "このセッションはウェブで公開されています。リンクを知っている人なら誰でもアクセスできます。",

+ 8 - 0
packages/app/src/i18n/ko.ts

@@ -410,6 +410,14 @@ export const dict = {
   "session.header.search.placeholder": "{{project}} 검색",
   "session.header.search.placeholder": "{{project}} 검색",
   "session.header.searchFiles": "파일 검색",
   "session.header.searchFiles": "파일 검색",
 
 
+  "status.popover.trigger": "상태",
+  "status.popover.ariaLabel": "서버 구성",
+  "status.popover.tab.servers": "서버",
+  "status.popover.tab.mcp": "MCP",
+  "status.popover.tab.lsp": "LSP",
+  "status.popover.tab.plugins": "플러그인",
+  "status.popover.action.manageServers": "서버 관리",
+
   "session.share.popover.title": "웹에 게시",
   "session.share.popover.title": "웹에 게시",
   "session.share.popover.description.shared": "이 세션은 웹에 공개되었습니다. 링크가 있는 누구나 액세스할 수 있습니다.",
   "session.share.popover.description.shared": "이 세션은 웹에 공개되었습니다. 링크가 있는 누구나 액세스할 수 있습니다.",
   "session.share.popover.description.unshared":
   "session.share.popover.description.unshared":

+ 8 - 0
packages/app/src/i18n/no.ts

@@ -430,6 +430,14 @@ export const dict = {
   "session.header.search.placeholder": "Søk i {{project}}",
   "session.header.search.placeholder": "Søk i {{project}}",
   "session.header.searchFiles": "Søk etter filer",
   "session.header.searchFiles": "Søk etter filer",
 
 
+  "status.popover.trigger": "Status",
+  "status.popover.ariaLabel": "Serverkonfigurasjoner",
+  "status.popover.tab.servers": "Servere",
+  "status.popover.tab.mcp": "MCP",
+  "status.popover.tab.lsp": "LSP",
+  "status.popover.tab.plugins": "Plugins",
+  "status.popover.action.manageServers": "Administrer servere",
+
   "session.share.popover.title": "Publiser på nett",
   "session.share.popover.title": "Publiser på nett",
   "session.share.popover.description.shared":
   "session.share.popover.description.shared":
     "Denne sesjonen er offentlig på nettet. Den er tilgjengelig for alle med lenken.",
     "Denne sesjonen er offentlig på nettet. Den er tilgjengelig for alle med lenken.",

+ 8 - 0
packages/app/src/i18n/pl.ts

@@ -428,6 +428,14 @@ export const dict = {
   "session.header.search.placeholder": "Szukaj {{project}}",
   "session.header.search.placeholder": "Szukaj {{project}}",
   "session.header.searchFiles": "Szukaj plików",
   "session.header.searchFiles": "Szukaj plików",
 
 
+  "status.popover.trigger": "Status",
+  "status.popover.ariaLabel": "Konfiguracje serwerów",
+  "status.popover.tab.servers": "Serwery",
+  "status.popover.tab.mcp": "MCP",
+  "status.popover.tab.lsp": "LSP",
+  "status.popover.tab.plugins": "Wtyczki",
+  "status.popover.action.manageServers": "Zarządzaj serwerami",
+
   "session.share.popover.title": "Opublikuj w sieci",
   "session.share.popover.title": "Opublikuj w sieci",
   "session.share.popover.description.shared":
   "session.share.popover.description.shared":
     "Ta sesja jest publiczna w sieci. Jest dostępna dla każdego, kto posiada link.",
     "Ta sesja jest publiczna w sieci. Jest dostępna dla każdego, kto posiada link.",

+ 8 - 0
packages/app/src/i18n/ru.ts

@@ -430,6 +430,14 @@ export const dict = {
   "session.header.search.placeholder": "Поиск {{project}}",
   "session.header.search.placeholder": "Поиск {{project}}",
   "session.header.searchFiles": "Поиск файлов",
   "session.header.searchFiles": "Поиск файлов",
 
 
+  "status.popover.trigger": "Статус",
+  "status.popover.ariaLabel": "Настройки серверов",
+  "status.popover.tab.servers": "Серверы",
+  "status.popover.tab.mcp": "MCP",
+  "status.popover.tab.lsp": "LSP",
+  "status.popover.tab.plugins": "Плагины",
+  "status.popover.action.manageServers": "Управлять серверами",
+
   "session.share.popover.title": "Опубликовать в интернете",
   "session.share.popover.title": "Опубликовать в интернете",
   "session.share.popover.description.shared":
   "session.share.popover.description.shared":
     "Эта сессия общедоступна. Доступ к ней может получить любой, у кого есть ссылка.",
     "Эта сессия общедоступна. Доступ к ней может получить любой, у кого есть ссылка.",

+ 8 - 0
packages/app/src/i18n/zh.ts

@@ -405,6 +405,14 @@ export const dict = {
   "session.header.search.placeholder": "搜索 {{project}}",
   "session.header.search.placeholder": "搜索 {{project}}",
   "session.header.searchFiles": "搜索文件",
   "session.header.searchFiles": "搜索文件",
 
 
+  "status.popover.trigger": "状态",
+  "status.popover.ariaLabel": "服务器配置",
+  "status.popover.tab.servers": "服务器",
+  "status.popover.tab.mcp": "MCP",
+  "status.popover.tab.lsp": "LSP",
+  "status.popover.tab.plugins": "插件",
+  "status.popover.action.manageServers": "管理服务器",
+
   "session.share.popover.title": "发布到网页",
   "session.share.popover.title": "发布到网页",
   "session.share.popover.description.shared": "此会话已在网页上公开。任何拥有链接的人都可以访问。",
   "session.share.popover.description.shared": "此会话已在网页上公开。任何拥有链接的人都可以访问。",
   "session.share.popover.description.unshared": "在网页上公开分享此会话。任何拥有链接的人都可以访问。",
   "session.share.popover.description.unshared": "在网页上公开分享此会话。任何拥有链接的人都可以访问。",

+ 8 - 0
packages/app/src/i18n/zht.ts

@@ -407,6 +407,14 @@ export const dict = {
   "session.header.search.placeholder": "搜尋 {{project}}",
   "session.header.search.placeholder": "搜尋 {{project}}",
   "session.header.searchFiles": "搜尋檔案",
   "session.header.searchFiles": "搜尋檔案",
 
 
+  "status.popover.trigger": "狀態",
+  "status.popover.ariaLabel": "伺服器設定",
+  "status.popover.tab.servers": "伺服器",
+  "status.popover.tab.mcp": "MCP",
+  "status.popover.tab.lsp": "LSP",
+  "status.popover.tab.plugins": "外掛程式",
+  "status.popover.action.manageServers": "管理伺服器",
+
   "session.share.popover.title": "發佈到網頁",
   "session.share.popover.title": "發佈到網頁",
   "session.share.popover.description.shared": "此工作階段已在網頁上公開。任何擁有連結的人都可以存取。",
   "session.share.popover.description.shared": "此工作階段已在網頁上公開。任何擁有連結的人都可以存取。",
   "session.share.popover.description.unshared": "在網頁上公開分享此工作階段。任何擁有連結的人都可以存取。",
   "session.share.popover.description.unshared": "在網頁上公開分享此工作階段。任何擁有連結的人都可以存取。",