mirror of
https://github.com/getpaseo/paseo.git
synced 2026-10-28 04:03:05 +00:00
The French locale was machine-translated word by word, without context:
"Back" became "Dos" (the body part), CI "Checks" became "Chèques" (bank
cheques), "Starting" became "Départ", "Connecting" became "De liaison",
and many interpolation placeholders were glued to neighboring words
("{{label}}copié", "Daemonindisponible").
Review every client-owned French string against its English source and
call site, apply one glossary across the file, and use French
typography (’, …, non-breaking space before high punctuation).
Add regression tests for the reported labels and for placeholders glued
to French words.
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
453 lines
19 KiB
TypeScript
453 lines
19 KiB
TypeScript
const shared = {
|
||
logs: {
|
||
action: "Logs",
|
||
title: "Logs: {{id}}",
|
||
loading: "Loading logs…",
|
||
refresh: "Refresh",
|
||
refreshing: "Refreshing…",
|
||
errorTitle: "Unable to load plugin logs",
|
||
empty: "No plugin output yet",
|
||
},
|
||
} as const;
|
||
|
||
export const pluginSettings = {
|
||
ar: {
|
||
...shared,
|
||
screens: {
|
||
open: "فتح",
|
||
offline: "اتصل بهذا المضيف لفتح إعدادات الإضافة.",
|
||
update: "حدّث هذا المضيف لاستخدام إعدادات الإضافة.",
|
||
unavailable: "شاشة إعدادات الإضافة هذه غير متاحة.",
|
||
backToPlugins: "العودة إلى الإضافات",
|
||
},
|
||
title: "الإضافات",
|
||
trustedTitle: "الإضافات تعليمات برمجية موثوقة",
|
||
trustedDescription:
|
||
"تعمل على هذا المضيف وداخل التطبيق دون عزل. ثبّت فقط التعليمات البرمجية التي تثق بها.",
|
||
globalTitle: "تفعيل الإضافات",
|
||
globalHint: "مفتاح عام لكل الإضافات المضبوطة",
|
||
sourceLabel: "مصدر الإضافة",
|
||
sourcePlaceholder: "مجلد أو رابط Git أو حزمة npm",
|
||
docs: "الوثائق",
|
||
install: "تثبيت الإضافة",
|
||
installing: "جارٍ التثبيت…",
|
||
status: { running: "قيد التشغيل", disabled: "معطّلة", failed: "فشلت" },
|
||
actions: {
|
||
menu: "إجراءات {{id}}",
|
||
reload: "إعادة تحميل",
|
||
reloading: "جارٍ إعادة التحميل…",
|
||
enable: "تفعيل",
|
||
enabling: "جارٍ التفعيل…",
|
||
disable: "تعطيل",
|
||
disabling: "جارٍ التعطيل…",
|
||
remove: "إزالة",
|
||
removing: "جارٍ الإزالة…",
|
||
},
|
||
feedback: {
|
||
installed: "تم تثبيت {{id}}",
|
||
reload: "تمت إعادة تحميل {{id}}",
|
||
enable: "تم تفعيل {{id}}",
|
||
disable: "تم تعطيل {{id}}",
|
||
remove: "تمت إزالة {{id}}",
|
||
kept: "تم الإبقاء على {{id}}",
|
||
globalEnabled: "تم تفعيل الإضافات",
|
||
globalDisabled: "تم تعطيل الإضافات",
|
||
},
|
||
removeConfirmTitle: "إزالة {{id}}؟",
|
||
removeConfirmMessage: "يؤدي هذا إلى إزالة الإعداد فقط. لن يُحذف مجلد المصدر.",
|
||
states: {
|
||
offlineTitle: "مضيف الإضافات غير متصل",
|
||
offlineDescription: "أعد الاتصال بهذا المضيف لإدارة إضافاته.",
|
||
updateTitle: "حدّث هذا المضيف لإدارة الإضافات",
|
||
sourceUpdateTitle: "حدّث هذا المضيف لتثبيت الإضافات",
|
||
loading: "جارٍ تحميل الإضافات…",
|
||
errorTitle: "تعذّر تحميل الإضافات",
|
||
retry: "إعادة المحاولة",
|
||
empty: "لا توجد إضافات مضبوطة",
|
||
},
|
||
},
|
||
es: {
|
||
...shared,
|
||
screens: {
|
||
open: "Abrir",
|
||
offline: "Conéctate a este host para abrir los ajustes del plugin.",
|
||
update: "Actualiza este host para usar los ajustes del plugin.",
|
||
unavailable: "Esta pantalla de ajustes del plugin no está disponible.",
|
||
backToPlugins: "Volver a plugins",
|
||
},
|
||
title: "Plugins",
|
||
trustedTitle: "Los plugins son código de confianza",
|
||
trustedDescription:
|
||
"Se ejecutan en este host y dentro de la app sin aislamiento. Instala solo código de confianza.",
|
||
globalTitle: "Activar plugins",
|
||
globalHint: "Interruptor global para todos los plugins configurados",
|
||
sourceLabel: "Fuente del plugin",
|
||
sourcePlaceholder: "Directorio, URL de Git o paquete npm",
|
||
docs: "Documentación",
|
||
install: "Instalar plugin",
|
||
installing: "Instalando…",
|
||
status: { running: "en ejecución", disabled: "desactivado", failed: "fallido" },
|
||
actions: {
|
||
menu: "Acciones para {{id}}",
|
||
reload: "Recargar",
|
||
reloading: "Recargando…",
|
||
enable: "Activar",
|
||
enabling: "Activando…",
|
||
disable: "Desactivar",
|
||
disabling: "Desactivando…",
|
||
remove: "Eliminar",
|
||
removing: "Eliminando…",
|
||
},
|
||
feedback: {
|
||
installed: "{{id}} instalado",
|
||
reload: "{{id}} recargado",
|
||
enable: "{{id}} activado",
|
||
disable: "{{id}} desactivado",
|
||
remove: "{{id}} eliminado",
|
||
kept: "Se conservó {{id}}",
|
||
globalEnabled: "Plugins activados",
|
||
globalDisabled: "Plugins desactivados",
|
||
},
|
||
removeConfirmTitle: "¿Eliminar {{id}}?",
|
||
removeConfirmMessage: "Esto elimina la configuración. El directorio de origen no se borra.",
|
||
states: {
|
||
offlineTitle: "El host de plugins está sin conexión",
|
||
offlineDescription: "Vuelve a conectar este host para gestionar sus plugins.",
|
||
updateTitle: "Actualiza este host para gestionar plugins",
|
||
sourceUpdateTitle: "Actualiza este host para instalar plugins",
|
||
loading: "Cargando plugins…",
|
||
errorTitle: "No se pudieron cargar los plugins",
|
||
retry: "Reintentar",
|
||
empty: "No hay plugins configurados",
|
||
},
|
||
},
|
||
fr: {
|
||
...shared,
|
||
screens: {
|
||
open: "Ouvrir",
|
||
offline: "Connectez-vous à cet hôte pour ouvrir les paramètres du plugin.",
|
||
update: "Mettez à jour cet hôte pour utiliser les paramètres du plugin.",
|
||
unavailable: "Cet écran de paramètres du plugin est indisponible.",
|
||
backToPlugins: "Retour aux plugins",
|
||
},
|
||
title: "Plugins",
|
||
trustedTitle: "Les plugins sont du code de confiance",
|
||
trustedDescription:
|
||
"Ils s’exécutent sur cet hôte et dans l’app sans isolation. N’installez que du code fiable.",
|
||
globalTitle: "Activer les plugins",
|
||
globalHint: "Interrupteur global pour tous les plugins configurés",
|
||
sourceLabel: "Source du plugin",
|
||
sourcePlaceholder: "Dossier, URL Git ou paquet npm",
|
||
docs: "Documentation",
|
||
install: "Installer le plugin",
|
||
installing: "Installation…",
|
||
status: { running: "actif", disabled: "désactivé", failed: "échec" },
|
||
actions: {
|
||
menu: "Actions pour {{id}}",
|
||
reload: "Recharger",
|
||
reloading: "Rechargement…",
|
||
enable: "Activer",
|
||
enabling: "Activation…",
|
||
disable: "Désactiver",
|
||
disabling: "Désactivation…",
|
||
remove: "Supprimer",
|
||
removing: "Suppression…",
|
||
},
|
||
feedback: {
|
||
installed: "{{id}} installé",
|
||
reload: "{{id}} rechargé",
|
||
enable: "{{id}} activé",
|
||
disable: "{{id}} désactivé",
|
||
remove: "{{id}} supprimé",
|
||
kept: "{{id}} conservé",
|
||
globalEnabled: "Plugins activés",
|
||
globalDisabled: "Plugins désactivés",
|
||
},
|
||
removeConfirmTitle: "Supprimer {{id}} ?",
|
||
removeConfirmMessage: "La configuration sera supprimée. Le dossier source ne sera pas effacé.",
|
||
states: {
|
||
offlineTitle: "L’hôte des plugins est hors ligne",
|
||
offlineDescription: "Reconnectez cet hôte pour gérer ses plugins.",
|
||
updateTitle: "Mettez cet hôte à jour pour gérer les plugins",
|
||
sourceUpdateTitle: "Mettez cet hôte à jour pour installer des plugins",
|
||
loading: "Chargement des plugins…",
|
||
errorTitle: "Impossible de charger les plugins",
|
||
retry: "Réessayer",
|
||
empty: "Aucun plugin configuré",
|
||
},
|
||
},
|
||
ja: {
|
||
...shared,
|
||
screens: {
|
||
open: "開く",
|
||
offline: "このホストに接続してプラグイン設定を開いてください。",
|
||
update: "プラグイン設定を使用するには、このホストを更新してください。",
|
||
unavailable: "このプラグイン設定画面は利用できません。",
|
||
backToPlugins: "プラグインに戻る",
|
||
},
|
||
title: "プラグイン",
|
||
trustedTitle: "プラグインは信頼済みコードです",
|
||
trustedDescription:
|
||
"ホストとアプリ内で分離されずに実行されます。信頼できるコードのみインストールしてください。",
|
||
globalTitle: "プラグインを有効化",
|
||
globalHint: "設定済みプラグインすべての共通スイッチ",
|
||
sourceLabel: "プラグインソース",
|
||
sourcePlaceholder: "ディレクトリ、Git URL、npm パッケージ",
|
||
docs: "ドキュメント",
|
||
install: "プラグインをインストール",
|
||
installing: "インストール中…",
|
||
status: { running: "実行中", disabled: "無効", failed: "失敗" },
|
||
actions: {
|
||
menu: "{{id}} のアクション",
|
||
reload: "再読み込み",
|
||
reloading: "再読み込み中…",
|
||
enable: "有効化",
|
||
enabling: "有効化中…",
|
||
disable: "無効化",
|
||
disabling: "無効化中…",
|
||
remove: "削除",
|
||
removing: "削除中…",
|
||
},
|
||
feedback: {
|
||
installed: "{{id}} をインストールしました",
|
||
reload: "{{id}} を再読み込みしました",
|
||
enable: "{{id}} を有効にしました",
|
||
disable: "{{id}} を無効にしました",
|
||
remove: "{{id}} を削除しました",
|
||
kept: "{{id}} を保持しました",
|
||
globalEnabled: "プラグインを有効にしました",
|
||
globalDisabled: "プラグインを無効にしました",
|
||
},
|
||
removeConfirmTitle: "{{id}} を削除しますか?",
|
||
removeConfirmMessage: "設定のみを削除します。ソースディレクトリは削除されません。",
|
||
states: {
|
||
offlineTitle: "プラグインホストはオフラインです",
|
||
offlineDescription: "プラグインを管理するにはホストに再接続してください。",
|
||
updateTitle: "プラグインを管理するにはホストを更新してください",
|
||
sourceUpdateTitle: "プラグインをインストールするにはこのホストを更新してください",
|
||
loading: "プラグインを読み込み中…",
|
||
errorTitle: "プラグインを読み込めません",
|
||
retry: "再試行",
|
||
empty: "設定済みプラグインはありません",
|
||
},
|
||
},
|
||
ko: {
|
||
...shared,
|
||
screens: {
|
||
open: "열기",
|
||
offline: "플러그인 설정을 열려면 이 호스트에 연결하세요.",
|
||
update: "플러그인 설정을 사용하려면 이 호스트를 업데이트하세요.",
|
||
unavailable: "이 플러그인 설정 화면을 사용할 수 없습니다.",
|
||
backToPlugins: "플러그인으로 돌아가기",
|
||
},
|
||
title: "플러그인",
|
||
trustedTitle: "플러그인은 신뢰하는 코드입니다",
|
||
trustedDescription: "호스트와 앱 안에서 격리 없이 실행됩니다. 신뢰하는 코드만 설치하세요.",
|
||
globalTitle: "플러그인 활성화",
|
||
globalHint: "설정된 모든 플러그인의 전역 스위치",
|
||
sourceLabel: "플러그인 소스",
|
||
sourcePlaceholder: "디렉터리, Git URL 또는 npm 패키지",
|
||
docs: "문서",
|
||
install: "플러그인 설치",
|
||
installing: "설치 중…",
|
||
status: { running: "실행 중", disabled: "비활성화", failed: "실패" },
|
||
actions: {
|
||
menu: "{{id}} 작업",
|
||
reload: "다시 로드",
|
||
reloading: "다시 로드 중…",
|
||
enable: "활성화",
|
||
enabling: "활성화 중…",
|
||
disable: "비활성화",
|
||
disabling: "비활성화 중…",
|
||
remove: "제거",
|
||
removing: "제거 중…",
|
||
},
|
||
feedback: {
|
||
installed: "{{id}} 설치됨",
|
||
reload: "{{id}} 다시 로드됨",
|
||
enable: "{{id}} 활성화됨",
|
||
disable: "{{id}} 비활성화됨",
|
||
remove: "{{id}} 제거됨",
|
||
kept: "{{id}} 유지됨",
|
||
globalEnabled: "플러그인 활성화됨",
|
||
globalDisabled: "플러그인 비활성화됨",
|
||
},
|
||
removeConfirmTitle: "{{id}}을(를) 제거할까요?",
|
||
removeConfirmMessage: "설정만 제거합니다. 소스 디렉터리는 삭제되지 않습니다.",
|
||
states: {
|
||
offlineTitle: "플러그인 호스트가 오프라인입니다",
|
||
offlineDescription: "플러그인을 관리하려면 호스트에 다시 연결하세요.",
|
||
updateTitle: "플러그인을 관리하려면 호스트를 업데이트하세요",
|
||
sourceUpdateTitle: "플러그인을 설치하려면 이 호스트를 업데이트하세요",
|
||
loading: "플러그인 로드 중…",
|
||
errorTitle: "플러그인을 로드할 수 없습니다",
|
||
retry: "다시 시도",
|
||
empty: "설정된 플러그인이 없습니다",
|
||
},
|
||
},
|
||
"pt-BR": {
|
||
...shared,
|
||
screens: {
|
||
open: "Abrir",
|
||
offline: "Conecte-se a este host para abrir as configurações do plugin.",
|
||
update: "Atualize este host para usar as configurações do plugin.",
|
||
unavailable: "Esta tela de configurações do plugin está indisponível.",
|
||
backToPlugins: "Voltar para plugins",
|
||
},
|
||
title: "Plugins",
|
||
trustedTitle: "Plugins são código confiável",
|
||
trustedDescription:
|
||
"Eles rodam neste host e dentro do app sem isolamento. Instale apenas código confiável.",
|
||
globalTitle: "Ativar plugins",
|
||
globalHint: "Controle global para todos os plugins configurados",
|
||
sourceLabel: "Fonte do plugin",
|
||
sourcePlaceholder: "Diretório, URL Git ou pacote npm",
|
||
docs: "Documentação",
|
||
install: "Instalar plugin",
|
||
installing: "Instalando…",
|
||
status: { running: "em execução", disabled: "desativado", failed: "falhou" },
|
||
actions: {
|
||
menu: "Ações para {{id}}",
|
||
reload: "Recarregar",
|
||
reloading: "Recarregando…",
|
||
enable: "Ativar",
|
||
enabling: "Ativando…",
|
||
disable: "Desativar",
|
||
disabling: "Desativando…",
|
||
remove: "Remover",
|
||
removing: "Removendo…",
|
||
},
|
||
feedback: {
|
||
installed: "{{id}} instalado",
|
||
reload: "{{id}} recarregado",
|
||
enable: "{{id}} ativado",
|
||
disable: "{{id}} desativado",
|
||
remove: "{{id}} removido",
|
||
kept: "{{id}} mantido",
|
||
globalEnabled: "Plugins ativados",
|
||
globalDisabled: "Plugins desativados",
|
||
},
|
||
removeConfirmTitle: "Remover {{id}}?",
|
||
removeConfirmMessage: "Isso remove a configuração. O diretório de origem não será excluído.",
|
||
states: {
|
||
offlineTitle: "O host de plugins está offline",
|
||
offlineDescription: "Reconecte este host para gerenciar seus plugins.",
|
||
updateTitle: "Atualize este host para gerenciar plugins",
|
||
sourceUpdateTitle: "Atualize este host para instalar plugins",
|
||
loading: "Carregando plugins…",
|
||
errorTitle: "Não foi possível carregar os plugins",
|
||
retry: "Tentar novamente",
|
||
empty: "Nenhum plugin configurado",
|
||
},
|
||
},
|
||
ru: {
|
||
...shared,
|
||
screens: {
|
||
open: "Открыть",
|
||
offline: "Подключитесь к этому хосту, чтобы открыть настройки плагина.",
|
||
update: "Обновите этот хост, чтобы использовать настройки плагина.",
|
||
unavailable: "Этот экран настроек плагина недоступен.",
|
||
backToPlugins: "Вернуться к плагинам",
|
||
},
|
||
title: "Плагины",
|
||
trustedTitle: "Плагины — доверенный код",
|
||
trustedDescription:
|
||
"Они выполняются на хосте и в приложении без изоляции. Устанавливайте только доверенный код.",
|
||
globalTitle: "Включить плагины",
|
||
globalHint: "Общий переключатель для всех настроенных плагинов",
|
||
sourceLabel: "Источник плагина",
|
||
sourcePlaceholder: "Каталог, URL Git или пакет npm",
|
||
docs: "Документация",
|
||
install: "Установить плагин",
|
||
installing: "Установка…",
|
||
status: { running: "работает", disabled: "отключён", failed: "ошибка" },
|
||
actions: {
|
||
menu: "Действия для {{id}}",
|
||
reload: "Перезагрузить",
|
||
reloading: "Перезагрузка…",
|
||
enable: "Включить",
|
||
enabling: "Включение…",
|
||
disable: "Отключить",
|
||
disabling: "Отключение…",
|
||
remove: "Удалить",
|
||
removing: "Удаление…",
|
||
},
|
||
feedback: {
|
||
installed: "{{id}} установлен",
|
||
reload: "{{id}} перезагружен",
|
||
enable: "{{id}} включён",
|
||
disable: "{{id}} отключён",
|
||
remove: "{{id}} удалён",
|
||
kept: "{{id}} сохранён",
|
||
globalEnabled: "Плагины включены",
|
||
globalDisabled: "Плагины отключены",
|
||
},
|
||
removeConfirmTitle: "Удалить {{id}}?",
|
||
removeConfirmMessage: "Конфигурация будет удалена. Исходный каталог останется на месте.",
|
||
states: {
|
||
offlineTitle: "Хост плагинов не в сети",
|
||
offlineDescription: "Подключите хост снова, чтобы управлять плагинами.",
|
||
updateTitle: "Обновите хост для управления плагинами",
|
||
sourceUpdateTitle: "Обновите этот хост для установки плагинов",
|
||
loading: "Загрузка плагинов…",
|
||
errorTitle: "Не удалось загрузить плагины",
|
||
retry: "Повторить",
|
||
empty: "Нет настроенных плагинов",
|
||
},
|
||
},
|
||
"zh-CN": {
|
||
...shared,
|
||
screens: {
|
||
open: "打开",
|
||
offline: "连接到此主机以打开插件设置。",
|
||
update: "更新此主机以使用插件设置。",
|
||
unavailable: "此插件设置页面不可用。",
|
||
backToPlugins: "返回插件",
|
||
},
|
||
title: "插件",
|
||
trustedTitle: "插件是受信任的代码",
|
||
trustedDescription: "它们会在此主机和应用内运行,且没有隔离。请仅安装你信任的代码。",
|
||
globalTitle: "启用插件",
|
||
globalHint: "所有已配置插件的全局开关",
|
||
sourceLabel: "插件来源",
|
||
sourcePlaceholder: "目录、Git URL 或 npm 包",
|
||
docs: "文档",
|
||
install: "安装插件",
|
||
installing: "正在安装…",
|
||
status: { running: "运行中", disabled: "已禁用", failed: "失败" },
|
||
actions: {
|
||
menu: "{{id}} 的操作",
|
||
reload: "重新加载",
|
||
reloading: "正在重新加载…",
|
||
enable: "启用",
|
||
enabling: "正在启用…",
|
||
disable: "禁用",
|
||
disabling: "正在禁用…",
|
||
remove: "移除",
|
||
removing: "正在移除…",
|
||
},
|
||
feedback: {
|
||
installed: "已安装 {{id}}",
|
||
reload: "已重新加载 {{id}}",
|
||
enable: "已启用 {{id}}",
|
||
disable: "已禁用 {{id}}",
|
||
remove: "已移除 {{id}}",
|
||
kept: "已保留 {{id}}",
|
||
globalEnabled: "插件已启用",
|
||
globalDisabled: "插件已禁用",
|
||
},
|
||
removeConfirmTitle: "移除 {{id}}?",
|
||
removeConfirmMessage: "这会移除配置,但不会删除源目录。",
|
||
states: {
|
||
offlineTitle: "插件主机离线",
|
||
offlineDescription: "重新连接此主机以管理其插件。",
|
||
updateTitle: "更新此主机以管理插件",
|
||
sourceUpdateTitle: "更新此主机以安装插件",
|
||
loading: "正在加载插件…",
|
||
errorTitle: "无法加载插件",
|
||
retry: "重试",
|
||
empty: "没有已配置的插件",
|
||
},
|
||
},
|
||
} as const;
|