mirror of
https://github.com/mudler/LocalAI.git
synced 2026-11-07 04:53:24 -05:00
The manifest said its text in English only. An add-on can now translate what the host shows to people, and the library list shows it before the add-on is installed. The title and the description use the language maps of ui.title and ui.description, which every host already reads. A new optional field, i18n, translates the connector kinds by language tag. It stays under api 2 and its set of fields is closed: the title and the description of a declared kind, and only where the English kind has them. Tool descriptions, schemas and skills are for the model and stay English. Tags follow the language map rule (at most 16, no English), each string has the limit of its English field, all translated text has at most 12 000 characters, and markup, control characters and direction overrides are refused. A host that does not know the field refuses the manifest, as it refuses any unknown field. The field is part of the manifest, so the package digest and the signature cover it. The catalog generator copies the translated title and description of the manifest into each library entry (ui.titles, ui.descriptions), the host validates them like the manifest values, and a library search matches the English and the translated text. The apps list and the connector kinds return the text of every language and, when the request names a language (lang, else Accept-Language), the resolved text beside the English fields: language, localizedTitle and localizedDescription. No existing field changes. Every add-on on master now has its title and description in Italian, German, Spanish, French, Brazilian Portuguese, Simplified Chinese, Korean and Indonesian, and the chat connectors carry their kind text in the same languages. The packaging tests require that, and that a translation has the fields of the English text it translates. The names of the add-ons that provide a role are matched in their English title only: a translation is often an ordinary word of its language. Assisted-by: Claude:claude-sonnet-5-5 go
76 lines
3.6 KiB
JSON
76 lines
3.6 KiB
JSON
{
|
|
"schemaVersion": 1,
|
|
"id": "telegram",
|
|
"version": "0.1.0",
|
|
"executable": "telegram",
|
|
"os": "linux",
|
|
"arch": "amd64",
|
|
"host": { "min": 1, "max": 1 },
|
|
"api": {"min": 2, "max": 2},
|
|
"protocol": { "min": 1, "max": 1 },
|
|
"dataFormat": { "min": 1, "max": 1 },
|
|
"capabilities": {
|
|
"hostOperations": {
|
|
"optional": ["connector.file.get", "connector.file.put"]
|
|
},
|
|
"connector": {
|
|
"kinds": [
|
|
{
|
|
"id": "telegram",
|
|
"title": "Telegram",
|
|
"description": "Talk to one of your saved agents from a Telegram bot.",
|
|
"senderHint": "A chat ID, a user ID or an @username",
|
|
"delivery": "pull",
|
|
"files": {
|
|
"receive": { "maxBytes": 20971520 },
|
|
"send": { "maxBytes": 52428800 }
|
|
},
|
|
"page": "bots",
|
|
"drafts": true,
|
|
"previewMs": 400
|
|
}
|
|
]
|
|
},
|
|
"ui": {
|
|
"entry": "ui/telegram.js",
|
|
"css": ["ui/telegram.css"],
|
|
"sdk": { "min": 2, "max": 2 },
|
|
"pages": ["bots"],
|
|
"mainPage": "bots",
|
|
"icon": "ui/icon.png",
|
|
"title": {
|
|
"en": "Telegram",
|
|
"it": "Telegram",
|
|
"de": "Telegram",
|
|
"es": "Telegram",
|
|
"fr": "Telegram",
|
|
"pt-BR": "Telegram",
|
|
"zh-CN": "Telegram",
|
|
"ko": "Telegram",
|
|
"id": "Telegram"
|
|
},
|
|
"description": {
|
|
"en": "Bind a Telegram bot to one of your saved agents, so people can talk to it from Telegram.",
|
|
"it": "Collega un bot Telegram a uno dei tuoi agenti salvati, così le persone possono parlarci da Telegram.",
|
|
"de": "Verbinden Sie einen Telegram-Bot mit einem Ihrer gespeicherten Agenten, damit andere über Telegram mit ihm sprechen können.",
|
|
"es": "Vincula un bot de Telegram a uno de tus agentes guardados para que la gente pueda hablar con él desde Telegram.",
|
|
"fr": "Associez un bot Telegram à l'un de vos agents enregistrés pour que les gens puissent lui parler depuis Telegram.",
|
|
"pt-BR": "Vincule um bot do Telegram a um dos seus agentes salvos para que as pessoas possam conversar com ele pelo Telegram.",
|
|
"zh-CN": "将 Telegram 机器人绑定到你保存的某个智能体,让大家可以在 Telegram 中与它对话。",
|
|
"ko": "저장한 에이전트 중 하나에 Telegram 봇을 연결하여 사람들이 Telegram에서 대화할 수 있게 합니다.",
|
|
"id": "Hubungkan bot Telegram ke salah satu agen tersimpan Anda agar orang dapat mengobrol dengannya dari Telegram."
|
|
}
|
|
}
|
|
},
|
|
"i18n": {
|
|
"it": {"kinds": {"telegram": {"title": "Telegram", "description": "Parla con uno dei tuoi agenti salvati da un bot Telegram."}}},
|
|
"de": {"kinds": {"telegram": {"title": "Telegram", "description": "Sprechen Sie über einen Telegram-Bot mit einem Ihrer gespeicherten Agenten."}}},
|
|
"es": {"kinds": {"telegram": {"title": "Telegram", "description": "Habla con uno de tus agentes guardados desde un bot de Telegram."}}},
|
|
"fr": {"kinds": {"telegram": {"title": "Telegram", "description": "Parlez à l'un de vos agents enregistrés depuis un bot Telegram."}}},
|
|
"pt-BR": {"kinds": {"telegram": {"title": "Telegram", "description": "Converse com um dos seus agentes salvos por um bot do Telegram."}}},
|
|
"zh-CN": {"kinds": {"telegram": {"title": "Telegram", "description": "通过 Telegram 机器人与你保存的某个智能体对话。"}}},
|
|
"ko": {"kinds": {"telegram": {"title": "Telegram", "description": "Telegram 봇으로 저장한 에이전트 중 하나와 대화합니다."}}},
|
|
"id": {"kinds": {"telegram": {"title": "Telegram", "description": "Berbicara dengan salah satu agen tersimpan Anda dari bot Telegram."}}}
|
|
}
|
|
}
|