diff --git a/web/src/lang/cs.js b/web/src/lang/cs.js
index 58013c9db..2b3f06fbd 100644
--- a/web/src/lang/cs.js
+++ b/web/src/lang/cs.js
@@ -208,6 +208,9 @@ export default {
allowCliArgsInTask: 'Argumenty CLI',
docs: 'dokumentaci',
editViews: 'Upravit zobrazení',
+ searchTemplatesByName: 'Hledat šablony podle názvu...',
+ xOfYTemplates: '{x} z {y} šablon',
+ noTemplatesMatchSearch: 'Žádné šablony neodpovídají "{search}"',
newTemplate: 'Nová šablona',
taskTemplates2: 'Šablony úloh',
all: 'Vše',
diff --git a/web/src/lang/de.js b/web/src/lang/de.js
index e415ac38e..616b819e6 100644
--- a/web/src/lang/de.js
+++ b/web/src/lang/de.js
@@ -212,6 +212,9 @@ export default {
allowCliArgsInTask: 'CLI-Argumente',
docs: 'Dokumentation',
editViews: 'Ansichten bearbeiten',
+ searchTemplatesByName: 'Vorlagen nach Name suchen...',
+ xOfYTemplates: '{x} von {y} Vorlagen',
+ noTemplatesMatchSearch: 'Keine Vorlagen entsprechen "{search}"',
newTemplate: 'Neue Vorlage',
taskTemplates2: 'Task-Vorlagen',
all: 'Alle',
diff --git a/web/src/lang/en.js b/web/src/lang/en.js
index 7394196ef..f2be987f7 100644
--- a/web/src/lang/en.js
+++ b/web/src/lang/en.js
@@ -228,6 +228,9 @@ export default {
allowCliArgsInTask: 'CLI args',
docs: 'docs',
editViews: 'Edit Views',
+ searchTemplatesByName: 'Search templates by name...',
+ xOfYTemplates: '{x} of {y} templates',
+ noTemplatesMatchSearch: 'No templates match "{search}"',
newTemplate: 'New template',
taskTemplates2: 'Task Templates',
all: 'All',
diff --git a/web/src/lang/es.js b/web/src/lang/es.js
index 0125a6d16..9837ee709 100644
--- a/web/src/lang/es.js
+++ b/web/src/lang/es.js
@@ -203,6 +203,9 @@ export default {
allowCliArgsInTask: 'Argumentos CLI',
docs: 'documentos',
editViews: 'Editar Vistas',
+ searchTemplatesByName: 'Buscar plantillas por nombre...',
+ xOfYTemplates: '{x} de {y} plantillas',
+ noTemplatesMatchSearch: 'No hay plantillas que coincidan con "{search}"',
newTemplate: 'Nueva plantilla',
taskTemplates2: 'Plantillas de Tareas',
all: 'Todo',
diff --git a/web/src/lang/fr.js b/web/src/lang/fr.js
index fddd95031..0f14ac9af 100644
--- a/web/src/lang/fr.js
+++ b/web/src/lang/fr.js
@@ -203,6 +203,9 @@ export default {
allowCliArgsInTask: 'Arguments CLI',
docs: 'docs',
editViews: 'Modifier les vues',
+ searchTemplatesByName: 'Rechercher des modèles par nom...',
+ xOfYTemplates: '{x} sur {y} modèles',
+ noTemplatesMatchSearch: 'Aucun modèle ne correspond à "{search}"',
newTemplate: 'Nouveau modèle',
taskTemplates2: 'Modèles de tâches',
all: 'Tous',
diff --git a/web/src/lang/it.js b/web/src/lang/it.js
index 1836e15b5..2830d5c78 100644
--- a/web/src/lang/it.js
+++ b/web/src/lang/it.js
@@ -203,6 +203,9 @@ export default {
allowCliArgsInTask: 'Argomenti CLI',
docs: 'documenti',
editViews: 'Modifica viste',
+ searchTemplatesByName: 'Cerca modelli per nome...',
+ xOfYTemplates: '{x} di {y} modelli',
+ noTemplatesMatchSearch: 'Nessun modello corrisponde a "{search}"',
newTemplate: 'Nuovo modello',
taskTemplates2: 'Modelli di compito',
all: 'Tutti',
diff --git a/web/src/lang/ja.js b/web/src/lang/ja.js
index f694e4ff5..1d44607a3 100644
--- a/web/src/lang/ja.js
+++ b/web/src/lang/ja.js
@@ -203,6 +203,9 @@ export default {
allowCliArgsInTask: 'CLI引数',
docs: 'ドキュメント',
editViews: 'ビューを編集',
+ searchTemplatesByName: '名前でテンプレートを検索...',
+ xOfYTemplates: '{y}件中{x}件のテンプレート',
+ noTemplatesMatchSearch: '"{search}"に一致するテンプレートはありません',
newTemplate: '新しいテンプレート',
taskTemplates2: 'タスクテンプレート',
all: 'すべて',
diff --git a/web/src/lang/ko.js b/web/src/lang/ko.js
index 1096fccfa..263c44410 100644
--- a/web/src/lang/ko.js
+++ b/web/src/lang/ko.js
@@ -203,6 +203,9 @@ export default {
allowCliArgsInTask: 'CLI 인수',
docs: '문서',
editViews: '보기 수정',
+ searchTemplatesByName: '이름으로 템플릿 검색...',
+ xOfYTemplates: '{y}개 중 {x}개 템플릿',
+ noTemplatesMatchSearch: '"{search}"와 일치하는 템플릿이 없습니다',
newTemplate: '새 템플릿',
taskTemplates2: '작업 템플릿',
all: '모두',
diff --git a/web/src/lang/nl.js b/web/src/lang/nl.js
index 369d47476..b9fd40283 100644
--- a/web/src/lang/nl.js
+++ b/web/src/lang/nl.js
@@ -203,6 +203,9 @@ export default {
allowCliArgsInTask: 'CLI-argumenten',
docs: 'documentatie',
editViews: 'Weergaven Bewerken',
+ searchTemplatesByName: 'Zoek sjablonen op naam...',
+ xOfYTemplates: '{x} van {y} sjablonen',
+ noTemplatesMatchSearch: 'Geen sjablonen komen overeen met "{search}"',
newTemplate: 'Nieuw sjabloon',
taskTemplates2: 'Taak Sjablonen',
all: 'Alle',
diff --git a/web/src/lang/pl.js b/web/src/lang/pl.js
index 9e2a89d11..080454dee 100644
--- a/web/src/lang/pl.js
+++ b/web/src/lang/pl.js
@@ -203,6 +203,9 @@ export default {
allowCliArgsInTask: 'Argumenty CLI',
docs: 'dokumentacja',
editViews: 'Edytuj widoki',
+ searchTemplatesByName: 'Szukaj szablonów według nazwy...',
+ xOfYTemplates: '{x} z {y} szablonów',
+ noTemplatesMatchSearch: 'Żadne szablony nie pasują do "{search}"',
newTemplate: 'Nowy szablon',
taskTemplates2: 'Szablony zadań',
all: 'Wszystko',
diff --git a/web/src/lang/pt.js b/web/src/lang/pt.js
index 803cef9f2..3cf62bfe8 100644
--- a/web/src/lang/pt.js
+++ b/web/src/lang/pt.js
@@ -203,6 +203,9 @@ export default {
allowCliArgsInTask: 'Argumentos CLI',
docs: 'documentos',
editViews: 'Editar Visualizações',
+ searchTemplatesByName: 'Pesquisar modelos por nome...',
+ xOfYTemplates: '{x} de {y} modelos',
+ noTemplatesMatchSearch: 'Nenhum modelo corresponde a "{search}"',
newTemplate: 'Novo modelo',
taskTemplates2: 'Modelos de Tarefa',
all: 'Todos',
diff --git a/web/src/lang/pt_br.js b/web/src/lang/pt_br.js
index 8dfaa9b93..16b60aa71 100644
--- a/web/src/lang/pt_br.js
+++ b/web/src/lang/pt_br.js
@@ -203,6 +203,9 @@ export default {
allowCliArgsInTask: 'Argumentos CLI',
docs: 'documentos',
editViews: 'Editar Visualizações',
+ searchTemplatesByName: 'Pesquisar modelos por nome...',
+ xOfYTemplates: '{x} de {y} modelos',
+ noTemplatesMatchSearch: 'Nenhum modelo corresponde a "{search}"',
newTemplate: 'Novo modelo',
taskTemplates2: 'Modelos de Tarefa',
all: 'Todos',
diff --git a/web/src/lang/ru.js b/web/src/lang/ru.js
index 7fca6b94d..30ca65fe4 100644
--- a/web/src/lang/ru.js
+++ b/web/src/lang/ru.js
@@ -208,6 +208,9 @@ export default {
allowCliArgsInTask: 'CLI аргументы',
docs: 'документация',
editViews: 'Редактировать представления',
+ searchTemplatesByName: 'Поиск шаблонов по имени...',
+ xOfYTemplates: '{x} из {y} шаблонов',
+ noTemplatesMatchSearch: 'Нет шаблонов, соответствующих "{search}"',
newTemplate: 'Новый шаблон',
taskTemplates2: 'Шаблоны задач',
all: 'Все',
diff --git a/web/src/lang/uk.js b/web/src/lang/uk.js
index 65d4c4368..919b883f8 100644
--- a/web/src/lang/uk.js
+++ b/web/src/lang/uk.js
@@ -204,6 +204,9 @@ export default {
allowCliArgsInTask: 'CLI-аргументи',
docs: 'документація',
editViews: 'Редагувати перегляди',
+ searchTemplatesByName: 'Пошук шаблонів за назвою...',
+ xOfYTemplates: '{x} з {y} шаблонів',
+ noTemplatesMatchSearch: 'Немає шаблонів, що відповідають "{search}"',
newTemplate: 'Новий шаблон',
taskTemplates2: 'Шаблони завдань',
all: 'Усі',
diff --git a/web/src/lang/zh_cn.js b/web/src/lang/zh_cn.js
index ec1ea8c5b..25a63814c 100644
--- a/web/src/lang/zh_cn.js
+++ b/web/src/lang/zh_cn.js
@@ -203,6 +203,9 @@ export default {
allowCliArgsInTask: 'CLI 参数',
docs: '文档',
editViews: '编辑视图',
+ searchTemplatesByName: '按名称搜索模板...',
+ xOfYTemplates: '{y} 个模板中的 {x} 个',
+ noTemplatesMatchSearch: '没有与"{search}"匹配的模板',
newTemplate: '新模板',
taskTemplates2: '任务模板',
all: '所有',
diff --git a/web/src/lang/zh_tw.js b/web/src/lang/zh_tw.js
index 523984b36..038546951 100644
--- a/web/src/lang/zh_tw.js
+++ b/web/src/lang/zh_tw.js
@@ -205,6 +205,9 @@ export default {
allowCliArgsInTask: 'CLI 參數',
docs: '文件',
editViews: '編輯檢視',
+ searchTemplatesByName: '依名稱搜尋範本...',
+ xOfYTemplates: '{y} 個範本中的 {x} 個',
+ noTemplatesMatchSearch: '沒有符合"{search}"的範本',
newTemplate: '新增範本',
taskTemplates2: '任務範本',
all: '所有',
diff --git a/web/src/views/project/Templates.vue b/web/src/views/project/Templates.vue
index e321621a0..db7276e7e 100644
--- a/web/src/views/project/Templates.vue
+++ b/web/src/views/project/Templates.vue
@@ -130,6 +130,29 @@