refactor: consolidate English translations (#6640)
This commit is contained in:
1 parent
81aa704537
commit
9e14a07e64
449 files changed
+3515
-3922
No files matched your search
@@ -35,6 +35,7 @@ export const resolveAssistantModelId = (models: AssistantModelOption[], value: s
|
||||
const providerIconBaseUrl = "https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg@latest/icons";
|
||||
|
||||
interface AssistantProviderPreset {
|
||||
label?: string;
|
||||
baseUrl: string;
|
||||
modelDiscoveryPath: string | null;
|
||||
requiresApiKey: boolean;
|
||||
@@ -46,6 +47,7 @@ interface AssistantProviderPreset {
|
||||
|
||||
export const assistantProviderPresets = {
|
||||
homarr: {
|
||||
label: "Homarr",
|
||||
// Browser and server code replace this public fallback with WORKSHOP_API_URL at runtime.
|
||||
baseUrl: "https://homarr.dev/api/ai/v1",
|
||||
modelDiscoveryPath: "/models",
|
||||
@@ -55,6 +57,7 @@ export const assistantProviderPresets = {
|
||||
iconUrl: "https://homarr.dev/img/logo.png",
|
||||
},
|
||||
openrouter: {
|
||||
label: "OpenRouter",
|
||||
baseUrl: "https://openrouter.ai/api/v1",
|
||||
modelDiscoveryPath: "/models",
|
||||
requiresApiKey: true,
|
||||
@@ -63,6 +66,7 @@ export const assistantProviderPresets = {
|
||||
iconUrl: `${providerIconBaseUrl}/openrouter-color.svg`,
|
||||
},
|
||||
openai: {
|
||||
label: "OpenAI",
|
||||
baseUrl: "https://api.openai.com/v1",
|
||||
modelDiscoveryPath: "/models",
|
||||
requiresApiKey: true,
|
||||
@@ -71,6 +75,7 @@ export const assistantProviderPresets = {
|
||||
iconUrl: `${providerIconBaseUrl}/openai.svg`,
|
||||
},
|
||||
anthropic: {
|
||||
label: "Anthropic Claude",
|
||||
baseUrl: "https://api.anthropic.com/v1",
|
||||
modelDiscoveryPath: "/models",
|
||||
requiresApiKey: true,
|
||||
@@ -79,6 +84,7 @@ export const assistantProviderPresets = {
|
||||
iconUrl: `${providerIconBaseUrl}/anthropic.svg`,
|
||||
},
|
||||
"google-gemini": {
|
||||
label: "Google Gemini",
|
||||
baseUrl: "https://generativelanguage.googleapis.com/v1beta/openai",
|
||||
modelDiscoveryPath: "/models",
|
||||
requiresApiKey: true,
|
||||
@@ -87,6 +93,7 @@ export const assistantProviderPresets = {
|
||||
iconUrl: `${providerIconBaseUrl}/gemini-color.svg`,
|
||||
},
|
||||
xai: {
|
||||
label: "xAI",
|
||||
baseUrl: "https://api.x.ai/v1",
|
||||
modelDiscoveryPath: "/models",
|
||||
requiresApiKey: true,
|
||||
@@ -95,6 +102,7 @@ export const assistantProviderPresets = {
|
||||
iconUrl: `${providerIconBaseUrl}/xai.svg`,
|
||||
},
|
||||
groq: {
|
||||
label: "Groq",
|
||||
baseUrl: "https://api.groq.com/openai/v1",
|
||||
modelDiscoveryPath: "/models",
|
||||
requiresApiKey: true,
|
||||
@@ -104,6 +112,7 @@ export const assistantProviderPresets = {
|
||||
darkIconUrl: "https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@latest/dark/groq.png",
|
||||
},
|
||||
mistral: {
|
||||
label: "Mistral AI",
|
||||
baseUrl: "https://api.mistral.ai/v1",
|
||||
modelDiscoveryPath: "/models",
|
||||
requiresApiKey: true,
|
||||
@@ -112,6 +121,7 @@ export const assistantProviderPresets = {
|
||||
iconUrl: `${providerIconBaseUrl}/mistral-color.svg`,
|
||||
},
|
||||
deepseek: {
|
||||
label: "DeepSeek",
|
||||
baseUrl: "https://api.deepseek.com",
|
||||
modelDiscoveryPath: "/models",
|
||||
requiresApiKey: true,
|
||||
@@ -120,6 +130,7 @@ export const assistantProviderPresets = {
|
||||
iconUrl: `${providerIconBaseUrl}/deepseek-color.svg`,
|
||||
},
|
||||
together: {
|
||||
label: "Together AI",
|
||||
baseUrl: "https://api.together.xyz/v1",
|
||||
modelDiscoveryPath: "/models",
|
||||
requiresApiKey: true,
|
||||
@@ -128,6 +139,7 @@ export const assistantProviderPresets = {
|
||||
iconUrl: `${providerIconBaseUrl}/together-color.svg`,
|
||||
},
|
||||
ollama: {
|
||||
label: "Ollama",
|
||||
baseUrl: "http://localhost:11434/v1",
|
||||
modelDiscoveryPath: "/models",
|
||||
requiresApiKey: false,
|
||||
@@ -136,6 +148,7 @@ export const assistantProviderPresets = {
|
||||
iconUrl: `${providerIconBaseUrl}/ollama.svg`,
|
||||
},
|
||||
"lm-studio": {
|
||||
label: "LM Studio",
|
||||
baseUrl: "http://localhost:1234/v1",
|
||||
modelDiscoveryPath: "/models",
|
||||
requiresApiKey: false,
|
||||
@@ -144,6 +157,7 @@ export const assistantProviderPresets = {
|
||||
iconUrl: `${providerIconBaseUrl}/lmstudio.svg`,
|
||||
},
|
||||
custom: {
|
||||
label: undefined,
|
||||
baseUrl: "",
|
||||
modelDiscoveryPath: "/models",
|
||||
requiresApiKey: false,
|
||||
|
||||
@@ -2,6 +2,7 @@ export * from "./board";
|
||||
export * from "./integration";
|
||||
export * from "./section";
|
||||
export * from "./widget";
|
||||
export * from "./widget-name";
|
||||
export * from "./permissions";
|
||||
export * from "./docker";
|
||||
export * from "./kubernetes";
|
||||
@@ -20,3 +21,4 @@ export * from "./docker-service-discovery";
|
||||
export * from "./integration-url-template";
|
||||
export * from "./release-provider";
|
||||
export * from "./assistant";
|
||||
export * from "./invariant-technical-labels";
|
||||
@@ -0,0 +1,14 @@
|
||||
export const invariantTechnicalLabels = {
|
||||
cpu: "CPU",
|
||||
docker: "Docker",
|
||||
gpu: "GPU",
|
||||
ram: "RAM",
|
||||
os: "OS",
|
||||
id: "ID",
|
||||
json: "JSON",
|
||||
jsonSchema: "JSON Schema",
|
||||
jsx: "JSX",
|
||||
url: "URL",
|
||||
} as const;
|
||||
|
||||
export type InvariantTechnicalLabel = (typeof invariantTechnicalLabels)[keyof typeof invariantTechnicalLabels];
|
||||
@@ -1,7 +1,9 @@
|
||||
import { invariantTechnicalLabels } from "./invariant-technical-labels";
|
||||
|
||||
export const kubernetesNodeStates = ["Ready", "NotReady"] as const;
|
||||
export const kubernetesNamespaceStates = ["Active", "Terminating"] as const;
|
||||
export const kubernetesResourceTypes = ["Reserved", "Used"] as const;
|
||||
export const kubernetesCapacityTypes = ["Pods", "CPU", "Memory"] as const;
|
||||
export const kubernetesCapacityTypes = ["Pods", invariantTechnicalLabels.cpu, "Memory"] as const;
|
||||
export const kubernetesLabelResourceTypes = [
|
||||
"configmaps",
|
||||
"pods",
|
||||
@@ -12,7 +14,6 @@ export const kubernetesLabelResourceTypes = [
|
||||
"services",
|
||||
"volumes",
|
||||
] as const;
|
||||
|
||||
export type KubernetesNodeState = (typeof kubernetesNodeStates)[number];
|
||||
export type KubernetesNamespaceState = (typeof kubernetesNamespaceStates)[number];
|
||||
export type KubernetesResourceType = (typeof kubernetesResourceTypes)[number];
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
import type { IntegrationKind } from "./integration";
|
||||
import { getIntegrationName } from "./integration";
|
||||
import type { WidgetKind } from "./widget";
|
||||
|
||||
const widgetIntegrationKinds: Partial<Record<WidgetKind, IntegrationKind>> = {
|
||||
coolify: "coolify",
|
||||
tracearr: "tracearr",
|
||||
paperlessNgx: "paperlessNgx",
|
||||
patchmon: "patchmon",
|
||||
bazarr: "bazarr",
|
||||
uptimeKuma: "uptimeKuma",
|
||||
traefik: "traefik",
|
||||
};
|
||||
|
||||
export const getWidgetIntegrationName = (kind: WidgetKind): string | undefined => {
|
||||
const integrationKind = widgetIntegrationKinds[kind];
|
||||
if (!integrationKind) return undefined;
|
||||
return getIntegrationName(integrationKind);
|
||||
};
|
||||
|
||||
type WidgetNameTranslator = (key: never) => string;
|
||||
|
||||
export const getWidgetName = (kind: WidgetKind, translate: WidgetNameTranslator): string =>
|
||||
getWidgetIntegrationName(kind) ?? translate(`widget.${kind}.name` as never);
|
||||
Reference in new issue
Block a user