@red-hat-developer-hub/backstage-plugin-dynamic-home-page 1.6.0 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/dist/components/CustomizableHomePage.esm.js +3 -7
- package/dist/components/CustomizableHomePage.esm.js.map +1 -1
- package/dist/components/EntitySection/EntitySection.esm.js +18 -13
- package/dist/components/EntitySection/EntitySection.esm.js.map +1 -1
- package/dist/components/FeaturedDocsCard.esm.js +9 -1
- package/dist/components/FeaturedDocsCard.esm.js.map +1 -1
- package/dist/components/Header.esm.js +24 -12
- package/dist/components/Header.esm.js.map +1 -1
- package/dist/components/HomePage.esm.js +4 -8
- package/dist/components/HomePage.esm.js.map +1 -1
- package/dist/components/OnboardingSection/OnboardingSection.esm.js +5 -3
- package/dist/components/OnboardingSection/OnboardingSection.esm.js.map +1 -1
- package/dist/components/QuickAccessCard.esm.js +5 -3
- package/dist/components/QuickAccessCard.esm.js.map +1 -1
- package/dist/components/SearchBar.esm.js +3 -1
- package/dist/components/SearchBar.esm.js.map +1 -1
- package/dist/components/TemplateSection/TemplateSection.esm.js +16 -12
- package/dist/components/TemplateSection/TemplateSection.esm.js.map +1 -1
- package/dist/components/Trans.esm.js +9 -0
- package/dist/components/Trans.esm.js.map +1 -0
- package/dist/hooks/useGreeting.esm.js +12 -8
- package/dist/hooks/useGreeting.esm.js.map +1 -1
- package/dist/hooks/useLanguage.esm.js +7 -0
- package/dist/hooks/useLanguage.esm.js.map +1 -0
- package/dist/hooks/useTranslation.esm.js +8 -0
- package/dist/hooks/useTranslation.esm.js.map +1 -0
- package/dist/index.d.ts +57 -1
- package/dist/index.esm.js +2 -0
- package/dist/index.esm.js.map +1 -1
- package/dist/translations/de.esm.js +52 -0
- package/dist/translations/de.esm.js.map +1 -0
- package/dist/translations/es.esm.js +52 -0
- package/dist/translations/es.esm.js.map +1 -0
- package/dist/translations/fr.esm.js +52 -0
- package/dist/translations/fr.esm.js.map +1 -0
- package/dist/translations/index.esm.js +15 -0
- package/dist/translations/index.esm.js.map +1 -0
- package/dist/translations/it.esm.js +52 -0
- package/dist/translations/it.esm.js.map +1 -0
- package/dist/translations/ref.esm.js +76 -0
- package/dist/translations/ref.esm.js.map +1 -0
- package/dist/utils/constants.esm.js +14 -14
- package/dist/utils/constants.esm.js.map +1 -1
- package/package.json +15 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchBar.esm.js","sources":["../../src/components/SearchBar.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useCallback, useRef, useState } from 'react';\nimport { useNavigate } from 'react-router-dom';\n\nimport { SearchBarBase } from '@backstage/plugin-search-react';\n\nimport { makeStyles } from 'tss-react/mui';\n\nconst useStyles = makeStyles()(theme => ({\n searchBar: {\n '&&': {\n backgroundColor: theme.palette.mode === 'dark' ? '#36373A' : '#FFFFFF',\n boxShadow: 'none',\n border: `1px solid ${\n theme.palette.mode === 'dark' ? '#57585a' : '#E4E4E4'\n }`,\n borderRadius: '50px',\n margin: 0,\n },\n },\n notchedOutline: {\n '&&': {\n borderStyle: 'none',\n },\n },\n}));\n\n/**\n * @public\n */\nexport interface SearchBarProps {\n path?: string;\n queryParam?: string;\n}\n\n/**\n * @public\n */\nexport const SearchBar = ({ path, queryParam }: SearchBarProps) => {\n const { classes } = useStyles();\n const [value, setValue] = useState('');\n const ref = useRef<HTMLInputElement | null>(null);\n const navigate = useNavigate();\n\n // This handler is called when \"enter\" is pressed\n const handleSubmit = useCallback(() => {\n const query = ref.current?.value ?? '';\n\n const url = new URL(window.location.toString());\n url.pathname = path ?? '/search';\n url.searchParams.set(queryParam ?? 'query', query);\n const search = url.searchParams.toString();\n\n navigate(`${url.pathname}${search ? '?' : ''}${search}`);\n }, [navigate, path, queryParam]);\n\n return (\n <SearchBarBase\n placeholder
|
|
1
|
+
{"version":3,"file":"SearchBar.esm.js","sources":["../../src/components/SearchBar.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useCallback, useRef, useState } from 'react';\nimport { useNavigate } from 'react-router-dom';\n\nimport { SearchBarBase } from '@backstage/plugin-search-react';\n\nimport { makeStyles } from 'tss-react/mui';\n\nimport { useTranslation } from '../hooks/useTranslation';\n\nconst useStyles = makeStyles()(theme => ({\n searchBar: {\n '&&': {\n backgroundColor: theme.palette.mode === 'dark' ? '#36373A' : '#FFFFFF',\n boxShadow: 'none',\n border: `1px solid ${\n theme.palette.mode === 'dark' ? '#57585a' : '#E4E4E4'\n }`,\n borderRadius: '50px',\n margin: 0,\n },\n },\n notchedOutline: {\n '&&': {\n borderStyle: 'none',\n },\n },\n}));\n\n/**\n * @public\n */\nexport interface SearchBarProps {\n path?: string;\n queryParam?: string;\n}\n\n/**\n * @public\n */\nexport const SearchBar = ({ path, queryParam }: SearchBarProps) => {\n const { classes } = useStyles();\n const { t } = useTranslation();\n const [value, setValue] = useState('');\n const ref = useRef<HTMLInputElement | null>(null);\n const navigate = useNavigate();\n\n // This handler is called when \"enter\" is pressed\n const handleSubmit = useCallback(() => {\n const query = ref.current?.value ?? '';\n\n const url = new URL(window.location.toString());\n url.pathname = path ?? '/search';\n url.searchParams.set(queryParam ?? 'query', query);\n const search = url.searchParams.toString();\n\n navigate(`${url.pathname}${search ? '?' : ''}${search}`);\n }, [navigate, path, queryParam]);\n\n return (\n <SearchBarBase\n placeholder={t('search.placeholder')}\n value={value}\n onChange={setValue}\n onSubmit={handleSubmit}\n inputProps={{ ref }}\n classes={{\n root: classes.searchBar,\n }}\n InputProps={{\n classes: {\n notchedOutline: classes.notchedOutline,\n },\n }}\n />\n );\n};\n"],"names":[],"mappings":";;;;;;;AAyBA,MAAM,SAAA,GAAY,UAAW,EAAA,CAAE,CAAU,KAAA,MAAA;AAAA,EACvC,SAAW,EAAA;AAAA,IACT,IAAM,EAAA;AAAA,MACJ,eAAiB,EAAA,KAAA,CAAM,OAAQ,CAAA,IAAA,KAAS,SAAS,SAAY,GAAA,SAAA;AAAA,MAC7D,SAAW,EAAA,MAAA;AAAA,MACX,QAAQ,CACN,UAAA,EAAA,KAAA,CAAM,QAAQ,IAAS,KAAA,MAAA,GAAS,YAAY,SAC9C,CAAA,CAAA;AAAA,MACA,YAAc,EAAA,MAAA;AAAA,MACd,MAAQ,EAAA;AAAA;AACV,GACF;AAAA,EACA,cAAgB,EAAA;AAAA,IACd,IAAM,EAAA;AAAA,MACJ,WAAa,EAAA;AAAA;AACf;AAEJ,CAAE,CAAA,CAAA;AAaK,MAAM,SAAY,GAAA,CAAC,EAAE,IAAA,EAAM,YAAiC,KAAA;AACjE,EAAM,MAAA,EAAE,OAAQ,EAAA,GAAI,SAAU,EAAA;AAC9B,EAAM,MAAA,EAAE,CAAE,EAAA,GAAI,cAAe,EAAA;AAC7B,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAI,SAAS,EAAE,CAAA;AACrC,EAAM,MAAA,GAAA,GAAM,OAAgC,IAAI,CAAA;AAChD,EAAA,MAAM,WAAW,WAAY,EAAA;AAG7B,EAAM,MAAA,YAAA,GAAe,YAAY,MAAM;AACrC,IAAM,MAAA,KAAA,GAAQ,GAAI,CAAA,OAAA,EAAS,KAAS,IAAA,EAAA;AAEpC,IAAA,MAAM,MAAM,IAAI,GAAA,CAAI,MAAO,CAAA,QAAA,CAAS,UAAU,CAAA;AAC9C,IAAA,GAAA,CAAI,WAAW,IAAQ,IAAA,SAAA;AACvB,IAAA,GAAA,CAAI,YAAa,CAAA,GAAA,CAAI,UAAc,IAAA,OAAA,EAAS,KAAK,CAAA;AACjD,IAAM,MAAA,MAAA,GAAS,GAAI,CAAA,YAAA,CAAa,QAAS,EAAA;AAEzC,IAAS,QAAA,CAAA,CAAA,EAAG,IAAI,QAAQ,CAAA,EAAG,SAAS,GAAM,GAAA,EAAE,CAAG,EAAA,MAAM,CAAE,CAAA,CAAA;AAAA,GACtD,EAAA,CAAC,QAAU,EAAA,IAAA,EAAM,UAAU,CAAC,CAAA;AAE/B,EACE,uBAAA,GAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAa,EAAE,oBAAoB,CAAA;AAAA,MACnC,KAAA;AAAA,MACA,QAAU,EAAA,QAAA;AAAA,MACV,QAAU,EAAA,YAAA;AAAA,MACV,UAAA,EAAY,EAAE,GAAI,EAAA;AAAA,MAClB,OAAS,EAAA;AAAA,QACP,MAAM,OAAQ,CAAA;AAAA,OAChB;AAAA,MACA,UAAY,EAAA;AAAA,QACV,OAAS,EAAA;AAAA,UACP,gBAAgB,OAAQ,CAAA;AAAA;AAC1B;AACF;AAAA,GACF;AAEJ;;;;"}
|
|
@@ -11,6 +11,8 @@ import Typography from '@mui/material/Typography';
|
|
|
11
11
|
import TemplateCard from './TemplateCard.esm.js';
|
|
12
12
|
import { useEntities } from '../../hooks/useEntities.esm.js';
|
|
13
13
|
import { ViewMoreLink } from './ViewMoreLink.esm.js';
|
|
14
|
+
import { useTranslation } from '../../hooks/useTranslation.esm.js';
|
|
15
|
+
import { Trans } from '../Trans.esm.js';
|
|
14
16
|
|
|
15
17
|
const StyledLink = styled(Link)(({ theme }) => ({
|
|
16
18
|
textDecoration: "none",
|
|
@@ -21,6 +23,7 @@ const StyledLink = styled(Link)(({ theme }) => ({
|
|
|
21
23
|
borderRadius: 4
|
|
22
24
|
}));
|
|
23
25
|
const TemplateSection = () => {
|
|
26
|
+
const { t } = useTranslation();
|
|
24
27
|
const {
|
|
25
28
|
data: templates,
|
|
26
29
|
error,
|
|
@@ -46,11 +49,11 @@ const TemplateSection = () => {
|
|
|
46
49
|
}
|
|
47
50
|
);
|
|
48
51
|
} else if (!templates) {
|
|
49
|
-
content = /* @__PURE__ */ jsx(WarningPanel, { severity: "error", title: "
|
|
52
|
+
content = /* @__PURE__ */ jsx(WarningPanel, { severity: "error", title: t("templates.fetchError"), children: /* @__PURE__ */ jsx(
|
|
50
53
|
CodeSnippet,
|
|
51
54
|
{
|
|
52
55
|
language: "text",
|
|
53
|
-
text: error?.toString() ?? "
|
|
56
|
+
text: error?.toString() ?? t("templates.error")
|
|
54
57
|
}
|
|
55
58
|
) });
|
|
56
59
|
} else {
|
|
@@ -82,7 +85,7 @@ const TemplateSection = () => {
|
|
|
82
85
|
margin: "1rem"
|
|
83
86
|
},
|
|
84
87
|
children: [
|
|
85
|
-
/* @__PURE__ */ jsx(Typography, { sx: { fontSize: "1.125rem", fontWeight: 500 }, children: "
|
|
88
|
+
/* @__PURE__ */ jsx(Typography, { sx: { fontSize: "1.125rem", fontWeight: 500 }, children: t("templates.empty") }),
|
|
86
89
|
/* @__PURE__ */ jsx(
|
|
87
90
|
Typography,
|
|
88
91
|
{
|
|
@@ -92,10 +95,10 @@ const TemplateSection = () => {
|
|
|
92
95
|
mt: "20px",
|
|
93
96
|
mb: "16px"
|
|
94
97
|
},
|
|
95
|
-
children: "
|
|
98
|
+
children: t("templates.emptyDescription")
|
|
96
99
|
}
|
|
97
100
|
),
|
|
98
|
-
/* @__PURE__ */ jsx(StyledLink, { to: "/catalog-import", underline: "none", children: "
|
|
101
|
+
/* @__PURE__ */ jsx(StyledLink, { to: "/catalog-import", underline: "none", children: t("templates.register") })
|
|
99
102
|
]
|
|
100
103
|
}
|
|
101
104
|
)
|
|
@@ -123,16 +126,17 @@ const TemplateSection = () => {
|
|
|
123
126
|
fontWeight: "500",
|
|
124
127
|
fontSize: "1.5rem"
|
|
125
128
|
},
|
|
126
|
-
children: "
|
|
129
|
+
children: t("templates.title")
|
|
127
130
|
}
|
|
128
131
|
),
|
|
129
132
|
content,
|
|
130
|
-
templates?.items && templates?.items.length > 0 && /* @__PURE__ */ jsx(Box, { sx: { pt: 2 }, children: /* @__PURE__ */
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
133
|
+
templates?.items && templates?.items.length > 0 && /* @__PURE__ */ jsx(Box, { sx: { pt: 2 }, children: /* @__PURE__ */ jsx(ViewMoreLink, { to: catalogTemplatesLink, underline: "always", children: /* @__PURE__ */ jsx(
|
|
134
|
+
Trans,
|
|
135
|
+
{
|
|
136
|
+
message: "templates.viewAll",
|
|
137
|
+
params: { count: templates?.totalItems?.toString() || "" }
|
|
138
|
+
}
|
|
139
|
+
) }) })
|
|
136
140
|
]
|
|
137
141
|
}
|
|
138
142
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TemplateSection.esm.js","sources":["../../../src/components/TemplateSection/TemplateSection.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport type { ReactNode } from 'react';\n\nimport { Fragment } from 'react';\n\nimport {\n CodeSnippet,\n WarningPanel,\n Link as BackstageLink,\n} from '@backstage/core-components';\n\nimport Grid from '@mui/material/Grid';\nimport Box from '@mui/material/Box';\nimport Card from '@mui/material/Card';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport CardContent from '@mui/material/CardContent';\nimport { styled } from '@mui/material/styles';\nimport Typography from '@mui/material/Typography';\n\nimport TemplateCard from './TemplateCard';\nimport { useEntities } from '../../hooks/useEntities';\nimport { ViewMoreLink } from './ViewMoreLink';\n\nconst StyledLink = styled(BackstageLink)(({ theme }) => ({\n textDecoration: 'none',\n padding: theme.spacing(1, 1.5),\n fontSize: '16px',\n display: 'inline-flex',\n border: `1px solid ${theme.palette.primary.main}`,\n borderRadius: 4,\n}));\n\nexport const TemplateSection = () => {\n const {\n data: templates,\n error,\n isLoading,\n } = useEntities({ kind: 'Template' });\n\n const params = new URLSearchParams({\n 'filters[kind]': 'template',\n limit: '20',\n });\n const catalogTemplatesLink = `/catalog?${params.toString()}`;\n\n let content: ReactNode;\n\n if (isLoading) {\n content = (\n <Box\n sx={{\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <CircularProgress />\n </Box>\n );\n } else if (!templates) {\n content = (\n <WarningPanel severity=\"error\" title
|
|
1
|
+
{"version":3,"file":"TemplateSection.esm.js","sources":["../../../src/components/TemplateSection/TemplateSection.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport type { ReactNode } from 'react';\n\nimport { Fragment } from 'react';\n\nimport {\n CodeSnippet,\n WarningPanel,\n Link as BackstageLink,\n} from '@backstage/core-components';\n\nimport Grid from '@mui/material/Grid';\nimport Box from '@mui/material/Box';\nimport Card from '@mui/material/Card';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport CardContent from '@mui/material/CardContent';\nimport { styled } from '@mui/material/styles';\nimport Typography from '@mui/material/Typography';\n\nimport TemplateCard from './TemplateCard';\nimport { useEntities } from '../../hooks/useEntities';\nimport { ViewMoreLink } from './ViewMoreLink';\nimport { useTranslation } from '../../hooks/useTranslation';\nimport { Trans } from '../Trans';\n\nconst StyledLink = styled(BackstageLink)(({ theme }) => ({\n textDecoration: 'none',\n padding: theme.spacing(1, 1.5),\n fontSize: '16px',\n display: 'inline-flex',\n border: `1px solid ${theme.palette.primary.main}`,\n borderRadius: 4,\n}));\n\nexport const TemplateSection = () => {\n const { t } = useTranslation();\n const {\n data: templates,\n error,\n isLoading,\n } = useEntities({ kind: 'Template' });\n\n const params = new URLSearchParams({\n 'filters[kind]': 'template',\n limit: '20',\n });\n const catalogTemplatesLink = `/catalog?${params.toString()}`;\n\n let content: ReactNode;\n\n if (isLoading) {\n content = (\n <Box\n sx={{\n height: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <CircularProgress />\n </Box>\n );\n } else if (!templates) {\n content = (\n <WarningPanel severity=\"error\" title={t('templates.fetchError')}>\n <CodeSnippet\n language=\"text\"\n text={error?.toString() ?? t('templates.error')}\n />\n </WarningPanel>\n );\n } else {\n content = (\n <Box sx={{ padding: '8px 8px 8px 0' }}>\n <Fragment>\n <Grid container spacing={1} alignItems=\"stretch\">\n {templates?.items.map((item: any) => (\n <Grid item xs={12} md={6} lg={3} key={item.title}>\n <TemplateCard\n link={`/create/templates/${item.metadata.namespace}/${item.metadata.name}`}\n title={item.metadata.title}\n description={item.metadata.description}\n kind=\"Template\"\n />\n </Grid>\n ))}\n {templates?.items.length === 0 && (\n <Grid item xs={12} md={12}>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n border: muiTheme =>\n `1px solid ${muiTheme.palette.grey[400]}`,\n borderRadius: 3,\n overflow: 'hidden',\n }}\n >\n <CardContent\n sx={{\n margin: '1rem',\n }}\n >\n <Typography sx={{ fontSize: '1.125rem', fontWeight: 500 }}>\n {t('templates.empty')}\n </Typography>\n <Typography\n sx={{\n fontSize: '0.875rem',\n fontWeight: 400,\n mt: '20px',\n mb: '16px',\n }}\n >\n {t('templates.emptyDescription')}\n </Typography>\n <StyledLink to=\"/catalog-import\" underline=\"none\">\n {t('templates.register')}\n </StyledLink>\n </CardContent>\n </Box>\n </Grid>\n )}\n </Grid>\n </Fragment>\n </Box>\n );\n }\n\n return (\n <Card\n elevation={0}\n sx={{\n padding: '24px',\n border: muiTheme => `1px solid ${muiTheme.palette.grey[300]}`,\n overflow: 'auto',\n }}\n >\n <Typography\n variant=\"h3\"\n sx={{\n display: 'flex',\n alignItems: 'center',\n fontWeight: '500',\n fontSize: '1.5rem',\n }}\n >\n {t('templates.title')}\n </Typography>\n {content}\n {templates?.items && templates?.items.length > 0 && (\n <Box sx={{ pt: 2 }}>\n <ViewMoreLink to={catalogTemplatesLink} underline=\"always\">\n <Trans\n message=\"templates.viewAll\"\n params={{ count: templates?.totalItems?.toString() || '' }}\n />\n </ViewMoreLink>\n </Box>\n )}\n </Card>\n );\n};\n"],"names":["BackstageLink"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Trans.esm.js","sources":["../../src/components/Trans.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useTranslation } from '../hooks/useTranslation';\nimport { homepageTranslationRef } from '../translations';\n\ntype Messages = typeof homepageTranslationRef.T;\n\ninterface TransProps<TMessages extends { [key in string]: string }> {\n message: keyof TMessages;\n params?: any;\n}\n\nexport const Trans = ({ message, params }: TransProps<Messages>) => {\n const { t } = useTranslation();\n return t(message, params);\n};\n"],"names":[],"mappings":";;AA0BO,MAAM,KAAQ,GAAA,CAAC,EAAE,OAAA,EAAS,QAAmC,KAAA;AAClE,EAAM,MAAA,EAAE,CAAE,EAAA,GAAI,cAAe,EAAA;AAC7B,EAAO,OAAA,CAAA,CAAE,SAAS,MAAM,CAAA;AAC1B;;;;"}
|
|
@@ -1,30 +1,34 @@
|
|
|
1
1
|
import { useState, useEffect } from 'react';
|
|
2
|
+
import { useTranslation } from './useTranslation.esm.js';
|
|
3
|
+
import { useLanguage } from './useLanguage.esm.js';
|
|
2
4
|
|
|
3
|
-
const getGreetingByTimeZone = (timeZone) => {
|
|
4
|
-
const hours = (/* @__PURE__ */ new Date()).toLocaleString(
|
|
5
|
+
const getGreetingByTimeZone = (timeZone, t, language) => {
|
|
6
|
+
const hours = (/* @__PURE__ */ new Date()).toLocaleString(language, {
|
|
5
7
|
timeZone,
|
|
6
8
|
hour: "numeric",
|
|
7
9
|
hour12: false
|
|
8
10
|
});
|
|
9
11
|
const hour = parseInt(hours, 10);
|
|
10
12
|
if (hour < 12) {
|
|
11
|
-
return "
|
|
13
|
+
return t("onboarding.greeting.goodMorning");
|
|
12
14
|
}
|
|
13
15
|
if (hour < 18) {
|
|
14
|
-
return "
|
|
16
|
+
return t("onboarding.greeting.goodAfternoon");
|
|
15
17
|
}
|
|
16
|
-
return "
|
|
18
|
+
return t("onboarding.greeting.goodEvening");
|
|
17
19
|
};
|
|
18
20
|
const useGreeting = (timeZone) => {
|
|
21
|
+
const { t } = useTranslation();
|
|
22
|
+
const language = useLanguage();
|
|
19
23
|
const [greeting, setGreeting] = useState(
|
|
20
|
-
getGreetingByTimeZone(timeZone)
|
|
24
|
+
getGreetingByTimeZone(timeZone, t, language)
|
|
21
25
|
);
|
|
22
26
|
useEffect(() => {
|
|
23
27
|
const interval = setInterval(() => {
|
|
24
|
-
setGreeting(getGreetingByTimeZone(timeZone));
|
|
28
|
+
setGreeting(getGreetingByTimeZone(timeZone, t, language));
|
|
25
29
|
}, 6e4);
|
|
26
30
|
return () => clearInterval(interval);
|
|
27
|
-
}, [timeZone]);
|
|
31
|
+
}, [timeZone, t, language]);
|
|
28
32
|
return greeting;
|
|
29
33
|
};
|
|
30
34
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGreeting.esm.js","sources":["../../src/hooks/useGreeting.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { useState, useEffect } from 'react';\n\nconst getGreetingByTimeZone = (timeZone
|
|
1
|
+
{"version":3,"file":"useGreeting.esm.js","sources":["../../src/hooks/useGreeting.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { useState, useEffect } from 'react';\n\nimport { useTranslation } from './useTranslation';\nimport { useLanguage } from './useLanguage';\n\nconst getGreetingByTimeZone = (\n timeZone: string | undefined,\n t: any,\n language: string,\n) => {\n // Use user's language for consistent time parsing\n const hours = new Date().toLocaleString(language, {\n timeZone,\n hour: 'numeric',\n hour12: false,\n });\n const hour = parseInt(hours, 10);\n\n // Note: Time boundaries could be culturally specific in the future\n // For now, using universal 12/18 hour boundaries\n if (hour < 12) {\n return t('onboarding.greeting.goodMorning');\n }\n if (hour < 18) {\n return t('onboarding.greeting.goodAfternoon');\n }\n return t('onboarding.greeting.goodEvening');\n};\n\nconst useGreeting = (timeZone?: string) => {\n const { t } = useTranslation();\n const language = useLanguage();\n const [greeting, setGreeting] = useState<string>(\n getGreetingByTimeZone(timeZone, t, language),\n );\n\n useEffect(() => {\n const interval = setInterval(() => {\n setGreeting(getGreetingByTimeZone(timeZone, t, language));\n }, 60000); // Update every minute\n\n return () => clearInterval(interval);\n }, [timeZone, t, language]);\n\n return greeting;\n};\n\nexport default useGreeting;\n"],"names":[],"mappings":";;;;AAoBA,MAAM,qBAAwB,GAAA,CAC5B,QACA,EAAA,CAAA,EACA,QACG,KAAA;AAEH,EAAA,MAAM,KAAQ,GAAA,iBAAA,IAAI,IAAK,EAAA,EAAE,eAAe,QAAU,EAAA;AAAA,IAChD,QAAA;AAAA,IACA,IAAM,EAAA,SAAA;AAAA,IACN,MAAQ,EAAA;AAAA,GACT,CAAA;AACD,EAAM,MAAA,IAAA,GAAO,QAAS,CAAA,KAAA,EAAO,EAAE,CAAA;AAI/B,EAAA,IAAI,OAAO,EAAI,EAAA;AACb,IAAA,OAAO,EAAE,iCAAiC,CAAA;AAAA;AAE5C,EAAA,IAAI,OAAO,EAAI,EAAA;AACb,IAAA,OAAO,EAAE,mCAAmC,CAAA;AAAA;AAE9C,EAAA,OAAO,EAAE,iCAAiC,CAAA;AAC5C,CAAA;AAEM,MAAA,WAAA,GAAc,CAAC,QAAsB,KAAA;AACzC,EAAM,MAAA,EAAE,CAAE,EAAA,GAAI,cAAe,EAAA;AAC7B,EAAA,MAAM,WAAW,WAAY,EAAA;AAC7B,EAAM,MAAA,CAAC,QAAU,EAAA,WAAW,CAAI,GAAA,QAAA;AAAA,IAC9B,qBAAA,CAAsB,QAAU,EAAA,CAAA,EAAG,QAAQ;AAAA,GAC7C;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAM,MAAA,QAAA,GAAW,YAAY,MAAM;AACjC,MAAA,WAAA,CAAY,qBAAsB,CAAA,QAAA,EAAU,CAAG,EAAA,QAAQ,CAAC,CAAA;AAAA,OACvD,GAAK,CAAA;AAER,IAAO,OAAA,MAAM,cAAc,QAAQ,CAAA;AAAA,GAClC,EAAA,CAAC,QAAU,EAAA,CAAA,EAAG,QAAQ,CAAC,CAAA;AAE1B,EAAO,OAAA,QAAA;AACT;;;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { useApi } from '@backstage/core-plugin-api';
|
|
2
|
+
import { appLanguageApiRef } from '@backstage/core-plugin-api/alpha';
|
|
3
|
+
|
|
4
|
+
const useLanguage = () => useApi(appLanguageApiRef).getLanguage().language;
|
|
5
|
+
|
|
6
|
+
export { useLanguage };
|
|
7
|
+
//# sourceMappingURL=useLanguage.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLanguage.esm.js","sources":["../../src/hooks/useLanguage.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useApi } from '@backstage/core-plugin-api';\nimport { appLanguageApiRef } from '@backstage/core-plugin-api/alpha';\n\nexport const useLanguage = (): string =>\n useApi(appLanguageApiRef).getLanguage().language;\n"],"names":[],"mappings":";;;AAmBO,MAAM,cAAc,MACzB,MAAA,CAAO,iBAAiB,CAAA,CAAE,aAAc,CAAA;;;;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { useTranslationRef } from '@backstage/core-plugin-api/alpha';
|
|
2
|
+
import '../translations/index.esm.js';
|
|
3
|
+
import { homepageTranslationRef } from '../translations/ref.esm.js';
|
|
4
|
+
|
|
5
|
+
const useTranslation = () => useTranslationRef(homepageTranslationRef);
|
|
6
|
+
|
|
7
|
+
export { useTranslation };
|
|
8
|
+
//# sourceMappingURL=useTranslation.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTranslation.esm.js","sources":["../../src/hooks/useTranslation.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n useTranslationRef,\n TranslationFunction,\n} from '@backstage/core-plugin-api/alpha';\n\nimport { homepageTranslationRef } from '../translations';\n\nexport const useTranslation = (): {\n t: TranslationFunction<typeof homepageTranslationRef.T>;\n} => useTranslationRef(homepageTranslationRef);\n"],"names":[],"mappings":";;;;AAuBa,MAAA,cAAA,GAAiB,MAEzB,iBAAA,CAAkB,sBAAsB;;;;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { ClockConfig, StarredEntitiesProps, VisitedByTypeProps, FeaturedDocsCard
|
|
|
2
2
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
3
3
|
import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
|
|
4
4
|
import { ComponentType } from 'react';
|
|
5
|
+
import * as _backstage_core_plugin_api_alpha from '@backstage/core-plugin-api/alpha';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* @public
|
|
@@ -219,4 +220,59 @@ declare const EntitySection: () => react_jsx_runtime.JSX.Element;
|
|
|
219
220
|
*/
|
|
220
221
|
declare const TemplateSection: () => react_jsx_runtime.JSX.Element;
|
|
221
222
|
|
|
222
|
-
|
|
223
|
+
/**
|
|
224
|
+
* Reference translation for Homepage.
|
|
225
|
+
* Defines all the translation keys used in the plugin.
|
|
226
|
+
* @public
|
|
227
|
+
*/
|
|
228
|
+
declare const homepageTranslationRef: _backstage_core_plugin_api_alpha.TranslationRef<"plugin.homepage", {
|
|
229
|
+
readonly "search.placeholder": string;
|
|
230
|
+
readonly "header.local": string;
|
|
231
|
+
readonly "header.welcome": string;
|
|
232
|
+
readonly "header.welcomePersonalized": string;
|
|
233
|
+
readonly "templates.error": string;
|
|
234
|
+
readonly "templates.title": string;
|
|
235
|
+
readonly "templates.empty": string;
|
|
236
|
+
readonly "templates.register": string;
|
|
237
|
+
readonly "templates.fetchError": string;
|
|
238
|
+
readonly "templates.emptyDescription": string;
|
|
239
|
+
readonly "templates.viewAll": string;
|
|
240
|
+
readonly "entities.error": string;
|
|
241
|
+
readonly "entities.title": string;
|
|
242
|
+
readonly "entities.close": string;
|
|
243
|
+
readonly "entities.description": string;
|
|
244
|
+
readonly "entities.empty": string;
|
|
245
|
+
readonly "entities.register": string;
|
|
246
|
+
readonly "entities.fetchError": string;
|
|
247
|
+
readonly "entities.emptyDescription": string;
|
|
248
|
+
readonly "entities.viewAll": string;
|
|
249
|
+
readonly "homePage.empty": string;
|
|
250
|
+
readonly "quickAccess.error": string;
|
|
251
|
+
readonly "quickAccess.title": string;
|
|
252
|
+
readonly "quickAccess.fetchError": string;
|
|
253
|
+
readonly "featuredDocs.learnMore": string;
|
|
254
|
+
readonly "onboarding.guest": string;
|
|
255
|
+
readonly "onboarding.greeting.goodMorning": string;
|
|
256
|
+
readonly "onboarding.greeting.goodAfternoon": string;
|
|
257
|
+
readonly "onboarding.greeting.goodEvening": string;
|
|
258
|
+
readonly "onboarding.getStarted.title": string;
|
|
259
|
+
readonly "onboarding.getStarted.ariaLabel": string;
|
|
260
|
+
readonly "onboarding.getStarted.description": string;
|
|
261
|
+
readonly "onboarding.getStarted.buttonText": string;
|
|
262
|
+
readonly "onboarding.explore.title": string;
|
|
263
|
+
readonly "onboarding.explore.ariaLabel": string;
|
|
264
|
+
readonly "onboarding.explore.description": string;
|
|
265
|
+
readonly "onboarding.explore.buttonText": string;
|
|
266
|
+
readonly "onboarding.learn.title": string;
|
|
267
|
+
readonly "onboarding.learn.ariaLabel": string;
|
|
268
|
+
readonly "onboarding.learn.description": string;
|
|
269
|
+
readonly "onboarding.learn.buttonText": string;
|
|
270
|
+
}>;
|
|
271
|
+
|
|
272
|
+
/**
|
|
273
|
+
* The translation resource for the Homepage plugin.
|
|
274
|
+
* @public
|
|
275
|
+
*/
|
|
276
|
+
declare const homepageTranslations: _backstage_core_plugin_api_alpha.TranslationResource<"plugin.homepage">;
|
|
277
|
+
|
|
278
|
+
export { Breakpoint, CatalogStarredEntitiesCard, DynamicCustomizableHomePage, type DynamicCustomizableHomePageProps, DynamicHomePage, type DynamicHomePageProps, EntitySection, FeaturedDocsCard, Headline, type HeadlineProps, type HomePageCardMountPoint, type HomePageCardMountPointConfig, JokeCard, type Layout, type LocalClockProps, Markdown, MarkdownCard, type MarkdownCardProps, type MarkdownProps, OnboardingSection, Placeholder, type PlaceholderProps, QuickAccessCard, type QuickAccessCardProps, RecentlyVisitedCard, SearchBar, type SearchBarProps, TemplateSection, TopVisitedCard, VisitListener, WorldClock, type WorldClockProps, dynamicHomePagePlugin, homepageTranslationRef, homepageTranslations };
|
package/dist/index.esm.js
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
export { CatalogStarredEntitiesCard, DynamicCustomizableHomePage, DynamicHomePage, EntitySection, FeaturedDocsCard, Headline, JokeCard, Markdown, MarkdownCard, OnboardingSection, Placeholder, QuickAccessCard, RecentlyVisitedCard, SearchBar, TemplateSection, TopVisitedCard, VisitListener, WorldClock, dynamicHomePagePlugin } from './plugin.esm.js';
|
|
2
|
+
export { homepageTranslations } from './translations/index.esm.js';
|
|
3
|
+
export { homepageTranslationRef } from './translations/ref.esm.js';
|
|
2
4
|
//# sourceMappingURL=index.esm.js.map
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { createTranslationMessages } from '@backstage/core-plugin-api/alpha';
|
|
2
|
+
import { homepageTranslationRef } from './ref.esm.js';
|
|
3
|
+
|
|
4
|
+
const homepageTranslationDe = createTranslationMessages({
|
|
5
|
+
ref: homepageTranslationRef,
|
|
6
|
+
messages: {
|
|
7
|
+
"header.welcome": "Willkommen zur\xFCck!",
|
|
8
|
+
"header.welcomePersonalized": "Willkommen zur\xFCck, {{name}}!",
|
|
9
|
+
"header.local": "Lokal",
|
|
10
|
+
"homePage.empty": "Keine Homepage-Karten (Einbindungspunkte) konfiguriert oder gefunden.",
|
|
11
|
+
"search.placeholder": "Suchen",
|
|
12
|
+
"quickAccess.title": "Schnellzugriff",
|
|
13
|
+
"quickAccess.fetchError": "Daten konnten nicht abgerufen werden.",
|
|
14
|
+
"quickAccess.error": "Unbekannter Fehler",
|
|
15
|
+
"featuredDocs.learnMore": " Mehr erfahren",
|
|
16
|
+
"templates.title": "Vorlagen erkunden",
|
|
17
|
+
"templates.fetchError": "Daten konnten nicht abgerufen werden.",
|
|
18
|
+
"templates.error": "Unbekannter Fehler",
|
|
19
|
+
"templates.empty": "Noch keine Vorlagen hinzugef\xFCgt",
|
|
20
|
+
"templates.emptyDescription": "Sobald Vorlagen hinzugef\xFCgt werden, wird dieser Bereich relevante Inhalte anzeigen, die auf Ihre Erfahrung zugeschnitten sind.",
|
|
21
|
+
"templates.register": "Vorlage registrieren",
|
|
22
|
+
"templates.viewAll": "Alle {{count}} Vorlagen anzeigen",
|
|
23
|
+
"onboarding.greeting.goodMorning": "Guten Morgen",
|
|
24
|
+
"onboarding.greeting.goodAfternoon": "Guten Tag",
|
|
25
|
+
"onboarding.greeting.goodEvening": "Guten Abend",
|
|
26
|
+
"onboarding.guest": "Gast",
|
|
27
|
+
"onboarding.getStarted.title": "Erste Schritte",
|
|
28
|
+
"onboarding.getStarted.description": "Lernen Sie Red Hat Developer Hub kennen.",
|
|
29
|
+
"onboarding.getStarted.buttonText": "Dokumentation lesen",
|
|
30
|
+
"onboarding.getStarted.ariaLabel": "Dokumentation lesen (\xF6ffnet in neuem Tab)",
|
|
31
|
+
"onboarding.explore.title": "Erkunden",
|
|
32
|
+
"onboarding.explore.description": "Erkunden Sie Komponenten, APIs und Vorlagen.",
|
|
33
|
+
"onboarding.explore.buttonText": "Zum Katalog gehen",
|
|
34
|
+
"onboarding.explore.ariaLabel": "Zum Katalog gehen",
|
|
35
|
+
"onboarding.learn.title": "Lernen",
|
|
36
|
+
"onboarding.learn.description": "Erkunden und entwickeln Sie neue F\xE4higkeiten.",
|
|
37
|
+
"onboarding.learn.buttonText": "Zu Lernpfaden gehen",
|
|
38
|
+
"onboarding.learn.ariaLabel": "Zu Lernpfaden gehen",
|
|
39
|
+
"entities.title": "Erkunden Sie Ihren Software-Katalog",
|
|
40
|
+
"entities.fetchError": "Daten konnten nicht abgerufen werden.",
|
|
41
|
+
"entities.error": "Unbekannter Fehler",
|
|
42
|
+
"entities.description": "Durchsuchen Sie die Systeme, Komponenten, Ressourcen und APIs, die in Ihrer Organisation verf\xFCgbar sind.",
|
|
43
|
+
"entities.close": "schlie\xDFen",
|
|
44
|
+
"entities.empty": "Noch kein Software-Katalog hinzugef\xFCgt",
|
|
45
|
+
"entities.emptyDescription": "Sobald Software-Kataloge hinzugef\xFCgt werden, wird dieser Bereich relevante Inhalte anzeigen, die auf Ihre Erfahrung zugeschnitten sind.",
|
|
46
|
+
"entities.register": "Komponente registrieren",
|
|
47
|
+
"entities.viewAll": "Alle {{count}} Katalog-Entit\xE4ten anzeigen"
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
export { homepageTranslationDe as default };
|
|
52
|
+
//# sourceMappingURL=de.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"de.esm.js","sources":["../../src/translations/de.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createTranslationMessages } from '@backstage/core-plugin-api/alpha';\nimport { homepageTranslationRef } from './ref';\n\n/**\n * German translation for Homepage.\n * @public\n */\nconst homepageTranslationDe = createTranslationMessages({\n ref: homepageTranslationRef,\n messages: {\n 'header.welcome': 'Willkommen zurück!',\n 'header.welcomePersonalized': 'Willkommen zurück, {{name}}!',\n 'header.local': 'Lokal',\n 'homePage.empty':\n 'Keine Homepage-Karten (Einbindungspunkte) konfiguriert oder gefunden.',\n 'search.placeholder': 'Suchen',\n 'quickAccess.title': 'Schnellzugriff',\n 'quickAccess.fetchError': 'Daten konnten nicht abgerufen werden.',\n 'quickAccess.error': 'Unbekannter Fehler',\n 'featuredDocs.learnMore': ' Mehr erfahren',\n 'templates.title': 'Vorlagen erkunden',\n 'templates.fetchError': 'Daten konnten nicht abgerufen werden.',\n 'templates.error': 'Unbekannter Fehler',\n 'templates.empty': 'Noch keine Vorlagen hinzugefügt',\n 'templates.emptyDescription':\n 'Sobald Vorlagen hinzugefügt werden, wird dieser Bereich relevante Inhalte anzeigen, die auf Ihre Erfahrung zugeschnitten sind.',\n 'templates.register': 'Vorlage registrieren',\n 'templates.viewAll': 'Alle {{count}} Vorlagen anzeigen',\n 'onboarding.greeting.goodMorning': 'Guten Morgen',\n 'onboarding.greeting.goodAfternoon': 'Guten Tag',\n 'onboarding.greeting.goodEvening': 'Guten Abend',\n 'onboarding.guest': 'Gast',\n 'onboarding.getStarted.title': 'Erste Schritte',\n 'onboarding.getStarted.description':\n 'Lernen Sie Red Hat Developer Hub kennen.',\n 'onboarding.getStarted.buttonText': 'Dokumentation lesen',\n 'onboarding.getStarted.ariaLabel':\n 'Dokumentation lesen (öffnet in neuem Tab)',\n 'onboarding.explore.title': 'Erkunden',\n 'onboarding.explore.description':\n 'Erkunden Sie Komponenten, APIs und Vorlagen.',\n 'onboarding.explore.buttonText': 'Zum Katalog gehen',\n 'onboarding.explore.ariaLabel': 'Zum Katalog gehen',\n 'onboarding.learn.title': 'Lernen',\n 'onboarding.learn.description':\n 'Erkunden und entwickeln Sie neue Fähigkeiten.',\n 'onboarding.learn.buttonText': 'Zu Lernpfaden gehen',\n 'onboarding.learn.ariaLabel': 'Zu Lernpfaden gehen',\n 'entities.title': 'Erkunden Sie Ihren Software-Katalog',\n 'entities.fetchError': 'Daten konnten nicht abgerufen werden.',\n 'entities.error': 'Unbekannter Fehler',\n 'entities.description':\n 'Durchsuchen Sie die Systeme, Komponenten, Ressourcen und APIs, die in Ihrer Organisation verfügbar sind.',\n 'entities.close': 'schließen',\n 'entities.empty': 'Noch kein Software-Katalog hinzugefügt',\n 'entities.emptyDescription':\n 'Sobald Software-Kataloge hinzugefügt werden, wird dieser Bereich relevante Inhalte anzeigen, die auf Ihre Erfahrung zugeschnitten sind.',\n 'entities.register': 'Komponente registrieren',\n 'entities.viewAll': 'Alle {{count}} Katalog-Entitäten anzeigen',\n },\n});\n\nexport default homepageTranslationDe;\n"],"names":[],"mappings":";;;AAuBA,MAAM,wBAAwB,yBAA0B,CAAA;AAAA,EACtD,GAAK,EAAA,sBAAA;AAAA,EACL,QAAU,EAAA;AAAA,IACR,gBAAkB,EAAA,uBAAA;AAAA,IAClB,4BAA8B,EAAA,iCAAA;AAAA,IAC9B,cAAgB,EAAA,OAAA;AAAA,IAChB,gBACE,EAAA,uEAAA;AAAA,IACF,oBAAsB,EAAA,QAAA;AAAA,IACtB,mBAAqB,EAAA,gBAAA;AAAA,IACrB,wBAA0B,EAAA,uCAAA;AAAA,IAC1B,mBAAqB,EAAA,oBAAA;AAAA,IACrB,wBAA0B,EAAA,gBAAA;AAAA,IAC1B,iBAAmB,EAAA,mBAAA;AAAA,IACnB,sBAAwB,EAAA,uCAAA;AAAA,IACxB,iBAAmB,EAAA,oBAAA;AAAA,IACnB,iBAAmB,EAAA,oCAAA;AAAA,IACnB,4BACE,EAAA,mIAAA;AAAA,IACF,oBAAsB,EAAA,sBAAA;AAAA,IACtB,mBAAqB,EAAA,kCAAA;AAAA,IACrB,iCAAmC,EAAA,cAAA;AAAA,IACnC,mCAAqC,EAAA,WAAA;AAAA,IACrC,iCAAmC,EAAA,aAAA;AAAA,IACnC,kBAAoB,EAAA,MAAA;AAAA,IACpB,6BAA+B,EAAA,gBAAA;AAAA,IAC/B,mCACE,EAAA,0CAAA;AAAA,IACF,kCAAoC,EAAA,qBAAA;AAAA,IACpC,iCACE,EAAA,8CAAA;AAAA,IACF,0BAA4B,EAAA,UAAA;AAAA,IAC5B,gCACE,EAAA,8CAAA;AAAA,IACF,+BAAiC,EAAA,mBAAA;AAAA,IACjC,8BAAgC,EAAA,mBAAA;AAAA,IAChC,wBAA0B,EAAA,QAAA;AAAA,IAC1B,8BACE,EAAA,kDAAA;AAAA,IACF,6BAA+B,EAAA,qBAAA;AAAA,IAC/B,4BAA8B,EAAA,qBAAA;AAAA,IAC9B,gBAAkB,EAAA,qCAAA;AAAA,IAClB,qBAAuB,EAAA,uCAAA;AAAA,IACvB,gBAAkB,EAAA,oBAAA;AAAA,IAClB,sBACE,EAAA,6GAAA;AAAA,IACF,gBAAkB,EAAA,cAAA;AAAA,IAClB,gBAAkB,EAAA,2CAAA;AAAA,IAClB,2BACE,EAAA,4IAAA;AAAA,IACF,mBAAqB,EAAA,yBAAA;AAAA,IACrB,kBAAoB,EAAA;AAAA;AAExB,CAAC;;;;"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { createTranslationMessages } from '@backstage/core-plugin-api/alpha';
|
|
2
|
+
import { homepageTranslationRef } from './ref.esm.js';
|
|
3
|
+
|
|
4
|
+
const homepageTranslationEs = createTranslationMessages({
|
|
5
|
+
ref: homepageTranslationRef,
|
|
6
|
+
messages: {
|
|
7
|
+
"header.welcome": "\xA1Bienvenido de vuelta!",
|
|
8
|
+
"header.welcomePersonalized": "\xA1Bienvenido de vuelta, {{name}}!",
|
|
9
|
+
"header.local": "Local",
|
|
10
|
+
"homePage.empty": "No se configuraron o encontraron tarjetas de p\xE1gina de inicio (puntos de montaje).",
|
|
11
|
+
"search.placeholder": "Buscar",
|
|
12
|
+
"quickAccess.title": "Acceso r\xE1pido",
|
|
13
|
+
"quickAccess.fetchError": "No se pudieron obtener los datos.",
|
|
14
|
+
"quickAccess.error": "Error desconocido",
|
|
15
|
+
"featuredDocs.learnMore": " Saber m\xE1s",
|
|
16
|
+
"templates.title": "Explorar plantillas",
|
|
17
|
+
"templates.fetchError": "No se pudieron obtener los datos.",
|
|
18
|
+
"templates.error": "Error desconocido",
|
|
19
|
+
"templates.empty": "A\xFAn no se han a\xF1adido plantillas",
|
|
20
|
+
"templates.emptyDescription": "Una vez que se agreguen plantillas, este espacio mostrar\xE1 contenido relevante adaptado a tu experiencia.",
|
|
21
|
+
"templates.register": "Registrar una plantilla",
|
|
22
|
+
"templates.viewAll": "Ver todas las {{count}} plantillas",
|
|
23
|
+
"onboarding.greeting.goodMorning": "Buenos d\xEDas",
|
|
24
|
+
"onboarding.greeting.goodAfternoon": "Buenas tardes",
|
|
25
|
+
"onboarding.greeting.goodEvening": "Buenas noches",
|
|
26
|
+
"onboarding.guest": "Invitado",
|
|
27
|
+
"onboarding.getStarted.title": "Comenzar",
|
|
28
|
+
"onboarding.getStarted.description": "Aprende sobre Red Hat Developer Hub.",
|
|
29
|
+
"onboarding.getStarted.buttonText": "Leer documentaci\xF3n",
|
|
30
|
+
"onboarding.getStarted.ariaLabel": "Leer documentaci\xF3n (se abre en una nueva pesta\xF1a)",
|
|
31
|
+
"onboarding.explore.title": "Explorar",
|
|
32
|
+
"onboarding.explore.description": "Explora componentes, APIs y plantillas.",
|
|
33
|
+
"onboarding.explore.buttonText": "Ir al cat\xE1logo",
|
|
34
|
+
"onboarding.explore.ariaLabel": "Ir al cat\xE1logo",
|
|
35
|
+
"onboarding.learn.title": "Aprender",
|
|
36
|
+
"onboarding.learn.description": "Explora y desarrolla nuevas habilidades.",
|
|
37
|
+
"onboarding.learn.buttonText": "Ir a rutas de aprendizaje",
|
|
38
|
+
"onboarding.learn.ariaLabel": "Ir a rutas de aprendizaje",
|
|
39
|
+
"entities.title": "Explora tu cat\xE1logo de software",
|
|
40
|
+
"entities.fetchError": "No se pudieron obtener los datos.",
|
|
41
|
+
"entities.error": "Error desconocido",
|
|
42
|
+
"entities.description": "Explora los sistemas, componentes, recursos y APIs disponibles en tu organizaci\xF3n.",
|
|
43
|
+
"entities.close": "cerrar",
|
|
44
|
+
"entities.empty": "A\xFAn no se ha a\xF1adido cat\xE1logo de software",
|
|
45
|
+
"entities.emptyDescription": "Una vez que se agreguen cat\xE1logos de software, este espacio mostrar\xE1 contenido relevante adaptado a tu experiencia.",
|
|
46
|
+
"entities.register": "Registrar un componente",
|
|
47
|
+
"entities.viewAll": "Ver todas las {{count}} entidades del cat\xE1logo"
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
export { homepageTranslationEs as default };
|
|
52
|
+
//# sourceMappingURL=es.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"es.esm.js","sources":["../../src/translations/es.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createTranslationMessages } from '@backstage/core-plugin-api/alpha';\nimport { homepageTranslationRef } from './ref';\n\n/**\n * Spanish translation for Homepage.\n * @public\n */\nconst homepageTranslationEs = createTranslationMessages({\n ref: homepageTranslationRef,\n messages: {\n 'header.welcome': '¡Bienvenido de vuelta!',\n 'header.welcomePersonalized': '¡Bienvenido de vuelta, {{name}}!',\n 'header.local': 'Local',\n 'homePage.empty':\n 'No se configuraron o encontraron tarjetas de página de inicio (puntos de montaje).',\n 'search.placeholder': 'Buscar',\n 'quickAccess.title': 'Acceso rápido',\n 'quickAccess.fetchError': 'No se pudieron obtener los datos.',\n 'quickAccess.error': 'Error desconocido',\n 'featuredDocs.learnMore': ' Saber más',\n 'templates.title': 'Explorar plantillas',\n 'templates.fetchError': 'No se pudieron obtener los datos.',\n 'templates.error': 'Error desconocido',\n 'templates.empty': 'Aún no se han añadido plantillas',\n 'templates.emptyDescription':\n 'Una vez que se agreguen plantillas, este espacio mostrará contenido relevante adaptado a tu experiencia.',\n 'templates.register': 'Registrar una plantilla',\n 'templates.viewAll': 'Ver todas las {{count}} plantillas',\n 'onboarding.greeting.goodMorning': 'Buenos días',\n 'onboarding.greeting.goodAfternoon': 'Buenas tardes',\n 'onboarding.greeting.goodEvening': 'Buenas noches',\n 'onboarding.guest': 'Invitado',\n 'onboarding.getStarted.title': 'Comenzar',\n 'onboarding.getStarted.description': 'Aprende sobre Red Hat Developer Hub.',\n 'onboarding.getStarted.buttonText': 'Leer documentación',\n 'onboarding.getStarted.ariaLabel':\n 'Leer documentación (se abre en una nueva pestaña)',\n 'onboarding.explore.title': 'Explorar',\n 'onboarding.explore.description': 'Explora componentes, APIs y plantillas.',\n 'onboarding.explore.buttonText': 'Ir al catálogo',\n 'onboarding.explore.ariaLabel': 'Ir al catálogo',\n 'onboarding.learn.title': 'Aprender',\n 'onboarding.learn.description': 'Explora y desarrolla nuevas habilidades.',\n 'onboarding.learn.buttonText': 'Ir a rutas de aprendizaje',\n 'onboarding.learn.ariaLabel': 'Ir a rutas de aprendizaje',\n 'entities.title': 'Explora tu catálogo de software',\n 'entities.fetchError': 'No se pudieron obtener los datos.',\n 'entities.error': 'Error desconocido',\n 'entities.description':\n 'Explora los sistemas, componentes, recursos y APIs disponibles en tu organización.',\n 'entities.close': 'cerrar',\n 'entities.empty': 'Aún no se ha añadido catálogo de software',\n 'entities.emptyDescription':\n 'Una vez que se agreguen catálogos de software, este espacio mostrará contenido relevante adaptado a tu experiencia.',\n 'entities.register': 'Registrar un componente',\n 'entities.viewAll': 'Ver todas las {{count}} entidades del catálogo',\n },\n});\n\nexport default homepageTranslationEs;\n"],"names":[],"mappings":";;;AAuBA,MAAM,wBAAwB,yBAA0B,CAAA;AAAA,EACtD,GAAK,EAAA,sBAAA;AAAA,EACL,QAAU,EAAA;AAAA,IACR,gBAAkB,EAAA,2BAAA;AAAA,IAClB,4BAA8B,EAAA,qCAAA;AAAA,IAC9B,cAAgB,EAAA,OAAA;AAAA,IAChB,gBACE,EAAA,uFAAA;AAAA,IACF,oBAAsB,EAAA,QAAA;AAAA,IACtB,mBAAqB,EAAA,kBAAA;AAAA,IACrB,wBAA0B,EAAA,mCAAA;AAAA,IAC1B,mBAAqB,EAAA,mBAAA;AAAA,IACrB,wBAA0B,EAAA,eAAA;AAAA,IAC1B,iBAAmB,EAAA,qBAAA;AAAA,IACnB,sBAAwB,EAAA,mCAAA;AAAA,IACxB,iBAAmB,EAAA,mBAAA;AAAA,IACnB,iBAAmB,EAAA,wCAAA;AAAA,IACnB,4BACE,EAAA,6GAAA;AAAA,IACF,oBAAsB,EAAA,yBAAA;AAAA,IACtB,mBAAqB,EAAA,oCAAA;AAAA,IACrB,iCAAmC,EAAA,gBAAA;AAAA,IACnC,mCAAqC,EAAA,eAAA;AAAA,IACrC,iCAAmC,EAAA,eAAA;AAAA,IACnC,kBAAoB,EAAA,UAAA;AAAA,IACpB,6BAA+B,EAAA,UAAA;AAAA,IAC/B,mCAAqC,EAAA,sCAAA;AAAA,IACrC,kCAAoC,EAAA,uBAAA;AAAA,IACpC,iCACE,EAAA,yDAAA;AAAA,IACF,0BAA4B,EAAA,UAAA;AAAA,IAC5B,gCAAkC,EAAA,yCAAA;AAAA,IAClC,+BAAiC,EAAA,mBAAA;AAAA,IACjC,8BAAgC,EAAA,mBAAA;AAAA,IAChC,wBAA0B,EAAA,UAAA;AAAA,IAC1B,8BAAgC,EAAA,0CAAA;AAAA,IAChC,6BAA+B,EAAA,2BAAA;AAAA,IAC/B,4BAA8B,EAAA,2BAAA;AAAA,IAC9B,gBAAkB,EAAA,oCAAA;AAAA,IAClB,qBAAuB,EAAA,mCAAA;AAAA,IACvB,gBAAkB,EAAA,mBAAA;AAAA,IAClB,sBACE,EAAA,uFAAA;AAAA,IACF,gBAAkB,EAAA,QAAA;AAAA,IAClB,gBAAkB,EAAA,oDAAA;AAAA,IAClB,2BACE,EAAA,2HAAA;AAAA,IACF,mBAAqB,EAAA,yBAAA;AAAA,IACrB,kBAAoB,EAAA;AAAA;AAExB,CAAC;;;;"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { createTranslationMessages } from '@backstage/core-plugin-api/alpha';
|
|
2
|
+
import { homepageTranslationRef } from './ref.esm.js';
|
|
3
|
+
|
|
4
|
+
const homepageTranslationFr = createTranslationMessages({
|
|
5
|
+
ref: homepageTranslationRef,
|
|
6
|
+
messages: {
|
|
7
|
+
"header.welcome": "Bon retour !",
|
|
8
|
+
"header.welcomePersonalized": "Bon retour, {{name}} !",
|
|
9
|
+
"header.local": "Local",
|
|
10
|
+
"homePage.empty": "Aucune carte de page d'accueil (points de montage) configur\xE9e ou trouv\xE9e.",
|
|
11
|
+
"search.placeholder": "Rechercher",
|
|
12
|
+
"quickAccess.title": "Acc\xE8s rapide",
|
|
13
|
+
"quickAccess.fetchError": "Impossible de r\xE9cup\xE9rer les donn\xE9es.",
|
|
14
|
+
"quickAccess.error": "Erreur inconnue",
|
|
15
|
+
"featuredDocs.learnMore": " En savoir plus",
|
|
16
|
+
"templates.title": "Explorer les mod\xE8les",
|
|
17
|
+
"templates.fetchError": "Impossible de r\xE9cup\xE9rer les donn\xE9es.",
|
|
18
|
+
"templates.error": "Erreur inconnue",
|
|
19
|
+
"templates.empty": "Aucun mod\xE8le ajout\xE9 pour le moment",
|
|
20
|
+
"templates.emptyDescription": "Une fois les mod\xE8les ajout\xE9s, cet espace pr\xE9sentera du contenu pertinent adapt\xE9 \xE0 votre exp\xE9rience.",
|
|
21
|
+
"templates.register": "Enregistrer un mod\xE8le",
|
|
22
|
+
"templates.viewAll": "Voir tous les {{count}} mod\xE8les",
|
|
23
|
+
"onboarding.greeting.goodMorning": "Bonjour",
|
|
24
|
+
"onboarding.greeting.goodAfternoon": "Bon apr\xE8s-midi",
|
|
25
|
+
"onboarding.greeting.goodEvening": "Bonsoir",
|
|
26
|
+
"onboarding.guest": "Invit\xE9",
|
|
27
|
+
"onboarding.getStarted.title": "Commencer",
|
|
28
|
+
"onboarding.getStarted.description": "D\xE9couvrez Red Hat Developer Hub.",
|
|
29
|
+
"onboarding.getStarted.buttonText": "Lire la documentation",
|
|
30
|
+
"onboarding.getStarted.ariaLabel": "Lire la documentation (ouvre dans un nouvel onglet)",
|
|
31
|
+
"onboarding.explore.title": "Explorer",
|
|
32
|
+
"onboarding.explore.description": "Explorez les composants, APIs et mod\xE8les.",
|
|
33
|
+
"onboarding.explore.buttonText": "Aller au catalogue",
|
|
34
|
+
"onboarding.explore.ariaLabel": "Aller au catalogue",
|
|
35
|
+
"onboarding.learn.title": "Apprendre",
|
|
36
|
+
"onboarding.learn.description": "Explorez et d\xE9veloppez de nouvelles comp\xE9tences.",
|
|
37
|
+
"onboarding.learn.buttonText": "Aller aux parcours d'apprentissage",
|
|
38
|
+
"onboarding.learn.ariaLabel": "Aller aux parcours d'apprentissage",
|
|
39
|
+
"entities.title": "Explorez votre catalogue logiciel",
|
|
40
|
+
"entities.fetchError": "Impossible de r\xE9cup\xE9rer les donn\xE9es.",
|
|
41
|
+
"entities.error": "Erreur inconnue",
|
|
42
|
+
"entities.description": "Parcourez les syst\xE8mes, composants, ressources et APIs disponibles dans votre organisation.",
|
|
43
|
+
"entities.close": "fermer",
|
|
44
|
+
"entities.empty": "Aucun catalogue logiciel ajout\xE9 pour le moment",
|
|
45
|
+
"entities.emptyDescription": "Une fois les catalogues logiciels ajout\xE9s, cet espace pr\xE9sentera du contenu pertinent adapt\xE9 \xE0 votre exp\xE9rience.",
|
|
46
|
+
"entities.register": "Enregistrer un composant",
|
|
47
|
+
"entities.viewAll": "Voir toutes les {{count}} entit\xE9s du catalogue"
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
export { homepageTranslationFr as default };
|
|
52
|
+
//# sourceMappingURL=fr.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fr.esm.js","sources":["../../src/translations/fr.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createTranslationMessages } from '@backstage/core-plugin-api/alpha';\nimport { homepageTranslationRef } from './ref';\n\n/**\n * French translation for Homepage.\n * @public\n */\nconst homepageTranslationFr = createTranslationMessages({\n ref: homepageTranslationRef,\n messages: {\n 'header.welcome': 'Bon retour !',\n 'header.welcomePersonalized': 'Bon retour, {{name}} !',\n 'header.local': 'Local',\n 'homePage.empty':\n \"Aucune carte de page d'accueil (points de montage) configurée ou trouvée.\",\n 'search.placeholder': 'Rechercher',\n 'quickAccess.title': 'Accès rapide',\n 'quickAccess.fetchError': 'Impossible de récupérer les données.',\n 'quickAccess.error': 'Erreur inconnue',\n 'featuredDocs.learnMore': ' En savoir plus',\n 'templates.title': 'Explorer les modèles',\n 'templates.fetchError': 'Impossible de récupérer les données.',\n 'templates.error': 'Erreur inconnue',\n 'templates.empty': 'Aucun modèle ajouté pour le moment',\n 'templates.emptyDescription':\n 'Une fois les modèles ajoutés, cet espace présentera du contenu pertinent adapté à votre expérience.',\n 'templates.register': 'Enregistrer un modèle',\n 'templates.viewAll': 'Voir tous les {{count}} modèles',\n 'onboarding.greeting.goodMorning': 'Bonjour',\n 'onboarding.greeting.goodAfternoon': 'Bon après-midi',\n 'onboarding.greeting.goodEvening': 'Bonsoir',\n 'onboarding.guest': 'Invité',\n 'onboarding.getStarted.title': 'Commencer',\n 'onboarding.getStarted.description': 'Découvrez Red Hat Developer Hub.',\n 'onboarding.getStarted.buttonText': 'Lire la documentation',\n 'onboarding.getStarted.ariaLabel':\n 'Lire la documentation (ouvre dans un nouvel onglet)',\n 'onboarding.explore.title': 'Explorer',\n 'onboarding.explore.description':\n 'Explorez les composants, APIs et modèles.',\n 'onboarding.explore.buttonText': 'Aller au catalogue',\n 'onboarding.explore.ariaLabel': 'Aller au catalogue',\n 'onboarding.learn.title': 'Apprendre',\n 'onboarding.learn.description':\n 'Explorez et développez de nouvelles compétences.',\n 'onboarding.learn.buttonText': \"Aller aux parcours d'apprentissage\",\n 'onboarding.learn.ariaLabel': \"Aller aux parcours d'apprentissage\",\n 'entities.title': 'Explorez votre catalogue logiciel',\n 'entities.fetchError': 'Impossible de récupérer les données.',\n 'entities.error': 'Erreur inconnue',\n 'entities.description':\n 'Parcourez les systèmes, composants, ressources et APIs disponibles dans votre organisation.',\n 'entities.close': 'fermer',\n 'entities.empty': 'Aucun catalogue logiciel ajouté pour le moment',\n 'entities.emptyDescription':\n 'Une fois les catalogues logiciels ajoutés, cet espace présentera du contenu pertinent adapté à votre expérience.',\n 'entities.register': 'Enregistrer un composant',\n 'entities.viewAll': 'Voir toutes les {{count}} entités du catalogue',\n },\n});\n\nexport default homepageTranslationFr;\n"],"names":[],"mappings":";;;AAuBA,MAAM,wBAAwB,yBAA0B,CAAA;AAAA,EACtD,GAAK,EAAA,sBAAA;AAAA,EACL,QAAU,EAAA;AAAA,IACR,gBAAkB,EAAA,cAAA;AAAA,IAClB,4BAA8B,EAAA,wBAAA;AAAA,IAC9B,cAAgB,EAAA,OAAA;AAAA,IAChB,gBACE,EAAA,iFAAA;AAAA,IACF,oBAAsB,EAAA,YAAA;AAAA,IACtB,mBAAqB,EAAA,iBAAA;AAAA,IACrB,wBAA0B,EAAA,+CAAA;AAAA,IAC1B,mBAAqB,EAAA,iBAAA;AAAA,IACrB,wBAA0B,EAAA,iBAAA;AAAA,IAC1B,iBAAmB,EAAA,yBAAA;AAAA,IACnB,sBAAwB,EAAA,+CAAA;AAAA,IACxB,iBAAmB,EAAA,iBAAA;AAAA,IACnB,iBAAmB,EAAA,0CAAA;AAAA,IACnB,4BACE,EAAA,uHAAA;AAAA,IACF,oBAAsB,EAAA,0BAAA;AAAA,IACtB,mBAAqB,EAAA,oCAAA;AAAA,IACrB,iCAAmC,EAAA,SAAA;AAAA,IACnC,mCAAqC,EAAA,mBAAA;AAAA,IACrC,iCAAmC,EAAA,SAAA;AAAA,IACnC,kBAAoB,EAAA,WAAA;AAAA,IACpB,6BAA+B,EAAA,WAAA;AAAA,IAC/B,mCAAqC,EAAA,qCAAA;AAAA,IACrC,kCAAoC,EAAA,uBAAA;AAAA,IACpC,iCACE,EAAA,qDAAA;AAAA,IACF,0BAA4B,EAAA,UAAA;AAAA,IAC5B,gCACE,EAAA,8CAAA;AAAA,IACF,+BAAiC,EAAA,oBAAA;AAAA,IACjC,8BAAgC,EAAA,oBAAA;AAAA,IAChC,wBAA0B,EAAA,WAAA;AAAA,IAC1B,8BACE,EAAA,wDAAA;AAAA,IACF,6BAA+B,EAAA,oCAAA;AAAA,IAC/B,4BAA8B,EAAA,oCAAA;AAAA,IAC9B,gBAAkB,EAAA,mCAAA;AAAA,IAClB,qBAAuB,EAAA,+CAAA;AAAA,IACvB,gBAAkB,EAAA,iBAAA;AAAA,IAClB,sBACE,EAAA,gGAAA;AAAA,IACF,gBAAkB,EAAA,QAAA;AAAA,IAClB,gBAAkB,EAAA,mDAAA;AAAA,IAClB,2BACE,EAAA,iIAAA;AAAA,IACF,mBAAqB,EAAA,0BAAA;AAAA,IACrB,kBAAoB,EAAA;AAAA;AAExB,CAAC;;;;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { createTranslationResource } from '@backstage/core-plugin-api/alpha';
|
|
2
|
+
import { homepageTranslationRef } from './ref.esm.js';
|
|
3
|
+
|
|
4
|
+
const homepageTranslations = createTranslationResource({
|
|
5
|
+
ref: homepageTranslationRef,
|
|
6
|
+
translations: {
|
|
7
|
+
de: () => import('./de.esm.js'),
|
|
8
|
+
fr: () => import('./fr.esm.js'),
|
|
9
|
+
it: () => import('./it.esm.js'),
|
|
10
|
+
es: () => import('./es.esm.js')
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
export { homepageTranslationRef, homepageTranslations };
|
|
15
|
+
//# sourceMappingURL=index.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../../src/translations/index.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createTranslationResource } from '@backstage/core-plugin-api/alpha';\n\nimport { homepageTranslationRef } from './ref';\n\n/**\n * The translation resource for the Homepage plugin.\n * @public\n */\nexport const homepageTranslations = createTranslationResource({\n ref: homepageTranslationRef,\n translations: {\n de: () => import('./de'),\n fr: () => import('./fr'),\n it: () => import('./it'),\n es: () => import('./es'),\n },\n});\n\nexport { homepageTranslationRef };\n"],"names":[],"mappings":";;;AAwBO,MAAM,uBAAuB,yBAA0B,CAAA;AAAA,EAC5D,GAAK,EAAA,sBAAA;AAAA,EACL,YAAc,EAAA;AAAA,IACZ,EAAA,EAAI,MAAM,OAAO,aAAM,CAAA;AAAA,IACvB,EAAA,EAAI,MAAM,OAAO,aAAM,CAAA;AAAA,IACvB,EAAA,EAAI,MAAM,OAAO,aAAM,CAAA;AAAA,IACvB,EAAA,EAAI,MAAM,OAAO,aAAM;AAAA;AAE3B,CAAC;;;;"}
|