diff --git a/resources/js/components/terms/CreateTermButton.vue b/resources/js/components/terms/CreateTermButton.vue index ee3509c33a..4a7e81fa18 100644 --- a/resources/js/components/terms/CreateTermButton.vue +++ b/resources/js/components/terms/CreateTermButton.vue @@ -6,7 +6,7 @@ class="btn-primary flex items-center" @click="create" > - + @@ -25,7 +25,8 @@ export default { props: { url: String, - blueprints: Array + blueprints: Array, + text: { type: String, default: () => __('Create Term') }, }, methods: { diff --git a/resources/views/taxonomies/show.blade.php b/resources/views/taxonomies/show.blade.php index 3aff3310d8..b9476c4884 100644 --- a/resources/views/taxonomies/show.blade.php +++ b/resources/views/taxonomies/show.blade.php @@ -36,6 +36,7 @@ @if($canCreate) @endif diff --git a/resources/views/terms/create.blade.php b/resources/views/terms/create.blade.php index e3cf15a937..4e2d9d5796 100644 --- a/resources/views/terms/create.blade.php +++ b/resources/views/terms/create.blade.php @@ -1,11 +1,12 @@ @extends('statamic::layout') -@section('title', $breadcrumbs->title('Create Term')) +@section('title', $breadcrumbs->title($taxonomyCreateLabel)) @section('wrapper_class', 'max-w-3xl') @section('content') __('Create Term'), + 'title' => $taxonomy->createLabel(), 'actions' => [ 'save' => cp_route('taxonomies.terms.store', [$taxonomy->handle(), $site->handle()]), ], 'values' => $values, 'meta' => $fields->meta(), 'taxonomy' => $taxonomy->handle(), + 'taxonomyCreateLabel' => $taxonomy->createLabel(), 'blueprint' => $blueprint->toPublishArray(), 'published' => $taxonomy->defaultPublishState(), 'locale' => $site->handle(), diff --git a/src/Taxonomies/Taxonomy.php b/src/Taxonomies/Taxonomy.php index 2e5010a9c9..b2bfd4e76e 100644 --- a/src/Taxonomies/Taxonomy.php +++ b/src/Taxonomies/Taxonomy.php @@ -441,6 +441,19 @@ public function layout($layout = null) ->args(func_get_args()); } + public function createLabel() + { + $key = "messages.{$this->handle()}_taxonomy_create_term"; + + $translation = __($key); + + if ($translation === $key) { + return __('Create Term'); + } + + return $translation; + } + public function searchIndex($index = null) { return $this diff --git a/tests/Data/Taxonomies/TaxonomyTest.php b/tests/Data/Taxonomies/TaxonomyTest.php index 7c76a3c91c..6d502da262 100644 --- a/tests/Data/Taxonomies/TaxonomyTest.php +++ b/tests/Data/Taxonomies/TaxonomyTest.php @@ -429,6 +429,13 @@ public function it_gets_and_sets_the_term_template() $this->assertEquals('foo', $taxonomy->termTemplate()); } + #[Test] + public function it_gets_and_sets_the_create_label() + { + $taxonomy = (new Taxonomy)->handle('tags'); + $this->assertEquals('Create Term', $taxonomy->createLabel()); + } + #[Test] public function it_cannot_view_taxonomies_from_sites_that_the_user_is_not_authorized_to_see() {