diff --git a/localizer.go b/localizer.go index 90a94a83..9cc54d4c 100644 --- a/localizer.go +++ b/localizer.go @@ -1,7 +1,20 @@ +// Copyright 2013-2024 The Cobra Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + package cobra import ( - "embed" "fmt" "os" @@ -27,13 +40,6 @@ var availableLocalizationDomains = []string{ "default", } -// localeFS points to an embedded filesystem of binary gettext translation files. -// For performance and smaller builds, only the binary MO files are included. -// Their sibling PO files should still be considered their authoritative source. -// -//go:embed locales/*/*.mo -var localeFS embed.FS - // i18nCommandGlossary wraps the translated strings passed to the command usage template. // This is used in CommandUsageTemplateData. type i18nCommandGlossary struct { diff --git a/localizer_locales.go b/localizer_locales.go new file mode 100644 index 00000000..be33bbb2 --- /dev/null +++ b/localizer_locales.go @@ -0,0 +1,29 @@ +// Copyright 2013-2024 The Cobra Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build locales +// +build locales + +package cobra + +import ( + "embed" +) + +// localeFS points to an embedded filesystem of binary gettext translation files. +// For performance and smaller builds, only the binary MO files are included. +// Their sibling PO files should still be considered their authoritative source. +// +//go:embed locales/*/*.mo +var localeFS embed.FS diff --git a/localizer_notlocales.go b/localizer_notlocales.go new file mode 100644 index 00000000..cafb9ffe --- /dev/null +++ b/localizer_notlocales.go @@ -0,0 +1,30 @@ +// Copyright 2013-2024 The Cobra Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build !locales +// +build !locales + +package cobra + +import ( + "embed" +) + +// localeFS points to an embedded filesystem of binary gettext translation files, +// but only for the default (english) language, as the locales build tag was not set. +// For performance and smaller builds, only the binary MO files are included. +// Their sibling PO files should still be considered their authoritative source. +// +//go:embed locales/*/en.mo +var localeFS embed.FS diff --git a/localizer_test.go b/localizer_test.go index 16efdc01..94dfa434 100644 --- a/localizer_test.go +++ b/localizer_test.go @@ -1,3 +1,17 @@ +// Copyright 2013-2024 The Cobra Authors +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + package cobra import (