- )
-}
-
-export default App
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/9.5/frontend/src/index.css b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/9.5/frontend/src/index.css
deleted file mode 100644
index 6d1b6557354..00000000000
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/9.5/frontend/src/index.css
+++ /dev/null
@@ -1,55 +0,0 @@
-:root {
- font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;
- line-height: 1.5;
- font-weight: 400;
-
- color-scheme: light dark;
-
- font-synthesis: none;
- text-rendering: optimizeLegibility;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-}
-
-/* Reset and base styles */
-*,
-*::before,
-*::after {
- box-sizing: border-box;
-}
-
-html {
- margin: 0;
- padding: 0;
- width: 100%;
- height: 100%;
- overflow-x: hidden;
-}
-
-body {
- margin: 0;
- padding: 0;
- width: 100%;
- min-height: 100vh;
- overflow-x: hidden;
-}
-
-/* Remove default Vite styles that conflict with our design */
-h1 {
- margin: 0;
-}
-
-button {
- font-family: inherit;
- cursor: pointer;
-}
-
-@media (prefers-reduced-motion: reduce) {
- *,
- *::before,
- *::after {
- animation-duration: 0.01ms !important;
- animation-iteration-count: 1 !important;
- transition-duration: 0.01ms !important;
- }
-}
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/9.5/frontend/src/main.tsx b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/9.5/frontend/src/main.tsx
deleted file mode 100644
index bef5202a32c..00000000000
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/9.5/frontend/src/main.tsx
+++ /dev/null
@@ -1,10 +0,0 @@
-import { StrictMode } from 'react'
-import { createRoot } from 'react-dom/client'
-import './index.css'
-import App from './App.tsx'
-
-createRoot(document.getElementById('root')!).render(
-
-
- ,
-)
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/9.5/frontend/src/vite-env.d.ts b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/9.5/frontend/src/vite-env.d.ts
deleted file mode 100644
index 11f02fe2a00..00000000000
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/9.5/frontend/src/vite-env.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-///
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/9.5/frontend/tsconfig.app.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/9.5/frontend/tsconfig.app.json
deleted file mode 100644
index c9ccbd4c594..00000000000
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/9.5/frontend/tsconfig.app.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "compilerOptions": {
- "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
- "target": "ES2020",
- "useDefineForClassFields": true,
- "lib": ["ES2020", "DOM", "DOM.Iterable"],
- "module": "ESNext",
- "skipLibCheck": true,
-
- /* Bundler mode */
- "moduleResolution": "bundler",
- "allowImportingTsExtensions": true,
- "verbatimModuleSyntax": true,
- "moduleDetection": "force",
- "noEmit": true,
- "jsx": "react-jsx",
-
- /* Linting */
- "strict": true,
- "noUnusedLocals": true,
- "noUnusedParameters": true,
- "erasableSyntaxOnly": true,
- "noFallthroughCasesInSwitch": true,
- "noUncheckedSideEffectImports": true
- },
- "include": ["src"]
-}
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/9.5/frontend/tsconfig.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/9.5/frontend/tsconfig.json
deleted file mode 100644
index 1ffef600d95..00000000000
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/9.5/frontend/tsconfig.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "files": [],
- "references": [
- { "path": "./tsconfig.app.json" },
- { "path": "./tsconfig.node.json" }
- ]
-}
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/9.5/frontend/tsconfig.node.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/9.5/frontend/tsconfig.node.json
deleted file mode 100644
index 9728af2d81a..00000000000
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/9.5/frontend/tsconfig.node.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "compilerOptions": {
- "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
- "target": "ES2022",
- "lib": ["ES2023"],
- "module": "ESNext",
- "skipLibCheck": true,
-
- /* Bundler mode */
- "moduleResolution": "bundler",
- "allowImportingTsExtensions": true,
- "verbatimModuleSyntax": true,
- "moduleDetection": "force",
- "noEmit": true,
-
- /* Linting */
- "strict": true,
- "noUnusedLocals": true,
- "noUnusedParameters": true,
- "erasableSyntaxOnly": true,
- "noFallthroughCasesInSwitch": true,
- "noUncheckedSideEffectImports": true
- },
- "include": ["vite.config.ts"]
-}
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/9.5/frontend/vite.config.ts b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/9.5/frontend/vite.config.ts
deleted file mode 100644
index eca9419bb1d..00000000000
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/9.5/frontend/vite.config.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { defineConfig } from 'vite'
-import react from '@vitejs/plugin-react'
-
-// https://vite.dev/config/
-export default defineConfig({
- plugins: [react()],
- server: {
- proxy: {
- // Proxy API calls to the backend service and strip 'api' prefix
- '/api': {
- target: process.env.services__apiservice__https__0 || process.env.services__apiservice__http__0,
- changeOrigin: true
- }
- }
- }
-})
From a2b37b1ac876d82fa1944035ee51e0d2113fde9f Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sat, 18 Oct 2025 00:29:35 +0000
Subject: [PATCH 5/9] Address template feedback: remove README, simplify
template.json, add host configs and apphost.run.json
Co-authored-by: eerhardt <8291187+eerhardt@users.noreply.github.com>
---
.../.template.config/dotnetcli.host.json | 5 +
.../.template.config/ide.host.json | 8 +
.../localize/templatestrings.cs.json | 7 +-
.../localize/templatestrings.de.json | 7 +-
.../localize/templatestrings.en.json | 7 +-
.../localize/templatestrings.es.json | 7 +-
.../localize/templatestrings.fr.json | 7 +-
.../localize/templatestrings.it.json | 7 +-
.../localize/templatestrings.ja.json | 7 +-
.../localize/templatestrings.ko.json | 7 +-
.../localize/templatestrings.pl.json | 7 +-
.../localize/templatestrings.pt-BR.json | 7 +-
.../localize/templatestrings.ru.json | 7 +-
.../localize/templatestrings.tr.json | 7 +-
.../localize/templatestrings.zh-Hans.json | 7 +-
.../localize/templatestrings.zh-Hant.json | 7 +-
.../.template.config/template.json | 33 +---
.../aspire-py-starter/13.0/apphost.run.json | 31 ++++
.../templates/aspire-py-starter/README.md | 164 ------------------
19 files changed, 60 insertions(+), 279 deletions(-)
create mode 100644 src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/dotnetcli.host.json
create mode 100644 src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/ide.host.json
create mode 100644 src/Aspire.ProjectTemplates/templates/aspire-py-starter/13.0/apphost.run.json
delete mode 100644 src/Aspire.ProjectTemplates/templates/aspire-py-starter/README.md
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/dotnetcli.host.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/dotnetcli.host.json
new file mode 100644
index 00000000000..57189dcf833
--- /dev/null
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/dotnetcli.host.json
@@ -0,0 +1,5 @@
+{
+ "$schema": "http://json.schemastore.org/dotnetcli.host",
+ "symbolInfo": {},
+ "usageExamples": []
+}
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/ide.host.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/ide.host.json
new file mode 100644
index 00000000000..309baff8d59
--- /dev/null
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/ide.host.json
@@ -0,0 +1,8 @@
+{
+ "$schema": "https://json.schemastore.org/ide.host",
+ "unsupportedHosts": [
+ {
+ "id": "vs"
+ }
+ ]
+}
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.cs.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.cs.json
index 4e804c8f107..d05171c9aa3 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.cs.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.cs.json
@@ -1,10 +1,5 @@
{
"author": "Microsoft",
"name": "Prázdná aplikace Aspire",
- "description": "Šablona projektu pro vytvoření prázdné aplikace Aspire.",
- "symbols/Framework/description": "Cílová architektura pro projekt",
- "symbols/Framework/choices/net8.0/description": "Cílový net8.0",
- "symbols/Framework/choices/net9.0/description": "Cílit na net9.0",
- "symbols/Framework/choices/net10.0/description": "Cíl net10.0",
- "symbols/skipRestore/description": "Pokud se tato možnost zadá, přeskočí automatické obnovení projektu při vytvoření."
+ "description": "Šablona projektu pro vytvoření prázdné aplikace Aspire."
}
\ No newline at end of file
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.de.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.de.json
index ac19a951ee3..e2f67bcbaae 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.de.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.de.json
@@ -1,10 +1,5 @@
{
"author": "Microsoft",
"name": "Leere Aspire-App",
- "description": "Eine Projektvorlage zum Erstellen einer leeren Aspire-App.",
- "symbols/Framework/description": "Das Zielframework für das Projekt.",
- "symbols/Framework/choices/net8.0/description": "Ziel net8.0",
- "symbols/Framework/choices/net9.0/description": "Ziel-Net9.0",
- "symbols/Framework/choices/net10.0/description": "Ziel.-NET10.0",
- "symbols/skipRestore/description": "Wenn angegeben, wird die automatische Wiederherstellung des Projekts beim Erstellen übersprungen."
+ "description": "Eine Projektvorlage zum Erstellen einer leeren Aspire-App."
}
\ No newline at end of file
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.en.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.en.json
index 02d25c0f0d6..db481eb57a9 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.en.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.en.json
@@ -1,10 +1,5 @@
{
"author": "Microsoft",
"name": "Aspire Python Starter App",
- "description": "A project template for creating an Aspire app with a Python backend API service and a JavaScript frontend using Vite and React.",
- "symbols/Framework/description": "The target framework for the project.",
- "symbols/Framework/choices/net8.0/description": "Target net8.0",
- "symbols/Framework/choices/net9.0/description": "Target net9.0",
- "symbols/Framework/choices/net10.0/description": "Target net10.0",
- "symbols/skipRestore/description": "If specified, skips the automatic restore of the project on create."
+ "description": "A project template for creating an Aspire app with a Python backend API service and a JavaScript frontend using Vite and React."
}
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.es.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.es.json
index de37f381801..a6b5815f18c 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.es.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.es.json
@@ -1,10 +1,5 @@
{
"author": "Microsoft",
"name": "Aplicación vacía de Aspire",
- "description": "Una plantilla de proyecto para crear una aplicación vacía de Aspire.",
- "symbols/Framework/description": "Marco de destino del proyecto.",
- "symbols/Framework/choices/net8.0/description": "NET8.0 de destino",
- "symbols/Framework/choices/net9.0/description": "Net9.0 de destino",
- "symbols/Framework/choices/net10.0/description": "Destino net10.0",
- "symbols/skipRestore/description": "Si se especifica, se omite la restauración automática del proyecto durante la creación."
+ "description": "Una plantilla de proyecto para crear una aplicación vacía de Aspire."
}
\ No newline at end of file
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.fr.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.fr.json
index e96ce83f9e4..b3e5c2d7fa7 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.fr.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.fr.json
@@ -1,10 +1,5 @@
{
"author": "Microsoft",
"name": "Application vide Aspire",
- "description": "Modèle de projet pour créer une application Aspire vide.",
- "symbols/Framework/description": "Framework cible du projet.",
- "symbols/Framework/choices/net8.0/description": "Cible net8.0",
- "symbols/Framework/choices/net9.0/description": "Cible net9.0",
- "symbols/Framework/choices/net10.0/description": "Net10.0 cible",
- "symbols/skipRestore/description": "S’il est spécifié, ignore la restauration automatique du projet lors de la création."
+ "description": "Modèle de projet pour créer une application Aspire vide."
}
\ No newline at end of file
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.it.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.it.json
index 1f6e440dc02..3995b480d7f 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.it.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.it.json
@@ -1,10 +1,5 @@
{
"author": "Microsoft",
"name": "App Aspire vuota",
- "description": "Modello di progetto per la creazione di un'app Aspire vuota.",
- "symbols/Framework/description": "Il framework di destinazione per il progetto.",
- "symbols/Framework/choices/net8.0/description": "Destinazione net8.0",
- "symbols/Framework/choices/net9.0/description": "Net9.0 di destinazione",
- "symbols/Framework/choices/net10.0/description": "Destinazione net10.0",
- "symbols/skipRestore/description": "Se specificato, ignora il ripristino automatico del progetto durante la creazione."
+ "description": "Modello di progetto per la creazione di un'app Aspire vuota."
}
\ No newline at end of file
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ja.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ja.json
index eed9c95e1eb..72fb91e8d40 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ja.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ja.json
@@ -1,10 +1,5 @@
{
"author": "Microsoft",
"name": "Aspire の空のアプリ",
- "description": "空の Aspire アプリを作成するためのプロジェクト テンプレート。",
- "symbols/Framework/description": "プロジェクトのターゲット フレームワークです。",
- "symbols/Framework/choices/net8.0/description": "ターゲット net8.0",
- "symbols/Framework/choices/net9.0/description": "ターゲット net9.0",
- "symbols/Framework/choices/net10.0/description": "ターゲット net10.0",
- "symbols/skipRestore/description": "指定した場合、作成時にプロジェクトの自動復元がスキップされます。"
+ "description": "空の Aspire アプリを作成するためのプロジェクト テンプレート。"
}
\ No newline at end of file
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ko.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ko.json
index 3d96b270161..aefad517cd2 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ko.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ko.json
@@ -1,10 +1,5 @@
{
"author": "Microsoft",
"name": "Aspire 빈 앱",
- "description": "빈 Aspire 앱을 만들기 위한 프로젝트 템플릿입니다.",
- "symbols/Framework/description": "프로젝트에 대한 대상 프레임워크입니다.",
- "symbols/Framework/choices/net8.0/description": "대상 net8.0",
- "symbols/Framework/choices/net9.0/description": "Target net9.0",
- "symbols/Framework/choices/net10.0/description": "대상 net10.0",
- "symbols/skipRestore/description": "지정된 경우, 프로젝트 생성 시 자동 복원을 건너뜁니다."
+ "description": "빈 Aspire 앱을 만들기 위한 프로젝트 템플릿입니다."
}
\ No newline at end of file
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.pl.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.pl.json
index 9a051756172..82df4317a67 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.pl.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.pl.json
@@ -1,10 +1,5 @@
{
"author": "Microsoft",
"name": "Pusta aplikacja Aspire",
- "description": "Szablon projektu służący do tworzenia pustej aplikacji Aspire.",
- "symbols/Framework/description": "Platforma docelowa dla tego projektu.",
- "symbols/Framework/choices/net8.0/description": "Docelowa platforma net8.0",
- "symbols/Framework/choices/net9.0/description": "Docelowa platforma net9.0",
- "symbols/Framework/choices/net10.0/description": "Docelowa platforma net10.0",
- "symbols/skipRestore/description": "Jeśli ta opcja jest określona, pomija automatyczne przywracanie projektu podczas tworzenia."
+ "description": "Szablon projektu służący do tworzenia pustej aplikacji Aspire."
}
\ No newline at end of file
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.pt-BR.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.pt-BR.json
index f0c062fc325..b16eb2a4584 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.pt-BR.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.pt-BR.json
@@ -1,10 +1,5 @@
{
"author": "Microsoft",
"name": "Aplicativo Aspire Vazio",
- "description": "Um modelo de projeto para criar um aplicativo Aspire vazio.",
- "symbols/Framework/description": "A estrutura de destino do projeto.",
- "symbols/Framework/choices/net8.0/description": "Destino net8.0",
- "symbols/Framework/choices/net9.0/description": "Target net9.0",
- "symbols/Framework/choices/net10.0/description": "Net10.0 de destino",
- "symbols/skipRestore/description": "Se especificado, ignora a restauração automática do projeto sendo criado."
+ "description": "Um modelo de projeto para criar um aplicativo Aspire vazio."
}
\ No newline at end of file
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ru.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ru.json
index 8efff732056..54a6d553f09 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ru.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ru.json
@@ -1,10 +1,5 @@
{
"author": "Майкрософт",
"name": "Пустое приложение Aspire",
- "description": "Шаблон проекта для создания пустого приложения Aspire.",
- "symbols/Framework/description": "Целевая платформа для проекта.",
- "symbols/Framework/choices/net8.0/description": "Целевая среда net8.0",
- "symbols/Framework/choices/net9.0/description": "Целевая среда net9.0",
- "symbols/Framework/choices/net10.0/description": "Целевая платформа .NET 10.0",
- "symbols/skipRestore/description": "Если установлено, автоматическое восстановление проекта при создании пропускается."
+ "description": "Шаблон проекта для создания пустого приложения Aspire."
}
\ No newline at end of file
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.tr.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.tr.json
index 5bf760d8270..80cb1265aa6 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.tr.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.tr.json
@@ -1,10 +1,5 @@
{
"author": "Microsoft",
"name": "Aspire Boş Uygulama",
- "description": "Boş bir Aspire uygulaması oluşturmak için proje şablonu.",
- "symbols/Framework/description": "Projenin hedef çerçevesi.",
- "symbols/Framework/choices/net8.0/description": "Hedef net8.0",
- "symbols/Framework/choices/net9.0/description": "Hedef net9.0",
- "symbols/Framework/choices/net10.0/description": "Hedef net10.0",
- "symbols/skipRestore/description": "Belirtilirse, oluşturma sırasında projenin otomatik geri yüklenmesini atlar."
+ "description": "Boş bir Aspire uygulaması oluşturmak için proje şablonu."
}
\ No newline at end of file
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.zh-Hans.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.zh-Hans.json
index 486b3228008..132a33867bd 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.zh-Hans.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.zh-Hans.json
@@ -1,10 +1,5 @@
{
"author": "Microsoft",
"name": "Aspire 空应用",
- "description": "用于创建空 Aspire 应用的项目模板。",
- "symbols/Framework/description": "项目的目标框架。",
- "symbols/Framework/choices/net8.0/description": "目标 net8.0",
- "symbols/Framework/choices/net9.0/description": "目标 net9.0",
- "symbols/Framework/choices/net10.0/description": "目标 net10.0",
- "symbols/skipRestore/description": "如果指定,则在创建时跳过项目的自动还原。"
+ "description": "用于创建空 Aspire 应用的项目模板。"
}
\ No newline at end of file
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.zh-Hant.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.zh-Hant.json
index b977049da9a..7e2608ac4d1 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.zh-Hant.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.zh-Hant.json
@@ -1,10 +1,5 @@
{
"author": "Microsoft",
"name": "Aspire 空白應用程式",
- "description": "用於建立空白 Aspire 應用程式的專案範本。",
- "symbols/Framework/description": "專案的目標 Framework。",
- "symbols/Framework/choices/net8.0/description": "目標 net8.0",
- "symbols/Framework/choices/net9.0/description": "目標 net9.0",
- "symbols/Framework/choices/net10.0/description": "目標 net10.0",
- "symbols/skipRestore/description": "若指定,會在建立時跳過專案的自動還原。"
+ "description": "用於建立空白 Aspire 應用程式的專案範本。"
}
\ No newline at end of file
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/template.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/template.json
index 46fd7938b51..c3bc1a0e3ae 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/template.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/template.json
@@ -20,12 +20,10 @@
"preferNameDirectory": true,
"tags": {
"language": "C#",
- "type": "solution",
- "editorTreatAs": "solution",
- "aspire-13.0-tfms": "net8.0;net9.0;net10.0"
+ "type": "project"
},
"precedence": "9000",
- "identity": "Aspire.PyStarter.CSharp.8.0",
+ "identity": "Aspire.PyStarter.CSharp",
"thirdPartyNotices": "https://aka.ms/dotnet/aspire/third-party-notices",
"groupIdentity": "Aspire.PyStarter",
"guids": [
@@ -39,36 +37,9 @@
}
],
"symbols": {
- "Framework": {
- "type": "parameter",
- "description": "The target framework for the project.",
- "datatype": "choice",
- "choices": [
- {
- "choice": "net8.0",
- "description": "Target net8.0"
- },
- {
- "choice": "net9.0",
- "description": "Target net9.0"
- },
- {
- "choice": "net10.0",
- "description": "Target net10.0"
- }
- ],
- "replaces": "net8.0",
- "defaultValue": "net9.0"
- },
"hostIdentifier": {
"type": "bind",
"binding": "HostIdentifier"
- },
- "skipRestore": {
- "type": "parameter",
- "datatype": "bool",
- "description": "If specified, skips the automatic restore of the project on create.",
- "defaultValue": "false"
}
},
"primaryOutputs": [
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/13.0/apphost.run.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/13.0/apphost.run.json
new file mode 100644
index 00000000000..44807cd246a
--- /dev/null
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/13.0/apphost.run.json
@@ -0,0 +1,31 @@
+{
+ "$schema": "https://json.schemastore.org/launchsettings.json",
+ "profiles": {
+ //#if (HasHttpsProfile)
+ "https": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": true,
+ "applicationUrl": "https://localhost:17000;http://localhost:15000",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development",
+ "DOTNET_ENVIRONMENT": "Development",
+ "ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "https://localhost:21000",
+ "ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL": "https://localhost:22000"
+ }
+ },
+ //#endif
+ "http": {
+ "commandName": "Project",
+ "dotnetRunMessages": true,
+ "launchBrowser": true,
+ "applicationUrl": "http://localhost:15000",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development",
+ "DOTNET_ENVIRONMENT": "Development",
+ "ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:19000",
+ "ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:20000"
+ }
+ }
+ }
+}
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/README.md b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/README.md
deleted file mode 100644
index 4520c530593..00000000000
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/README.md
+++ /dev/null
@@ -1,164 +0,0 @@
-# Aspire Python Starter Template
-
-This template creates an Aspire application with a Python backend API service and a JavaScript/React frontend using Vite.
-
-## What's Included
-
-This template includes:
-
-- **Python API Service** (`api_service/`): A FastAPI-based backend service with Redis caching support and OpenTelemetry instrumentation
-- **React Frontend** (`frontend/`): A Vite + React + TypeScript frontend application
-- **AppHost** (`apphost.cs`): Single-file Aspire app host that orchestrates both resources
-
-## Prerequisites
-
-- [.NET 8 SDK](https://dotnet.microsoft.com/download/dotnet/8.0) or later
-- [Python 3.13](https://www.python.org/downloads/) or later
-- [Node.js 18](https://nodejs.org/) or later
-- [uv](https://docs.astral.sh/uv/) - Python package installer (recommended)
-- [Docker Desktop](https://www.docker.com/products/docker-desktop/) (for Redis container)
-
-## Getting Started
-
-1. Create a new project using this template:
-
- ```bash
- dotnet new aspire-py-starter -n MyApp
- cd MyApp
- ```
-
-2. Run the application:
-
- ```bash
- dotnet run --project apphost.cs
- ```
-
- Or use the Aspire Dashboard:
-
- ```bash
- dotnet run apphost.cs
- ```
-
-3. The Aspire Dashboard will open in your browser. From there you can:
- - View the running services
- - Access logs and traces
- - Monitor resource health
-
-## Project Structure
-
-```
-.
-├── api_service/ # Python FastAPI backend
-│ ├── .python-version # Python version specification
-│ ├── app.py # Main FastAPI application
-│ ├── pyproject.toml # Python project configuration
-│ ├── telemetry.py # OpenTelemetry configuration
-│ └── uv.lock # Python dependency lock file
-├── frontend/ # React + Vite frontend
-│ ├── public/ # Static assets
-│ ├── src/ # React source code
-│ ├── index.html # HTML entry point
-│ ├── package.json # Node.js dependencies
-│ └── vite.config.ts # Vite configuration
-└── apphost.cs # Aspire app host
-```
-
-## Python API Service
-
-The Python service is a FastAPI application that:
-
-- Exposes a `/api/weatherforecast` endpoint that returns weather data
-- Uses Redis for caching responses
-- Instruments telemetry using OpenTelemetry
-- Serves static files from the frontend build output
-
-### Running Locally
-
-```bash
-cd api_service
-uv sync
-uv run python app.py
-```
-
-The API will be available at `http://localhost:8111` by default.
-
-## Frontend
-
-The frontend is a Vite-powered React application with TypeScript that:
-
-- Displays weather forecast data from the API
-- Uses modern React patterns and hooks
-- Includes hot module replacement for fast development
-
-### Running Locally
-
-```bash
-cd frontend
-npm install
-npm run dev
-```
-
-The frontend development server will be available at `http://localhost:5173` by default.
-
-## Configuration
-
-### Environment Variables
-
-The API service supports the following environment variables:
-
-- `PORT`: HTTP port for the API service (default: 8111)
-- `HOST`: Host address to bind to (default: 127.0.0.1)
-- `DEBUG`: Enable debug mode and hot reload (default: False)
-- `CACHE_URI`: Redis connection string (automatically configured by Aspire)
-
-### Aspire Configuration
-
-The `apphost.cs` file configures:
-
-- Redis cache resource
-- Python API service with uv environment
-- Vite frontend application
-- Service references and dependencies
-
-## Customization
-
-### Adding Python Dependencies
-
-1. Edit `api_service/pyproject.toml`
-2. Run `uv sync` to update the lock file
-
-### Adding JavaScript Dependencies
-
-1. Edit `frontend/package.json`
-2. Run `npm install` to update the lock file
-
-### Adding New Services
-
-Edit `apphost.cs` and use the Aspire hosting APIs to add new resources:
-
-```csharp
-var postgres = builder.AddPostgres("postgres");
-var db = postgres.AddDatabase("mydb");
-
-var newService = builder.AddPythonScript("newservice", "./new_service", "main.py")
- .WithReference(db);
-```
-
-## Deployment
-
-This template includes a Dockerfile configuration for the Python service. You can publish the application using:
-
-```bash
-dotnet publish
-```
-
-The Aspire tooling will generate deployment manifests for your target environment.
-
-## Learn More
-
-- [.NET Aspire Documentation](https://learn.microsoft.com/dotnet/aspire/)
-- [Aspire Python Hosting](https://learn.microsoft.com/dotnet/aspire/get-started/build-aspire-apps-with-python)
-- [Aspire Node.js Hosting](https://learn.microsoft.com/dotnet/aspire/get-started/build-aspire-apps-with-nodejs)
-- [FastAPI Documentation](https://fastapi.tiangolo.com/)
-- [Vite Documentation](https://vite.dev/)
-- [React Documentation](https://react.dev/)
From 64c05aeb9a3f3480a70aea1d97f9b60c91b546e9 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sat, 18 Oct 2025 00:34:45 +0000
Subject: [PATCH 6/9] Add Dockerfile for publishing support
Co-authored-by: eerhardt <8291187+eerhardt@users.noreply.github.com>
---
.../aspire-py-starter/13.0/Dockerfile | 57 +++++++++++++++++++
1 file changed, 57 insertions(+)
create mode 100644 src/Aspire.ProjectTemplates/templates/aspire-py-starter/13.0/Dockerfile
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/13.0/Dockerfile b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/13.0/Dockerfile
new file mode 100644
index 00000000000..16d551380ac
--- /dev/null
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/13.0/Dockerfile
@@ -0,0 +1,57 @@
+# Stage 1: Build the Vite app
+FROM node:22-slim AS frontend-stage
+
+# Set the working directory inside the container
+COPY frontend ./
+
+WORKDIR /frontend
+RUN npm install
+RUN npm run build
+
+# Stage 2: Build the Python application with UV
+FROM ghcr.io/astral-sh/uv:python3.13-bookworm-slim AS builder
+
+# Enable bytecode compilation and copy mode for the virtual environment
+ENV UV_COMPILE_BYTECODE=1
+ENV UV_LINK_MODE=copy
+
+WORKDIR /app
+
+# Install dependencies first for better layer caching
+# Uses BuildKit cache mounts to speed up repeated builds
+RUN --mount=type=cache,target=/root/.cache/uv --mount=type=bind,source=./api_service/uv.lock,target=uv.lock --mount=type=bind,source=./api_service/pyproject.toml,target=pyproject.toml \
+ uv sync --locked --no-install-project --no-dev
+
+# Copy the rest of the application source and install the project
+COPY ./api_service /app
+RUN --mount=type=cache,target=/root/.cache/uv \
+ uv sync --locked --no-dev
+
+# Stage 3: Create the final runtime image
+FROM python:3.13-slim-bookworm AS app
+
+COPY --from=frontend-stage /dist /app/static
+
+# ------------------------------
+# 🚀 Runtime stage
+# ------------------------------
+# Create non-root user for security
+RUN groupadd --system --gid 999 appuser && useradd --system --gid 999 --uid 999 --create-home appuser
+
+# Copy the application and virtual environment from builder
+COPY --from=builder --chown=appuser:appuser /app /app
+
+# Add virtual environment to PATH and set VIRTUAL_ENV
+ENV PATH=/app/.venv/bin:${PATH}
+ENV VIRTUAL_ENV=/app/.venv
+ENV PYTHONDONTWRITEBYTECODE=1
+ENV PYTHONUNBUFFERED=1
+
+# Use the non-root user to run the application
+USER appuser
+
+# Set working directory
+WORKDIR /app
+
+# Run the application
+ENTRYPOINT ["fastapi", "run", "app.py", "--host", "0.0.0.0", "--port", "8000"]
From 24c434c9f30ac3a92bea9e56744ab729618bfce2 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sat, 18 Oct 2025 00:38:17 +0000
Subject: [PATCH 7/9] Add aspire-py-starter to CLI template factory
Co-authored-by: eerhardt <8291187+eerhardt@users.noreply.github.com>
---
src/Aspire.Cli/Resources/TemplatingStrings.Designer.cs | 6 ++++++
src/Aspire.Cli/Resources/TemplatingStrings.resx | 3 +++
src/Aspire.Cli/Resources/xlf/TemplatingStrings.cs.xlf | 5 +++++
src/Aspire.Cli/Resources/xlf/TemplatingStrings.de.xlf | 5 +++++
src/Aspire.Cli/Resources/xlf/TemplatingStrings.es.xlf | 5 +++++
src/Aspire.Cli/Resources/xlf/TemplatingStrings.fr.xlf | 5 +++++
src/Aspire.Cli/Resources/xlf/TemplatingStrings.it.xlf | 5 +++++
src/Aspire.Cli/Resources/xlf/TemplatingStrings.ja.xlf | 5 +++++
src/Aspire.Cli/Resources/xlf/TemplatingStrings.ko.xlf | 5 +++++
src/Aspire.Cli/Resources/xlf/TemplatingStrings.pl.xlf | 5 +++++
src/Aspire.Cli/Resources/xlf/TemplatingStrings.pt-BR.xlf | 5 +++++
src/Aspire.Cli/Resources/xlf/TemplatingStrings.ru.xlf | 5 +++++
src/Aspire.Cli/Resources/xlf/TemplatingStrings.tr.xlf | 5 +++++
.../Resources/xlf/TemplatingStrings.zh-Hans.xlf | 5 +++++
.../Resources/xlf/TemplatingStrings.zh-Hant.xlf | 5 +++++
src/Aspire.Cli/Templating/DotNetTemplateFactory.cs | 8 ++++++++
16 files changed, 82 insertions(+)
diff --git a/src/Aspire.Cli/Resources/TemplatingStrings.Designer.cs b/src/Aspire.Cli/Resources/TemplatingStrings.Designer.cs
index 93f73e3918f..f3cc624e582 100644
--- a/src/Aspire.Cli/Resources/TemplatingStrings.Designer.cs
+++ b/src/Aspire.Cli/Resources/TemplatingStrings.Designer.cs
@@ -75,6 +75,12 @@ public static string AspireServiceDefaults_Description {
}
}
+ public static string AspirePyStarter_Description {
+ get {
+ return ResourceManager.GetString("AspirePyStarter_Description", resourceCulture);
+ }
+ }
+
public static string AspireAppHostSingleFile_Description {
get {
return ResourceManager.GetString("AspireAppHostSingleFile_Description", resourceCulture);
diff --git a/src/Aspire.Cli/Resources/TemplatingStrings.resx b/src/Aspire.Cli/Resources/TemplatingStrings.resx
index 413ea4727e1..eb855064e60 100644
--- a/src/Aspire.Cli/Resources/TemplatingStrings.resx
+++ b/src/Aspire.Cli/Resources/TemplatingStrings.resx
@@ -132,6 +132,9 @@
Service defaults
+
+ Python and JavaScript starter (experimental)
+
Single-file AppHost (experimental)
diff --git a/src/Aspire.Cli/Resources/xlf/TemplatingStrings.cs.xlf b/src/Aspire.Cli/Resources/xlf/TemplatingStrings.cs.xlf
index 8834c2b606e..8f87a864c75 100644
--- a/src/Aspire.Cli/Resources/xlf/TemplatingStrings.cs.xlf
+++ b/src/Aspire.Cli/Resources/xlf/TemplatingStrings.cs.xlf
@@ -22,6 +22,11 @@
NUnit
+
+ Python and JavaScript starter (experimental)
+ Python and JavaScript starter (experimental)
+
+ Service defaultsVýchozí hodnoty služby
diff --git a/src/Aspire.Cli/Resources/xlf/TemplatingStrings.de.xlf b/src/Aspire.Cli/Resources/xlf/TemplatingStrings.de.xlf
index fd49432bc4b..64e8b5be84a 100644
--- a/src/Aspire.Cli/Resources/xlf/TemplatingStrings.de.xlf
+++ b/src/Aspire.Cli/Resources/xlf/TemplatingStrings.de.xlf
@@ -22,6 +22,11 @@
NUnit
+
+ Python and JavaScript starter (experimental)
+ Python and JavaScript starter (experimental)
+
+ Service defaultsDienststandardwerte
diff --git a/src/Aspire.Cli/Resources/xlf/TemplatingStrings.es.xlf b/src/Aspire.Cli/Resources/xlf/TemplatingStrings.es.xlf
index 3f5487b467e..4c4d9b71df6 100644
--- a/src/Aspire.Cli/Resources/xlf/TemplatingStrings.es.xlf
+++ b/src/Aspire.Cli/Resources/xlf/TemplatingStrings.es.xlf
@@ -22,6 +22,11 @@
NUnit
+
+ Python and JavaScript starter (experimental)
+ Python and JavaScript starter (experimental)
+
+ Service defaultsValores predeterminados del servicio
diff --git a/src/Aspire.Cli/Resources/xlf/TemplatingStrings.fr.xlf b/src/Aspire.Cli/Resources/xlf/TemplatingStrings.fr.xlf
index cb4f788c9f3..d98ce801c52 100644
--- a/src/Aspire.Cli/Resources/xlf/TemplatingStrings.fr.xlf
+++ b/src/Aspire.Cli/Resources/xlf/TemplatingStrings.fr.xlf
@@ -22,6 +22,11 @@
NUnit
+
+ Python and JavaScript starter (experimental)
+ Python and JavaScript starter (experimental)
+
+ Service defaultsParamètres par défaut du service
diff --git a/src/Aspire.Cli/Resources/xlf/TemplatingStrings.it.xlf b/src/Aspire.Cli/Resources/xlf/TemplatingStrings.it.xlf
index f16d685b8bf..06c603fcdff 100644
--- a/src/Aspire.Cli/Resources/xlf/TemplatingStrings.it.xlf
+++ b/src/Aspire.Cli/Resources/xlf/TemplatingStrings.it.xlf
@@ -22,6 +22,11 @@
NUnit
+
+ Python and JavaScript starter (experimental)
+ Python and JavaScript starter (experimental)
+
+ Service defaultsImpostazioni predefinite del servizio
diff --git a/src/Aspire.Cli/Resources/xlf/TemplatingStrings.ja.xlf b/src/Aspire.Cli/Resources/xlf/TemplatingStrings.ja.xlf
index edc03a782b7..2123b27fddc 100644
--- a/src/Aspire.Cli/Resources/xlf/TemplatingStrings.ja.xlf
+++ b/src/Aspire.Cli/Resources/xlf/TemplatingStrings.ja.xlf
@@ -22,6 +22,11 @@
NUnit
+
+ Python and JavaScript starter (experimental)
+ Python and JavaScript starter (experimental)
+
+ Service defaultsサービスの既定値
diff --git a/src/Aspire.Cli/Resources/xlf/TemplatingStrings.ko.xlf b/src/Aspire.Cli/Resources/xlf/TemplatingStrings.ko.xlf
index 0f06299e275..0ad02c31fd4 100644
--- a/src/Aspire.Cli/Resources/xlf/TemplatingStrings.ko.xlf
+++ b/src/Aspire.Cli/Resources/xlf/TemplatingStrings.ko.xlf
@@ -22,6 +22,11 @@
NUnit
+
+ Python and JavaScript starter (experimental)
+ Python and JavaScript starter (experimental)
+
+ Service defaults서비스 기본값
diff --git a/src/Aspire.Cli/Resources/xlf/TemplatingStrings.pl.xlf b/src/Aspire.Cli/Resources/xlf/TemplatingStrings.pl.xlf
index 37c53574420..2611e02430e 100644
--- a/src/Aspire.Cli/Resources/xlf/TemplatingStrings.pl.xlf
+++ b/src/Aspire.Cli/Resources/xlf/TemplatingStrings.pl.xlf
@@ -22,6 +22,11 @@
NUnit
+
+ Python and JavaScript starter (experimental)
+ Python and JavaScript starter (experimental)
+
+ Service defaultsWartości domyślne usługi
diff --git a/src/Aspire.Cli/Resources/xlf/TemplatingStrings.pt-BR.xlf b/src/Aspire.Cli/Resources/xlf/TemplatingStrings.pt-BR.xlf
index c9331aefa22..68ae5f59fc6 100644
--- a/src/Aspire.Cli/Resources/xlf/TemplatingStrings.pt-BR.xlf
+++ b/src/Aspire.Cli/Resources/xlf/TemplatingStrings.pt-BR.xlf
@@ -22,6 +22,11 @@
NUnit
+
+ Python and JavaScript starter (experimental)
+ Python and JavaScript starter (experimental)
+
+ Service defaultsPadrões de serviço
diff --git a/src/Aspire.Cli/Resources/xlf/TemplatingStrings.ru.xlf b/src/Aspire.Cli/Resources/xlf/TemplatingStrings.ru.xlf
index 36dd545ca8a..03c58816220 100644
--- a/src/Aspire.Cli/Resources/xlf/TemplatingStrings.ru.xlf
+++ b/src/Aspire.Cli/Resources/xlf/TemplatingStrings.ru.xlf
@@ -22,6 +22,11 @@
NUnit
+
+ Python and JavaScript starter (experimental)
+ Python and JavaScript starter (experimental)
+
+ Service defaultsЗначения по умолчанию для службы
diff --git a/src/Aspire.Cli/Resources/xlf/TemplatingStrings.tr.xlf b/src/Aspire.Cli/Resources/xlf/TemplatingStrings.tr.xlf
index 705b244693c..68df992956e 100644
--- a/src/Aspire.Cli/Resources/xlf/TemplatingStrings.tr.xlf
+++ b/src/Aspire.Cli/Resources/xlf/TemplatingStrings.tr.xlf
@@ -22,6 +22,11 @@
NUnit
+
+ Python and JavaScript starter (experimental)
+ Python and JavaScript starter (experimental)
+
+ Service defaultsHizmet varsayılanları
diff --git a/src/Aspire.Cli/Resources/xlf/TemplatingStrings.zh-Hans.xlf b/src/Aspire.Cli/Resources/xlf/TemplatingStrings.zh-Hans.xlf
index 56ea5c81782..da5b953103d 100644
--- a/src/Aspire.Cli/Resources/xlf/TemplatingStrings.zh-Hans.xlf
+++ b/src/Aspire.Cli/Resources/xlf/TemplatingStrings.zh-Hans.xlf
@@ -22,6 +22,11 @@
NUnit
+
+ Python and JavaScript starter (experimental)
+ Python and JavaScript starter (experimental)
+
+ Service defaults服务默认值
diff --git a/src/Aspire.Cli/Resources/xlf/TemplatingStrings.zh-Hant.xlf b/src/Aspire.Cli/Resources/xlf/TemplatingStrings.zh-Hant.xlf
index 1fc9bdac4b4..8cc219324dd 100644
--- a/src/Aspire.Cli/Resources/xlf/TemplatingStrings.zh-Hant.xlf
+++ b/src/Aspire.Cli/Resources/xlf/TemplatingStrings.zh-Hant.xlf
@@ -22,6 +22,11 @@
NUnit
+
+ Python and JavaScript starter (experimental)
+ Python and JavaScript starter (experimental)
+
+ Service defaults服務預設值
diff --git a/src/Aspire.Cli/Templating/DotNetTemplateFactory.cs b/src/Aspire.Cli/Templating/DotNetTemplateFactory.cs
index bdf9b385838..e6701dcf32e 100644
--- a/src/Aspire.Cli/Templating/DotNetTemplateFactory.cs
+++ b/src/Aspire.Cli/Templating/DotNetTemplateFactory.cs
@@ -58,6 +58,14 @@ private IEnumerable GetTemplatesCore(bool showAllTemplates)
_ => { },
ApplySingleFileTemplate
);
+
+ yield return new CallbackTemplate(
+ "aspire-py-starter",
+ TemplatingStrings.AspirePyStarter_Description,
+ projectName => $"./{projectName}",
+ _ => { },
+ ApplySingleFileTemplate
+ );
}
if (showAllTemplates)
From b12b243df509df5a1bedc5651d700b4da77d6f13 Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sat, 18 Oct 2025 07:14:10 +0000
Subject: [PATCH 8/9] Add port selection and HTTPS/HTTP configuration logic to
template
Co-authored-by: davidfowl <95136+davidfowl@users.noreply.github.com>
---
.../.template.config/dotnetcli.host.json | 7 +-
.../localize/templatestrings.cs.json | 9 +-
.../localize/templatestrings.de.json | 9 +-
.../localize/templatestrings.en.json | 11 +-
.../localize/templatestrings.es.json | 9 +-
.../localize/templatestrings.fr.json | 9 +-
.../localize/templatestrings.it.json | 9 +-
.../localize/templatestrings.ja.json | 9 +-
.../localize/templatestrings.ko.json | 9 +-
.../localize/templatestrings.pl.json | 9 +-
.../localize/templatestrings.pt-BR.json | 9 +-
.../localize/templatestrings.ru.json | 9 +-
.../localize/templatestrings.tr.json | 9 +-
.../localize/templatestrings.zh-Hans.json | 9 +-
.../localize/templatestrings.zh-Hant.json | 9 +-
.../.template.config/template.json | 142 ++++++++++++++++++
16 files changed, 261 insertions(+), 16 deletions(-)
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/dotnetcli.host.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/dotnetcli.host.json
index 57189dcf833..bedad30e149 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/dotnetcli.host.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/dotnetcli.host.json
@@ -1,5 +1,10 @@
{
"$schema": "http://json.schemastore.org/dotnetcli.host",
- "symbolInfo": {},
+ "symbolInfo": {
+ "NoHttps": {
+ "longName": "no-https",
+ "shortName": ""
+ }
+ },
"usageExamples": []
}
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.cs.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.cs.json
index d05171c9aa3..696160f519c 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.cs.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.cs.json
@@ -1,5 +1,12 @@
{
"author": "Microsoft",
"name": "Prázdná aplikace Aspire",
- "description": "Šablona projektu pro vytvoření prázdné aplikace Aspire."
+ "description": "Šablona projektu pro vytvoření prázdné aplikace Aspire.",
+ "symbols/appHostHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostOtlpHttpPort/description": "Port number to use for the OTLP HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostResourceHttpPort/description": "Port number to use for the resource service HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostHttpsPort/description": "Port number to use for the HTTPS endpoint in launchSettings.json of the AppHost project. This option is only applicable when the parameter no-https is not used.",
+ "symbols/appHostOtlpHttpsPort/description": "Port number to use for the OTLP HTTPS endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostResourceHttpsPort/description": "Port number to use for the resource service HTTPS endpoint in launchSettings.json of the AppHost project.",
+ "symbols/NoHttps/description": "Whether to turn off HTTPS."
}
\ No newline at end of file
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.de.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.de.json
index e2f67bcbaae..8e6a5d7536d 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.de.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.de.json
@@ -1,5 +1,12 @@
{
"author": "Microsoft",
"name": "Leere Aspire-App",
- "description": "Eine Projektvorlage zum Erstellen einer leeren Aspire-App."
+ "description": "Eine Projektvorlage zum Erstellen einer leeren Aspire-App.",
+ "symbols/appHostHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostOtlpHttpPort/description": "Port number to use for the OTLP HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostResourceHttpPort/description": "Port number to use for the resource service HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostHttpsPort/description": "Port number to use for the HTTPS endpoint in launchSettings.json of the AppHost project. This option is only applicable when the parameter no-https is not used.",
+ "symbols/appHostOtlpHttpsPort/description": "Port number to use for the OTLP HTTPS endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostResourceHttpsPort/description": "Port number to use for the resource service HTTPS endpoint in launchSettings.json of the AppHost project.",
+ "symbols/NoHttps/description": "Whether to turn off HTTPS."
}
\ No newline at end of file
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.en.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.en.json
index db481eb57a9..7eb9f2c3c92 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.en.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.en.json
@@ -1,5 +1,12 @@
{
"author": "Microsoft",
"name": "Aspire Python Starter App",
- "description": "A project template for creating an Aspire app with a Python backend API service and a JavaScript frontend using Vite and React."
-}
+ "description": "A project template for creating an Aspire app with a Python backend API service and a JavaScript frontend using Vite and React.",
+ "symbols/appHostHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostOtlpHttpPort/description": "Port number to use for the OTLP HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostResourceHttpPort/description": "Port number to use for the resource service HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostHttpsPort/description": "Port number to use for the HTTPS endpoint in launchSettings.json of the AppHost project. This option is only applicable when the parameter no-https is not used.",
+ "symbols/appHostOtlpHttpsPort/description": "Port number to use for the OTLP HTTPS endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostResourceHttpsPort/description": "Port number to use for the resource service HTTPS endpoint in launchSettings.json of the AppHost project.",
+ "symbols/NoHttps/description": "Whether to turn off HTTPS."
+}
\ No newline at end of file
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.es.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.es.json
index a6b5815f18c..ebb3f480384 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.es.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.es.json
@@ -1,5 +1,12 @@
{
"author": "Microsoft",
"name": "Aplicación vacía de Aspire",
- "description": "Una plantilla de proyecto para crear una aplicación vacía de Aspire."
+ "description": "Una plantilla de proyecto para crear una aplicación vacía de Aspire.",
+ "symbols/appHostHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostOtlpHttpPort/description": "Port number to use for the OTLP HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostResourceHttpPort/description": "Port number to use for the resource service HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostHttpsPort/description": "Port number to use for the HTTPS endpoint in launchSettings.json of the AppHost project. This option is only applicable when the parameter no-https is not used.",
+ "symbols/appHostOtlpHttpsPort/description": "Port number to use for the OTLP HTTPS endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostResourceHttpsPort/description": "Port number to use for the resource service HTTPS endpoint in launchSettings.json of the AppHost project.",
+ "symbols/NoHttps/description": "Whether to turn off HTTPS."
}
\ No newline at end of file
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.fr.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.fr.json
index b3e5c2d7fa7..a94e48f1de9 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.fr.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.fr.json
@@ -1,5 +1,12 @@
{
"author": "Microsoft",
"name": "Application vide Aspire",
- "description": "Modèle de projet pour créer une application Aspire vide."
+ "description": "Modèle de projet pour créer une application Aspire vide.",
+ "symbols/appHostHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostOtlpHttpPort/description": "Port number to use for the OTLP HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostResourceHttpPort/description": "Port number to use for the resource service HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostHttpsPort/description": "Port number to use for the HTTPS endpoint in launchSettings.json of the AppHost project. This option is only applicable when the parameter no-https is not used.",
+ "symbols/appHostOtlpHttpsPort/description": "Port number to use for the OTLP HTTPS endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostResourceHttpsPort/description": "Port number to use for the resource service HTTPS endpoint in launchSettings.json of the AppHost project.",
+ "symbols/NoHttps/description": "Whether to turn off HTTPS."
}
\ No newline at end of file
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.it.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.it.json
index 3995b480d7f..e790664a7ca 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.it.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.it.json
@@ -1,5 +1,12 @@
{
"author": "Microsoft",
"name": "App Aspire vuota",
- "description": "Modello di progetto per la creazione di un'app Aspire vuota."
+ "description": "Modello di progetto per la creazione di un'app Aspire vuota.",
+ "symbols/appHostHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostOtlpHttpPort/description": "Port number to use for the OTLP HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostResourceHttpPort/description": "Port number to use for the resource service HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostHttpsPort/description": "Port number to use for the HTTPS endpoint in launchSettings.json of the AppHost project. This option is only applicable when the parameter no-https is not used.",
+ "symbols/appHostOtlpHttpsPort/description": "Port number to use for the OTLP HTTPS endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostResourceHttpsPort/description": "Port number to use for the resource service HTTPS endpoint in launchSettings.json of the AppHost project.",
+ "symbols/NoHttps/description": "Whether to turn off HTTPS."
}
\ No newline at end of file
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ja.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ja.json
index 72fb91e8d40..540a0c17e8a 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ja.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ja.json
@@ -1,5 +1,12 @@
{
"author": "Microsoft",
"name": "Aspire の空のアプリ",
- "description": "空の Aspire アプリを作成するためのプロジェクト テンプレート。"
+ "description": "空の Aspire アプリを作成するためのプロジェクト テンプレート。",
+ "symbols/appHostHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostOtlpHttpPort/description": "Port number to use for the OTLP HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostResourceHttpPort/description": "Port number to use for the resource service HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostHttpsPort/description": "Port number to use for the HTTPS endpoint in launchSettings.json of the AppHost project. This option is only applicable when the parameter no-https is not used.",
+ "symbols/appHostOtlpHttpsPort/description": "Port number to use for the OTLP HTTPS endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostResourceHttpsPort/description": "Port number to use for the resource service HTTPS endpoint in launchSettings.json of the AppHost project.",
+ "symbols/NoHttps/description": "Whether to turn off HTTPS."
}
\ No newline at end of file
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ko.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ko.json
index aefad517cd2..5046f732e97 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ko.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ko.json
@@ -1,5 +1,12 @@
{
"author": "Microsoft",
"name": "Aspire 빈 앱",
- "description": "빈 Aspire 앱을 만들기 위한 프로젝트 템플릿입니다."
+ "description": "빈 Aspire 앱을 만들기 위한 프로젝트 템플릿입니다.",
+ "symbols/appHostHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostOtlpHttpPort/description": "Port number to use for the OTLP HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostResourceHttpPort/description": "Port number to use for the resource service HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostHttpsPort/description": "Port number to use for the HTTPS endpoint in launchSettings.json of the AppHost project. This option is only applicable when the parameter no-https is not used.",
+ "symbols/appHostOtlpHttpsPort/description": "Port number to use for the OTLP HTTPS endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostResourceHttpsPort/description": "Port number to use for the resource service HTTPS endpoint in launchSettings.json of the AppHost project.",
+ "symbols/NoHttps/description": "Whether to turn off HTTPS."
}
\ No newline at end of file
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.pl.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.pl.json
index 82df4317a67..bfddb24b1e8 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.pl.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.pl.json
@@ -1,5 +1,12 @@
{
"author": "Microsoft",
"name": "Pusta aplikacja Aspire",
- "description": "Szablon projektu służący do tworzenia pustej aplikacji Aspire."
+ "description": "Szablon projektu służący do tworzenia pustej aplikacji Aspire.",
+ "symbols/appHostHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostOtlpHttpPort/description": "Port number to use for the OTLP HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostResourceHttpPort/description": "Port number to use for the resource service HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostHttpsPort/description": "Port number to use for the HTTPS endpoint in launchSettings.json of the AppHost project. This option is only applicable when the parameter no-https is not used.",
+ "symbols/appHostOtlpHttpsPort/description": "Port number to use for the OTLP HTTPS endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostResourceHttpsPort/description": "Port number to use for the resource service HTTPS endpoint in launchSettings.json of the AppHost project.",
+ "symbols/NoHttps/description": "Whether to turn off HTTPS."
}
\ No newline at end of file
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.pt-BR.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.pt-BR.json
index b16eb2a4584..b29a2d5cb3b 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.pt-BR.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.pt-BR.json
@@ -1,5 +1,12 @@
{
"author": "Microsoft",
"name": "Aplicativo Aspire Vazio",
- "description": "Um modelo de projeto para criar um aplicativo Aspire vazio."
+ "description": "Um modelo de projeto para criar um aplicativo Aspire vazio.",
+ "symbols/appHostHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostOtlpHttpPort/description": "Port number to use for the OTLP HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostResourceHttpPort/description": "Port number to use for the resource service HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostHttpsPort/description": "Port number to use for the HTTPS endpoint in launchSettings.json of the AppHost project. This option is only applicable when the parameter no-https is not used.",
+ "symbols/appHostOtlpHttpsPort/description": "Port number to use for the OTLP HTTPS endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostResourceHttpsPort/description": "Port number to use for the resource service HTTPS endpoint in launchSettings.json of the AppHost project.",
+ "symbols/NoHttps/description": "Whether to turn off HTTPS."
}
\ No newline at end of file
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ru.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ru.json
index 54a6d553f09..7096efff944 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ru.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ru.json
@@ -1,5 +1,12 @@
{
"author": "Майкрософт",
"name": "Пустое приложение Aspire",
- "description": "Шаблон проекта для создания пустого приложения Aspire."
+ "description": "Шаблон проекта для создания пустого приложения Aspire.",
+ "symbols/appHostHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostOtlpHttpPort/description": "Port number to use for the OTLP HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostResourceHttpPort/description": "Port number to use for the resource service HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostHttpsPort/description": "Port number to use for the HTTPS endpoint in launchSettings.json of the AppHost project. This option is only applicable when the parameter no-https is not used.",
+ "symbols/appHostOtlpHttpsPort/description": "Port number to use for the OTLP HTTPS endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostResourceHttpsPort/description": "Port number to use for the resource service HTTPS endpoint in launchSettings.json of the AppHost project.",
+ "symbols/NoHttps/description": "Whether to turn off HTTPS."
}
\ No newline at end of file
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.tr.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.tr.json
index 80cb1265aa6..5db1eb10526 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.tr.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.tr.json
@@ -1,5 +1,12 @@
{
"author": "Microsoft",
"name": "Aspire Boş Uygulama",
- "description": "Boş bir Aspire uygulaması oluşturmak için proje şablonu."
+ "description": "Boş bir Aspire uygulaması oluşturmak için proje şablonu.",
+ "symbols/appHostHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostOtlpHttpPort/description": "Port number to use for the OTLP HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostResourceHttpPort/description": "Port number to use for the resource service HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostHttpsPort/description": "Port number to use for the HTTPS endpoint in launchSettings.json of the AppHost project. This option is only applicable when the parameter no-https is not used.",
+ "symbols/appHostOtlpHttpsPort/description": "Port number to use for the OTLP HTTPS endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostResourceHttpsPort/description": "Port number to use for the resource service HTTPS endpoint in launchSettings.json of the AppHost project.",
+ "symbols/NoHttps/description": "Whether to turn off HTTPS."
}
\ No newline at end of file
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.zh-Hans.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.zh-Hans.json
index 132a33867bd..afdf92fa56d 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.zh-Hans.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.zh-Hans.json
@@ -1,5 +1,12 @@
{
"author": "Microsoft",
"name": "Aspire 空应用",
- "description": "用于创建空 Aspire 应用的项目模板。"
+ "description": "用于创建空 Aspire 应用的项目模板。",
+ "symbols/appHostHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostOtlpHttpPort/description": "Port number to use for the OTLP HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostResourceHttpPort/description": "Port number to use for the resource service HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostHttpsPort/description": "Port number to use for the HTTPS endpoint in launchSettings.json of the AppHost project. This option is only applicable when the parameter no-https is not used.",
+ "symbols/appHostOtlpHttpsPort/description": "Port number to use for the OTLP HTTPS endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostResourceHttpsPort/description": "Port number to use for the resource service HTTPS endpoint in launchSettings.json of the AppHost project.",
+ "symbols/NoHttps/description": "Whether to turn off HTTPS."
}
\ No newline at end of file
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.zh-Hant.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.zh-Hant.json
index 7e2608ac4d1..d9815123b6d 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.zh-Hant.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.zh-Hant.json
@@ -1,5 +1,12 @@
{
"author": "Microsoft",
"name": "Aspire 空白應用程式",
- "description": "用於建立空白 Aspire 應用程式的專案範本。"
+ "description": "用於建立空白 Aspire 應用程式的專案範本。",
+ "symbols/appHostHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostOtlpHttpPort/description": "Port number to use for the OTLP HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostResourceHttpPort/description": "Port number to use for the resource service HTTP endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostHttpsPort/description": "Port number to use for the HTTPS endpoint in launchSettings.json of the AppHost project. This option is only applicable when the parameter no-https is not used.",
+ "symbols/appHostOtlpHttpsPort/description": "Port number to use for the OTLP HTTPS endpoint in launchSettings.json of the AppHost project.",
+ "symbols/appHostResourceHttpsPort/description": "Port number to use for the resource service HTTPS endpoint in launchSettings.json of the AppHost project.",
+ "symbols/NoHttps/description": "Whether to turn off HTTPS."
}
\ No newline at end of file
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/template.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/template.json
index c3bc1a0e3ae..427e75d10ec 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/template.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/template.json
@@ -37,6 +37,148 @@
}
],
"symbols": {
+ "appHostHttpPort": {
+ "type": "parameter",
+ "datatype": "integer",
+ "description": "Port number to use for the HTTP endpoint in launchSettings.json of the AppHost project."
+ },
+ "appHostHttpPortGenerated": {
+ "type": "generated",
+ "generator": "port",
+ "parameters": {
+ "low": 15000,
+ "high": 15300
+ }
+ },
+ "appHostHttpPortReplacer": {
+ "type": "generated",
+ "generator": "coalesce",
+ "parameters": {
+ "sourceVariableName": "appHostHttpPort",
+ "fallbackVariableName": "appHostHttpPortGenerated"
+ },
+ "replaces": "15000"
+ },
+ "appHostOtlpHttpPort": {
+ "type": "parameter",
+ "datatype": "integer",
+ "description": "Port number to use for the OTLP HTTP endpoint in launchSettings.json of the AppHost project."
+ },
+ "appHostOtlpHttpPortGenerated": {
+ "type": "generated",
+ "generator": "port",
+ "parameters": {
+ "low": 19000,
+ "high": 19300
+ }
+ },
+ "appHostOtlpHttpPortReplacer": {
+ "type": "generated",
+ "generator": "coalesce",
+ "parameters": {
+ "sourceVariableName": "appHostOtlpHttpPort",
+ "fallbackVariableName": "appHostOtlpHttpPortGenerated"
+ },
+ "replaces": "19000"
+ },
+ "appHostResourceHttpPort": {
+ "type": "parameter",
+ "datatype": "integer",
+ "description": "Port number to use for the resource service HTTP endpoint in launchSettings.json of the AppHost project."
+ },
+ "appHostResourceHttpPortGenerated": {
+ "type": "generated",
+ "generator": "port",
+ "parameters": {
+ "low": 20000,
+ "high": 20300
+ }
+ },
+ "appHostResourceHttpPortReplacer": {
+ "type": "generated",
+ "generator": "coalesce",
+ "parameters": {
+ "sourceVariableName": "appHostResourceHttpPort",
+ "fallbackVariableName": "appHostResourceHttpPortGenerated"
+ },
+ "replaces": "20000"
+ },
+ "appHostHttpsPort": {
+ "type": "parameter",
+ "datatype": "integer",
+ "description": "Port number to use for the HTTPS endpoint in launchSettings.json of the AppHost project. This option is only applicable when the parameter no-https is not used."
+ },
+ "appHostHttpsPortGenerated": {
+ "type": "generated",
+ "generator": "port",
+ "parameters": {
+ "low": 17000,
+ "high": 17300
+ }
+ },
+ "appHostHttpsPortReplacer": {
+ "type": "generated",
+ "generator": "coalesce",
+ "parameters": {
+ "sourceVariableName": "appHostHttpsPort",
+ "fallbackVariableName": "appHostHttpsPortGenerated"
+ },
+ "replaces": "17000"
+ },
+ "appHostOtlpHttpsPort": {
+ "type": "parameter",
+ "datatype": "integer",
+ "description": "Port number to use for the OTLP HTTPS endpoint in launchSettings.json of the AppHost project."
+ },
+ "appHostOtlpHttpsPortGenerated": {
+ "type": "generated",
+ "generator": "port",
+ "parameters": {
+ "low": 21000,
+ "high": 21300
+ }
+ },
+ "appHostOtlpHttpsPortReplacer": {
+ "type": "generated",
+ "generator": "coalesce",
+ "parameters": {
+ "sourceVariableName": "appHostOtlpHttpsPort",
+ "fallbackVariableName": "appHostOtlpHttpsPortGenerated"
+ },
+ "replaces": "21000"
+ },
+ "appHostResourceHttpsPort": {
+ "type": "parameter",
+ "datatype": "integer",
+ "description": "Port number to use for the resource service HTTPS endpoint in launchSettings.json of the AppHost project."
+ },
+ "appHostResourceHttpsPortGenerated": {
+ "type": "generated",
+ "generator": "port",
+ "parameters": {
+ "low": 22000,
+ "high": 22300
+ }
+ },
+ "appHostResourceHttpsPortReplacer": {
+ "type": "generated",
+ "generator": "coalesce",
+ "parameters": {
+ "sourceVariableName": "appHostResourceHttpsPort",
+ "fallbackVariableName": "appHostResourceHttpsPortGenerated"
+ },
+ "replaces": "22000"
+ },
+ "HasHttpsProfile": {
+ "type": "computed",
+ "value": "(!NoHttps)"
+ },
+ "NoHttps": {
+ "type": "parameter",
+ "datatype": "bool",
+ "defaultValue": "false",
+ "description": "Whether to turn off HTTPS."
+ },
"hostIdentifier": {
"type": "bind",
"binding": "HostIdentifier"
From f5d2fe368cec6fb2f0587def42948f7cdba2008b Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sat, 18 Oct 2025 07:23:32 +0000
Subject: [PATCH 9/9] Update localization files to reflect Python + JavaScript
starter template
Co-authored-by: davidfowl <95136+davidfowl@users.noreply.github.com>
---
.../.template.config/localize/templatestrings.cs.json | 4 ++--
.../.template.config/localize/templatestrings.de.json | 4 ++--
.../.template.config/localize/templatestrings.es.json | 4 ++--
.../.template.config/localize/templatestrings.fr.json | 4 ++--
.../.template.config/localize/templatestrings.it.json | 4 ++--
.../.template.config/localize/templatestrings.ja.json | 4 ++--
.../.template.config/localize/templatestrings.ko.json | 4 ++--
.../.template.config/localize/templatestrings.pl.json | 4 ++--
.../.template.config/localize/templatestrings.pt-BR.json | 4 ++--
.../.template.config/localize/templatestrings.ru.json | 4 ++--
.../.template.config/localize/templatestrings.tr.json | 4 ++--
.../.template.config/localize/templatestrings.zh-Hans.json | 4 ++--
.../.template.config/localize/templatestrings.zh-Hant.json | 4 ++--
13 files changed, 26 insertions(+), 26 deletions(-)
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.cs.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.cs.json
index 696160f519c..03b912b06e2 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.cs.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.cs.json
@@ -1,7 +1,7 @@
{
"author": "Microsoft",
- "name": "Prázdná aplikace Aspire",
- "description": "Šablona projektu pro vytvoření prázdné aplikace Aspire.",
+ "name": "Úvodní aplikace Aspire Python",
+ "description": "Šablona projektu pro vytvoření aplikace Aspire se službou API backendového jazyka Python a front-endem JavaScriptu pomocí Vite a React.",
"symbols/appHostHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json of the AppHost project.",
"symbols/appHostOtlpHttpPort/description": "Port number to use for the OTLP HTTP endpoint in launchSettings.json of the AppHost project.",
"symbols/appHostResourceHttpPort/description": "Port number to use for the resource service HTTP endpoint in launchSettings.json of the AppHost project.",
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.de.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.de.json
index 8e6a5d7536d..4bb69370086 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.de.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.de.json
@@ -1,7 +1,7 @@
{
"author": "Microsoft",
- "name": "Leere Aspire-App",
- "description": "Eine Projektvorlage zum Erstellen einer leeren Aspire-App.",
+ "name": "Aspire Python Starter-App",
+ "description": "Eine Projektvorlage zum Erstellen einer Aspire-App mit einem Python-Backend-API-Dienst und einem JavaScript-Frontend mit Vite und React.",
"symbols/appHostHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json of the AppHost project.",
"symbols/appHostOtlpHttpPort/description": "Port number to use for the OTLP HTTP endpoint in launchSettings.json of the AppHost project.",
"symbols/appHostResourceHttpPort/description": "Port number to use for the resource service HTTP endpoint in launchSettings.json of the AppHost project.",
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.es.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.es.json
index ebb3f480384..5104b5ec0dd 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.es.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.es.json
@@ -1,7 +1,7 @@
{
"author": "Microsoft",
- "name": "Aplicación vacía de Aspire",
- "description": "Una plantilla de proyecto para crear una aplicación vacía de Aspire.",
+ "name": "Aplicación de inicio de Python de Aspire",
+ "description": "Una plantilla de proyecto para crear una aplicación Aspire con un servicio API de backend de Python y un frontend de JavaScript usando Vite y React.",
"symbols/appHostHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json of the AppHost project.",
"symbols/appHostOtlpHttpPort/description": "Port number to use for the OTLP HTTP endpoint in launchSettings.json of the AppHost project.",
"symbols/appHostResourceHttpPort/description": "Port number to use for the resource service HTTP endpoint in launchSettings.json of the AppHost project.",
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.fr.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.fr.json
index a94e48f1de9..8cccfc49250 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.fr.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.fr.json
@@ -1,7 +1,7 @@
{
"author": "Microsoft",
- "name": "Application vide Aspire",
- "description": "Modèle de projet pour créer une application Aspire vide.",
+ "name": "Application de démarrage Python Aspire",
+ "description": "Modèle de projet pour créer une application Aspire avec un service API backend Python et un frontend JavaScript utilisant Vite et React.",
"symbols/appHostHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json of the AppHost project.",
"symbols/appHostOtlpHttpPort/description": "Port number to use for the OTLP HTTP endpoint in launchSettings.json of the AppHost project.",
"symbols/appHostResourceHttpPort/description": "Port number to use for the resource service HTTP endpoint in launchSettings.json of the AppHost project.",
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.it.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.it.json
index e790664a7ca..c5c7f0b4b9a 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.it.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.it.json
@@ -1,7 +1,7 @@
{
"author": "Microsoft",
- "name": "App Aspire vuota",
- "description": "Modello di progetto per la creazione di un'app Aspire vuota.",
+ "name": "App Starter Python Aspire",
+ "description": "Modello di progetto per la creazione di un'app Aspire con un servizio API backend Python e un frontend JavaScript che utilizza Vite e React.",
"symbols/appHostHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json of the AppHost project.",
"symbols/appHostOtlpHttpPort/description": "Port number to use for the OTLP HTTP endpoint in launchSettings.json of the AppHost project.",
"symbols/appHostResourceHttpPort/description": "Port number to use for the resource service HTTP endpoint in launchSettings.json of the AppHost project.",
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ja.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ja.json
index 540a0c17e8a..b167492c7ba 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ja.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ja.json
@@ -1,7 +1,7 @@
{
"author": "Microsoft",
- "name": "Aspire の空のアプリ",
- "description": "空の Aspire アプリを作成するためのプロジェクト テンプレート。",
+ "name": "Aspire Python スターター アプリ",
+ "description": "Python バックエンド API サービスと Vite および React を使用した JavaScript フロントエンドを含む Aspire アプリを作成するためのプロジェクト テンプレート。",
"symbols/appHostHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json of the AppHost project.",
"symbols/appHostOtlpHttpPort/description": "Port number to use for the OTLP HTTP endpoint in launchSettings.json of the AppHost project.",
"symbols/appHostResourceHttpPort/description": "Port number to use for the resource service HTTP endpoint in launchSettings.json of the AppHost project.",
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ko.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ko.json
index 5046f732e97..7037f0bbc11 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ko.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ko.json
@@ -1,7 +1,7 @@
{
"author": "Microsoft",
- "name": "Aspire 빈 앱",
- "description": "빈 Aspire 앱을 만들기 위한 프로젝트 템플릿입니다.",
+ "name": "Aspire Python 시작 앱",
+ "description": "Python 백엔드 API 서비스와 Vite 및 React를 사용하는 JavaScript 프런트 엔드가 포함된 Aspire 앱을 만들기 위한 프로젝트 템플릿입니다.",
"symbols/appHostHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json of the AppHost project.",
"symbols/appHostOtlpHttpPort/description": "Port number to use for the OTLP HTTP endpoint in launchSettings.json of the AppHost project.",
"symbols/appHostResourceHttpPort/description": "Port number to use for the resource service HTTP endpoint in launchSettings.json of the AppHost project.",
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.pl.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.pl.json
index bfddb24b1e8..522aeeb2567 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.pl.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.pl.json
@@ -1,7 +1,7 @@
{
"author": "Microsoft",
- "name": "Pusta aplikacja Aspire",
- "description": "Szablon projektu służący do tworzenia pustej aplikacji Aspire.",
+ "name": "Aplikacja startowa Python Aspire",
+ "description": "Szablon projektu do tworzenia aplikacji Aspire z usługą interfejsu API zaplecza języka Python i frontendem JavaScript przy użyciu narzędzi Vite i React.",
"symbols/appHostHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json of the AppHost project.",
"symbols/appHostOtlpHttpPort/description": "Port number to use for the OTLP HTTP endpoint in launchSettings.json of the AppHost project.",
"symbols/appHostResourceHttpPort/description": "Port number to use for the resource service HTTP endpoint in launchSettings.json of the AppHost project.",
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.pt-BR.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.pt-BR.json
index b29a2d5cb3b..42ce6101df4 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.pt-BR.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.pt-BR.json
@@ -1,7 +1,7 @@
{
"author": "Microsoft",
- "name": "Aplicativo Aspire Vazio",
- "description": "Um modelo de projeto para criar um aplicativo Aspire vazio.",
+ "name": "Aplicativo Inicial Python Aspire",
+ "description": "Um modelo de projeto para criar um aplicativo Aspire com um serviço de API de back-end Python e um front-end JavaScript usando Vite e React.",
"symbols/appHostHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json of the AppHost project.",
"symbols/appHostOtlpHttpPort/description": "Port number to use for the OTLP HTTP endpoint in launchSettings.json of the AppHost project.",
"symbols/appHostResourceHttpPort/description": "Port number to use for the resource service HTTP endpoint in launchSettings.json of the AppHost project.",
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ru.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ru.json
index 7096efff944..173089b7dbb 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ru.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.ru.json
@@ -1,7 +1,7 @@
{
"author": "Майкрософт",
- "name": "Пустое приложение Aspire",
- "description": "Шаблон проекта для создания пустого приложения Aspire.",
+ "name": "Начальное приложение Aspire Python",
+ "description": "Шаблон проекта для создания приложения Aspire со службой API серверной части Python и внешним интерфейсом JavaScript с использованием Vite и React.",
"symbols/appHostHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json of the AppHost project.",
"symbols/appHostOtlpHttpPort/description": "Port number to use for the OTLP HTTP endpoint in launchSettings.json of the AppHost project.",
"symbols/appHostResourceHttpPort/description": "Port number to use for the resource service HTTP endpoint in launchSettings.json of the AppHost project.",
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.tr.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.tr.json
index 5db1eb10526..307b5f13580 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.tr.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.tr.json
@@ -1,7 +1,7 @@
{
"author": "Microsoft",
- "name": "Aspire Boş Uygulama",
- "description": "Boş bir Aspire uygulaması oluşturmak için proje şablonu.",
+ "name": "Aspire Python Başlangıç Uygulaması",
+ "description": "Python arka uç API hizmeti ve Vite ve React kullanan bir JavaScript ön ucu ile bir Aspire uygulaması oluşturmak için proje şablonu.",
"symbols/appHostHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json of the AppHost project.",
"symbols/appHostOtlpHttpPort/description": "Port number to use for the OTLP HTTP endpoint in launchSettings.json of the AppHost project.",
"symbols/appHostResourceHttpPort/description": "Port number to use for the resource service HTTP endpoint in launchSettings.json of the AppHost project.",
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.zh-Hans.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.zh-Hans.json
index afdf92fa56d..52e19196498 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.zh-Hans.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.zh-Hans.json
@@ -1,7 +1,7 @@
{
"author": "Microsoft",
- "name": "Aspire 空应用",
- "description": "用于创建空 Aspire 应用的项目模板。",
+ "name": "Aspire Python 入门应用",
+ "description": "用于创建具有 Python 后端 API 服务和使用 Vite 和 React 的 JavaScript 前端的 Aspire 应用的项目模板。",
"symbols/appHostHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json of the AppHost project.",
"symbols/appHostOtlpHttpPort/description": "Port number to use for the OTLP HTTP endpoint in launchSettings.json of the AppHost project.",
"symbols/appHostResourceHttpPort/description": "Port number to use for the resource service HTTP endpoint in launchSettings.json of the AppHost project.",
diff --git a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.zh-Hant.json b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.zh-Hant.json
index d9815123b6d..bfd857a98f8 100644
--- a/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.zh-Hant.json
+++ b/src/Aspire.ProjectTemplates/templates/aspire-py-starter/.template.config/localize/templatestrings.zh-Hant.json
@@ -1,7 +1,7 @@
{
"author": "Microsoft",
- "name": "Aspire 空白應用程式",
- "description": "用於建立空白 Aspire 應用程式的專案範本。",
+ "name": "Aspire Python 入門應用程式",
+ "description": "用於建立具有 Python 後端 API 服務和使用 Vite 和 React 的 JavaScript 前端的 Aspire 應用程式的專案範本。",
"symbols/appHostHttpPort/description": "Port number to use for the HTTP endpoint in launchSettings.json of the AppHost project.",
"symbols/appHostOtlpHttpPort/description": "Port number to use for the OTLP HTTP endpoint in launchSettings.json of the AppHost project.",
"symbols/appHostResourceHttpPort/description": "Port number to use for the resource service HTTP endpoint in launchSettings.json of the AppHost project.",