@myelophone/nuxt 0.18.2
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/.devcontainer/Dockerfile +7 -0
- package/.devcontainer/devcontainer.json +21 -0
- package/.editorconfig +43 -0
- package/.github/workflows/package.yml +73 -0
- package/.nuxtignore +6 -0
- package/.releaserc.js +132 -0
- package/.yarn/releases/yarn-4.18.0.cjs +1000 -0
- package/.yarnrc.yml +8 -0
- package/CHANGELOG.md +141 -0
- package/LICENSE +77 -0
- package/README.md +3004 -0
- package/app/app.vue +455 -0
- package/app/assets/css/animation.css +81 -0
- package/app/assets/css/backgrounds.css +57 -0
- package/app/assets/css/base.css +182 -0
- package/app/assets/css/index.css +9 -0
- package/app/assets/css/links.css +12 -0
- package/app/assets/css/multimedia.css +102 -0
- package/app/assets/css/preloader.css +68 -0
- package/app/assets/css/print.css +40 -0
- package/app/assets/css/tailwind.css +20 -0
- package/app/assets/css/theme.css +29 -0
- package/app/components/consent/GoogleMap.vue +59 -0
- package/app/components/consent/Youtube.vue +27 -0
- package/app/components/cookie/Banner.vue +70 -0
- package/app/components/cookie/ConsentWrapper.vue +71 -0
- package/app/components/cookie/PrivacyPolicy.vue +179 -0
- package/app/components/cookie/SettingsModal.vue +387 -0
- package/app/components/grid/Col.vue +262 -0
- package/app/components/grid/Container.vue +236 -0
- package/app/components/grid/Row.vue +248 -0
- package/app/components/grid/Stack.vue +233 -0
- package/app/components/myelophone/Copyright.vue +5 -0
- package/app/components/myelophone/Welcome.vue +107 -0
- package/app/components/page/FullscreenPreloader.vue +177 -0
- package/app/components/page/Preloader.vue +18 -0
- package/app/components/page/ReadyLocalized.vue +19 -0
- package/app/components/ready/.gitkeep +0 -0
- package/app/components/safe/Email.vue +52 -0
- package/app/components/safe/ImgWithLoader.vue +180 -0
- package/app/components/safe/NuxtImg.vue +25 -0
- package/app/components/safe/NuxtPicture.vue +29 -0
- package/app/components/section/.gitkeep +0 -0
- package/app/components/seo/BrandInfo.vue +76 -0
- package/app/components/seo/ContentNoIndex.vue +35 -0
- package/app/components/seo/NoIndex.vue +22 -0
- package/app/components/seo/OrgInfo.vue +130 -0
- package/app/components/seo/ProfileInfo.vue +137 -0
- package/app/components/ui/Accordion.vue +163 -0
- package/app/components/ui/Alert.vue +179 -0
- package/app/components/ui/Avatar.vue +88 -0
- package/app/components/ui/Badge.vue +150 -0
- package/app/components/ui/Banner.vue +133 -0
- package/app/components/ui/Button.vue +175 -0
- package/app/components/ui/Card.vue +66 -0
- package/app/components/ui/Checkbox.vue +134 -0
- package/app/components/ui/Chip.vue +136 -0
- package/app/components/ui/CommandPalette.vue +434 -0
- package/app/components/ui/Console.vue +583 -0
- package/app/components/ui/CursorCreative.vue +148 -0
- package/app/components/ui/FeatureAccordion.vue +165 -0
- package/app/components/ui/FileUpload.vue +705 -0
- package/app/components/ui/GeoDependent.vue +72 -0
- package/app/components/ui/Heading.vue +51 -0
- package/app/components/ui/Icon.vue +42 -0
- package/app/components/ui/Icon8.vue +39 -0
- package/app/components/ui/Input.vue +88 -0
- package/app/components/ui/LangLink.vue +34 -0
- package/app/components/ui/LangVisible.vue +33 -0
- package/app/components/ui/LanguageSelect.vue +202 -0
- package/app/components/ui/LightBox.vue +155 -0
- package/app/components/ui/LocalTime.vue +170 -0
- package/app/components/ui/Modal.vue +161 -0
- package/app/components/ui/Popup.vue +200 -0
- package/app/components/ui/PostContent.server.vue +23 -0
- package/app/components/ui/ProtectedEmail.vue +52 -0
- package/app/components/ui/RelativeTime.vue +141 -0
- package/app/components/ui/ScheduledContent.vue +150 -0
- package/app/components/ui/ScrollToTop.client.vue +48 -0
- package/app/components/ui/SegmentedControl.vue +148 -0
- package/app/components/ui/SiteSearch.vue +1191 -0
- package/app/components/ui/Skeleton.vue +91 -0
- package/app/components/ui/SmartContrast.vue +74 -0
- package/app/components/ui/SnapContainer.vue +222 -0
- package/app/components/ui/SnapSection.vue +294 -0
- package/app/components/ui/SonnerStyle.vue +7 -0
- package/app/components/ui/SplitSection.vue +99 -0
- package/app/components/ui/Steps.vue +858 -0
- package/app/components/ui/StickyWrapper.vue +46 -0
- package/app/components/ui/Table.vue +251 -0
- package/app/components/ui/Tabs.vue +451 -0
- package/app/components/ui/TextColumn.vue +36 -0
- package/app/components/ui/Textarea.vue +251 -0
- package/app/components/ui/Toggler.vue +40 -0
- package/app/components/ui/Tooltip.vue +524 -0
- package/app/components/ui/TruncateText.vue +105 -0
- package/app/components/ui/ViewportSpacer.vue +72 -0
- package/app/components/view/AnimatedCounter.vue +121 -0
- package/app/components/view/AnnouncementBar.vue +104 -0
- package/app/components/view/AvatarGroup.vue +104 -0
- package/app/components/view/Breadcrumbs.vue +97 -0
- package/app/components/view/ContentWithToc.vue +152 -0
- package/app/components/view/Copyright.vue +68 -0
- package/app/components/view/CountdownTimer.vue +184 -0
- package/app/components/view/CreativeCTA.vue +143 -0
- package/app/components/view/CurrencySelect.vue +254 -0
- package/app/components/view/FeatureBoxGrid.vue +142 -0
- package/app/components/view/HorizontalMenu.vue +97 -0
- package/app/components/view/ImageCompare.vue +141 -0
- package/app/components/view/ImgSlider.vue +333 -0
- package/app/components/view/InfiniteMarquee.vue +147 -0
- package/app/components/view/InfoBar.vue +86 -0
- package/app/components/view/LogoGrid.vue +106 -0
- package/app/components/view/LogoSlider.vue +83 -0
- package/app/components/view/NotFound.vue +81 -0
- package/app/components/view/PartialBackground.vue +313 -0
- package/app/components/view/QuoteBig.vue +111 -0
- package/app/components/view/ResponsiveMenu.vue +219 -0
- package/app/components/view/ReviewsSlider.vue +230 -0
- package/app/components/view/SocialBar.vue +78 -0
- package/app/components/view/StickyHeadingContent.vue +158 -0
- package/app/components/view/TallyForm.vue +295 -0
- package/app/components/view/WarningOutdated.vue +113 -0
- package/app/composables/useApi.ts +88 -0
- package/app/composables/useAppSeo.ts +78 -0
- package/app/composables/useBreadcrumbs.ts +106 -0
- package/app/composables/useChangeUrl.ts +73 -0
- package/app/composables/useCommand.ts +28 -0
- package/app/composables/useCookieControl.ts +111 -0
- package/app/composables/useCookieModal.ts +9 -0
- package/app/composables/useDevice.ts +109 -0
- package/app/composables/useGeoFetch.ts +139 -0
- package/app/composables/useLoadScript.ts +36 -0
- package/app/composables/useModalState.ts +37 -0
- package/app/composables/useMultiLang.ts +278 -0
- package/app/composables/useNetwork.ts +49 -0
- package/app/composables/useNuxtVersion.ts +5 -0
- package/app/composables/usePiniaStore.ts +5 -0
- package/app/composables/usePopupControl.ts +57 -0
- package/app/composables/useQuery.ts +307 -0
- package/app/composables/useReadyPage.ts +182 -0
- package/app/composables/useSafeList.ts +90 -0
- package/app/composables/useScriptLoader.ts +221 -0
- package/app/composables/useSiteSearch.ts +32 -0
- package/app/composables/useSnapScroll.ts +24 -0
- package/app/composables/useStatic.ts +5 -0
- package/app/composables/useStorage.ts +252 -0
- package/app/composables/useStoreBroadcast.ts +146 -0
- package/app/composables/useThemeSync.ts +81 -0
- package/app/constants/layout.ts +109 -0
- package/app/constants/predefinedCookieScripts.ts +1222 -0
- package/app/constants/ui-events.ts +1 -0
- package/app/error.vue +169 -0
- package/app/layouts/default-blog.vue +5 -0
- package/app/layouts/default.vue +3 -0
- package/app/locales/en/commands.json +5 -0
- package/app/locales/en/cookies.json +182 -0
- package/app/locales/en/error.json +4 -0
- package/app/locales/en/interface.json +33 -0
- package/app/locales/en/myelophone.json +8 -0
- package/app/locales/en/outdated.json +5 -0
- package/app/locales/en/times.json +18 -0
- package/app/locales/pl/commands.json +5 -0
- package/app/locales/pl/cookies.json +182 -0
- package/app/locales/pl/error.json +4 -0
- package/app/locales/pl/interface.json +33 -0
- package/app/locales/pl/myelophone.json +8 -0
- package/app/locales/pl/outdated.json +5 -0
- package/app/locales/pl/times.json +18 -0
- package/app/locales/ru/commands.json +5 -0
- package/app/locales/ru/cookies.json +182 -0
- package/app/locales/ru/error.json +4 -0
- package/app/locales/ru/interface.json +33 -0
- package/app/locales/ru/myelophone.json +8 -0
- package/app/locales/ru/outdated.json +5 -0
- package/app/locales/ru/times.json +18 -0
- package/app/middleware/blog-layout.ts +28 -0
- package/app/middleware/i18n.global.ts +17 -0
- package/app/middleware/not-found-status.ts +11 -0
- package/app/modules/default-blog/index.ts +39 -0
- package/app/modules/default-blog/posts.ts +80 -0
- package/app/modules/default-sitemap/index.ts +116 -0
- package/app/modules/default-sitemap/runtime/sitemap.get.ts +42 -0
- package/app/modules/fullscreen-preloader/module.ts +43 -0
- package/app/modules/htaccess/.htaccess +38 -0
- package/app/modules/htaccess/index.ts +23 -0
- package/app/modules/i18n-shaker.mjs +221 -0
- package/app/modules/multi18n/module.ts +71 -0
- package/app/modules/myelophone-config/module.ts +241 -0
- package/app/pages/[...all].vue +9 -0
- package/app/pages/index.vue +3 -0
- package/app/pages/post/[...slug].vue +30 -0
- package/app/plugins/bfcache-refresh.client.ts +9 -0
- package/app/plugins/canonical.ts +30 -0
- package/app/plugins/csp-nonce.server.ts +41 -0
- package/app/plugins/multi18n.client.ts +21 -0
- package/app/plugins/multi18n.server.ts +15 -0
- package/app/plugins/nuxt-version.client.ts +4 -0
- package/app/plugins/restore.client.ts +21 -0
- package/app/plugins/reveal.ts +89 -0
- package/app/plugins/url-helper.client.ts +66 -0
- package/app/server/api/exchange-rates.get.ts +216 -0
- package/app/server/api/healthz.ts +1 -0
- package/app/server/api/logout.post.ts +6 -0
- package/app/server/middleware/normalize-url.ts +14 -0
- package/app/server/middleware/security-headers.ts +147 -0
- package/app/server/middleware/url-helper.ts +43 -0
- package/app/server/plugins/clean-html-spaces.ts +15 -0
- package/app/server/plugins/clean-styles.ts +94 -0
- package/app/server/plugins/compression.ts +122 -0
- package/app/server/plugins/css-preload.ts +26 -0
- package/app/server/plugins/early-hints.ts +31 -0
- package/app/server/plugins/force-noindex.ts +43 -0
- package/app/server/plugins/html-one-line.ts +17 -0
- package/app/server/plugins/inline-style.ts +7 -0
- package/app/server/routes/healthz.get.ts +1 -0
- package/app/server/tsconfig.json +3 -0
- package/app/stores/cart.ts +945 -0
- package/app/stores/commands.ts +43 -0
- package/app/stores/device.ts +156 -0
- package/app/stores/querySync.ts +5 -0
- package/app/stores/settings.ts +145 -0
- package/app/stores/user.ts +607 -0
- package/app/types/cookie.ts +89 -0
- package/app/types/myelophone.d.ts +87 -0
- package/app/types/site-search.ts +110 -0
- package/app/utils/asyncRefresh.ts +4 -0
- package/app/utils/blog.server.ts +142 -0
- package/app/utils/jsonLd.ts +56 -0
- package/app/utils/myelophoneConfig.ts +4 -0
- package/app/utils/sortBy.ts +18 -0
- package/app/utils/transliterate.ts +75 -0
- package/app/utils/ytVideo.ts +37 -0
- package/app/workers/site-search.worker.ts +661 -0
- package/biome.json +94 -0
- package/commitlint.config.js +3 -0
- package/nuxt.config.ts +539 -0
- package/package.json +101 -0
- package/playground/content/.gitkeep +0 -0
- package/playground/locales/.gitkeep +0 -0
- package/playground/myelophone.dev.ts +45 -0
- package/playground/nuxt.config.ts +105 -0
- package/playground/package.json +5 -0
- package/playground/pages/.gitkeep +0 -0
- package/playground/tsconfig.json +3 -0
- package/playwright.config.ts +23 -0
- package/public/browsers/chrome.svg +77 -0
- package/public/browsers/edge.svg +98 -0
- package/public/browsers/firefox.svg +300 -0
- package/public/favicon.ico +0 -0
- package/public/myelophone_eng.png +0 -0
- package/public/myelophone_eng_white.png +0 -0
- package/spa-loading-template.html +72 -0
- package/tests/home.spec.ts +9 -0
- package/tests/utils.ts +23 -0
- package/tsconfig.json +16 -0
- package/vite/plugins/clean-css.ts +190 -0
- package/vite/plugins/postcss-add-viewportunits.ts +33 -0
- package/vite/plugins/postcss-viewport-fallback.ts +49 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const UI_SITE_SEARCH_OPEN_EVENT = 'myelophone:site-search-open';
|
package/app/error.vue
ADDED
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="min-h-screen flex items-center justify-center px-4">
|
|
3
|
+
<div class="max-w-xl text-center">
|
|
4
|
+
<h1
|
|
5
|
+
class="text-9xl font-extrabold tracking-widest text-red-500 dark:text-red-400"
|
|
6
|
+
>
|
|
7
|
+
{{ error?.statusCode || "500" }}
|
|
8
|
+
</h1>
|
|
9
|
+
|
|
10
|
+
<p class="text-2xl md:text-3xl mt-6 text-center">
|
|
11
|
+
{{ safeT("interface.serverError", texts.serverError) }}
|
|
12
|
+
</p>
|
|
13
|
+
|
|
14
|
+
<p
|
|
15
|
+
class="mt-4 text-gray-600 dark:text-gray-400 text-center max-w-md mx-auto"
|
|
16
|
+
>
|
|
17
|
+
{{
|
|
18
|
+
error?.statusMessage ||
|
|
19
|
+
safeT(
|
|
20
|
+
"interface.somethingWentWrong",
|
|
21
|
+
texts.somethingWentWrong,
|
|
22
|
+
)
|
|
23
|
+
}}
|
|
24
|
+
</p>
|
|
25
|
+
|
|
26
|
+
<pre
|
|
27
|
+
v-if="devMode && error?.stack"
|
|
28
|
+
class="mt-4 text-[10px] leading-tight text-gray-500 overflow-x-auto border-t border-gray-300 dark:border-gray-700 pt-2"
|
|
29
|
+
>
|
|
30
|
+
{{ error.stack }}
|
|
31
|
+
</pre>
|
|
32
|
+
|
|
33
|
+
<div
|
|
34
|
+
class="mt-8 flex flex-col sm:flex-row gap-4 justify-center items-center"
|
|
35
|
+
>
|
|
36
|
+
<button
|
|
37
|
+
@click="refreshPage"
|
|
38
|
+
class="inline-block bg-gray-200 hover:bg-gray-300 dark:bg-gray-700 dark:hover:bg-gray-600 text-gray-800 dark:text-white font-medium py-2 pb-3 px-6 rounded-lg transition"
|
|
39
|
+
>
|
|
40
|
+
{{ safeT("interface.updatePage", texts.updatePage) }}
|
|
41
|
+
</button>
|
|
42
|
+
|
|
43
|
+
<button
|
|
44
|
+
@click="handleError"
|
|
45
|
+
class="inline-block bg-blue-600 hover:bg-blue-700 text-white font-medium py-2 pb-3 px-6 rounded-lg transition"
|
|
46
|
+
>
|
|
47
|
+
{{ safeT("interface.goHomeFull", texts.goHome) }}
|
|
48
|
+
</button>
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
</div>
|
|
52
|
+
</template>
|
|
53
|
+
|
|
54
|
+
<script setup>
|
|
55
|
+
const props = defineProps({
|
|
56
|
+
error: Object,
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
const getLanguage = () => {
|
|
60
|
+
try {
|
|
61
|
+
if (import.meta.server) {
|
|
62
|
+
const headers = useRequestHeaders(["accept-language"]);
|
|
63
|
+
const acceptLang = headers["accept-language"];
|
|
64
|
+
if (acceptLang) {
|
|
65
|
+
return acceptLang.split(",")[0].split("-")[0].toLowerCase();
|
|
66
|
+
}
|
|
67
|
+
} else if (typeof navigator !== "undefined" && navigator.language) {
|
|
68
|
+
return navigator.language.split("-")[0].toLowerCase();
|
|
69
|
+
}
|
|
70
|
+
} catch (e) {
|
|
71
|
+
console.error("Language detection failed", e);
|
|
72
|
+
}
|
|
73
|
+
return "en";
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
const userLang = getLanguage();
|
|
77
|
+
|
|
78
|
+
const dictionary = {
|
|
79
|
+
ru: {
|
|
80
|
+
serverError: "Упс! Ошибка сервера.",
|
|
81
|
+
somethingWentWrong:
|
|
82
|
+
"На сервере произошла непредвиденная ошибка. Мы уже работаем над исправлением этой проблемы. Пожалуйста, попробуйте еще раз позже.",
|
|
83
|
+
goHome: "Вернуться на главную",
|
|
84
|
+
updatePage: "Обновить страницу",
|
|
85
|
+
},
|
|
86
|
+
en: {
|
|
87
|
+
serverError: "Oops! Server Error.",
|
|
88
|
+
somethingWentWrong:
|
|
89
|
+
"An unexpected error occurred on the server. We are already working on fixing this issue. Please try again later.",
|
|
90
|
+
goHome: "Back to Homepage",
|
|
91
|
+
updatePage: "Refresh Page",
|
|
92
|
+
},
|
|
93
|
+
pl: {
|
|
94
|
+
serverError: "Ups! Błąd serwera.",
|
|
95
|
+
somethingWentWrong:
|
|
96
|
+
"Wystąpił nieoczekiwany błąd na serwerze. Pracujemy już nad rozwiązaniem tego problemu. Spróbuj ponownie później.",
|
|
97
|
+
goHome: "Powrót do strony głównej",
|
|
98
|
+
updatePage: "Odśwież stronę",
|
|
99
|
+
},
|
|
100
|
+
de: {
|
|
101
|
+
serverError: "Hoppla! Serverfehler.",
|
|
102
|
+
somethingWentWrong:
|
|
103
|
+
"Auf dem Server ist ein unerwarteter Fehler aufgetreten. Wir arbeiten bereits an der Behebung des Problems. Bitte versuchen Sie es später noch einmal.",
|
|
104
|
+
goHome: "Zur Startseite",
|
|
105
|
+
updatePage: "Seite neu laden",
|
|
106
|
+
},
|
|
107
|
+
es: {
|
|
108
|
+
serverError: "¡Ups! Error del servidor.",
|
|
109
|
+
somethingWentWrong:
|
|
110
|
+
"Ocurrió un error inesperado en el servidor. Ya estamos trabajando para solucionar este problema. Por favor, inténtelo de nuevo más tarde.",
|
|
111
|
+
goHome: "Volver al inicio",
|
|
112
|
+
updatePage: "Actualizar página",
|
|
113
|
+
},
|
|
114
|
+
it: {
|
|
115
|
+
serverError: "Ops! Errore del server.",
|
|
116
|
+
somethingWentWrong:
|
|
117
|
+
"Si è verificato un errore imprevisto sul server. Stiamo già lavorando per risolvere il problema. Riprova più tardi.",
|
|
118
|
+
goHome: "Torna alla home",
|
|
119
|
+
updatePage: "Aggiorna la pagina",
|
|
120
|
+
},
|
|
121
|
+
fr: {
|
|
122
|
+
serverError: "Oups ! Erreur de serveur.",
|
|
123
|
+
somethingWentWrong:
|
|
124
|
+
"Une erreur inattendue est survenue sur le serveur. Nous travaillons déjà à la résolution de ce problème. Veuillez réessayer plus tard.",
|
|
125
|
+
goHome: "Retour à l'accueil",
|
|
126
|
+
updatePage: "Rafraîchir la page",
|
|
127
|
+
},
|
|
128
|
+
pt: {
|
|
129
|
+
serverError: "Ups! Erro de servidor.",
|
|
130
|
+
somethingWentWrong:
|
|
131
|
+
"Ocorreu um erro inesperado no servidor. Já estamos a trabalhar para resolver este problema. Por favor, tente novamente mais tarde.",
|
|
132
|
+
goHome: "Voltar ao início",
|
|
133
|
+
updatePage: "Atualizar página",
|
|
134
|
+
},
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
const texts = dictionary[userLang] || dictionary.en;
|
|
138
|
+
|
|
139
|
+
const multiLang = (() => {
|
|
140
|
+
try {
|
|
141
|
+
return useMultiLang(["interface"]);
|
|
142
|
+
} catch (e) {
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
})();
|
|
146
|
+
|
|
147
|
+
const safeT = (key, fallbackText) => {
|
|
148
|
+
if (multiLang && typeof multiLang.t === "function") {
|
|
149
|
+
const translated = multiLang.t(key);
|
|
150
|
+
if (translated && translated !== key) return translated;
|
|
151
|
+
}
|
|
152
|
+
return fallbackText;
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
const devMode = import.meta.dev;
|
|
156
|
+
|
|
157
|
+
const refreshPage = () => {
|
|
158
|
+
if (typeof window !== "undefined") {
|
|
159
|
+
window.location.reload();
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
const handleError = () => clearError({ redirect: "/" });
|
|
164
|
+
|
|
165
|
+
useHead({
|
|
166
|
+
title: `Error ${props.error?.statusCode || "500"}`,
|
|
167
|
+
meta: [{ name: "robots", content: "noindex" }],
|
|
168
|
+
});
|
|
169
|
+
</script>
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
{
|
|
2
|
+
"weUseCookies": "We use cookies for website functionality and analytics.",
|
|
3
|
+
"cookies": "cookies",
|
|
4
|
+
"accept": "Accept",
|
|
5
|
+
"acceptAll": "Accept all",
|
|
6
|
+
"decline": "Decline",
|
|
7
|
+
"declineAll": "Decline all",
|
|
8
|
+
"changePrefs": "Manage preferences",
|
|
9
|
+
"setPrefs": "Cookie settings",
|
|
10
|
+
"savePrefs": "Save preferences",
|
|
11
|
+
"contentHidden": "Content hidden",
|
|
12
|
+
"toUse": "To use",
|
|
13
|
+
"toSee": "To view this content, you must allow",
|
|
14
|
+
"actionRequired": "Action required",
|
|
15
|
+
"selectCategories": "Please accept the required cookie categories in the pop-up window.",
|
|
16
|
+
"needToAccept": "must allow",
|
|
17
|
+
"alwaysOn": "(Always enabled)",
|
|
18
|
+
"necessary": "necessary",
|
|
19
|
+
"analytics": "analytics",
|
|
20
|
+
"marketing": "marketing",
|
|
21
|
+
"preferences": "preferences",
|
|
22
|
+
"functional": "functional",
|
|
23
|
+
"usedServices": "Services used",
|
|
24
|
+
"usedNotServices": "No services are currently used in this category.",
|
|
25
|
+
"necessaryTitle": "Strictly Necessary Cookies",
|
|
26
|
+
"necessaryDesc": "Essential cookies for the website to function (e.g., authorization, security). Cannot be disabled.",
|
|
27
|
+
"analyticsTitle": "Analytics & Statistics",
|
|
28
|
+
"analyticsDesc": "These help us improve our website by collecting information on usage (traffic, popular pages, etc.).",
|
|
29
|
+
"marketingTitle": "Marketing & Advertising",
|
|
30
|
+
"marketingDesc": "Used to display personalized ads and integrate with social media (e.g., YouTube, Pixel).",
|
|
31
|
+
"functionalTitle": "Functional Cookies",
|
|
32
|
+
"functionalDesc": "Required for additional features to work, such as live chat or interactive maps.",
|
|
33
|
+
"cookieNote": "We use cookies to improve your experience. You can choose which categories you want to allow.",
|
|
34
|
+
"cookiesList": "List of cookies saved by the browser",
|
|
35
|
+
"emptyList": "The list is empty.",
|
|
36
|
+
"privacyTitle": "Privacy Settings",
|
|
37
|
+
"googleTagManager": {
|
|
38
|
+
"name": "Google Tag Manager",
|
|
39
|
+
"description": "Manages analytics, advertising, and functional tags with consent-aware settings."
|
|
40
|
+
},
|
|
41
|
+
"googleAnalytics4": {
|
|
42
|
+
"name": "Google Analytics 4",
|
|
43
|
+
"description": "Measures traffic, events, and user behavior on the website."
|
|
44
|
+
},
|
|
45
|
+
"googleAds": {
|
|
46
|
+
"name": "Google Ads",
|
|
47
|
+
"description": "Measures advertising conversions and enables remarketing."
|
|
48
|
+
},
|
|
49
|
+
"metaPixel": {
|
|
50
|
+
"name": "Meta Pixel",
|
|
51
|
+
"description": "Measures ad conversions and enables retargeting on Meta platforms."
|
|
52
|
+
},
|
|
53
|
+
"yandexMetrica": {
|
|
54
|
+
"name": "Yandex Metrica",
|
|
55
|
+
"description": "Measures traffic, conversions, and website behavior analytics."
|
|
56
|
+
},
|
|
57
|
+
"vkPixel": {
|
|
58
|
+
"name": "VK Pixel",
|
|
59
|
+
"description": "Measures VK Ads conversions and enables retargeting audiences."
|
|
60
|
+
},
|
|
61
|
+
"myTargetTopMailRu": {
|
|
62
|
+
"name": "myTarget / Top.Mail.Ru",
|
|
63
|
+
"description": "Measures advertising campaigns and remarketing audiences in VK and Mail.ru ecosystems."
|
|
64
|
+
},
|
|
65
|
+
"baiduTongji": {
|
|
66
|
+
"name": "Baidu Tongji",
|
|
67
|
+
"description": "Measures traffic and visitor behavior for websites targeting China."
|
|
68
|
+
},
|
|
69
|
+
"matomo": {
|
|
70
|
+
"name": "Matomo",
|
|
71
|
+
"description": "Measures website analytics through a self-hosted or cloud Matomo tracker."
|
|
72
|
+
},
|
|
73
|
+
"plausible": {
|
|
74
|
+
"name": "Plausible Analytics",
|
|
75
|
+
"description": "Provides privacy-friendly website traffic analytics."
|
|
76
|
+
},
|
|
77
|
+
"umami": {
|
|
78
|
+
"name": "Umami",
|
|
79
|
+
"description": "Provides privacy-friendly website analytics without advertising tracking.",
|
|
80
|
+
"legal": {
|
|
81
|
+
"purpose": "We use Umami to understand aggregated website usage and improve content and usability.",
|
|
82
|
+
"cookiesDescription": "Umami is configured as cookieless analytics and does not require analytics cookies for this setup.",
|
|
83
|
+
"notes": "Umami is used as privacy-friendly analytics. It is not used for advertising, cross-site profiling, or retargeting.",
|
|
84
|
+
"data": {
|
|
85
|
+
"pageViews": "Page views and visited URLs",
|
|
86
|
+
"referrer": "Referrer information",
|
|
87
|
+
"browser": "Browser and operating system information",
|
|
88
|
+
"device": "Device type and approximate technical metadata"
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
"hotjar": {
|
|
93
|
+
"name": "Hotjar",
|
|
94
|
+
"description": "Records heatmaps, funnels, surveys, and behavior analytics."
|
|
95
|
+
},
|
|
96
|
+
"microsoftClarity": {
|
|
97
|
+
"name": "Microsoft Clarity",
|
|
98
|
+
"description": "Measures user behavior with heatmaps and session recordings."
|
|
99
|
+
},
|
|
100
|
+
"adobeAnalytics": {
|
|
101
|
+
"name": "Adobe Analytics",
|
|
102
|
+
"description": "Measures enterprise analytics, attribution, and digital experience performance."
|
|
103
|
+
},
|
|
104
|
+
"hubspot": {
|
|
105
|
+
"name": "HubSpot",
|
|
106
|
+
"description": "Loads HubSpot tracking, forms, chat, and marketing tools."
|
|
107
|
+
},
|
|
108
|
+
"bitrix24": {
|
|
109
|
+
"name": "Bitrix24",
|
|
110
|
+
"description": "Loads Bitrix24 CRM widgets, site buttons, forms, and chat tools."
|
|
111
|
+
},
|
|
112
|
+
"amoCrm": {
|
|
113
|
+
"name": "amoCRM",
|
|
114
|
+
"description": "Loads amoCRM chat and lead capture widgets."
|
|
115
|
+
},
|
|
116
|
+
"salesforcePardot": {
|
|
117
|
+
"name": "Salesforce Account Engagement",
|
|
118
|
+
"description": "Measures marketing automation activity and lead attribution."
|
|
119
|
+
},
|
|
120
|
+
"mailchimp": {
|
|
121
|
+
"name": "Mailchimp",
|
|
122
|
+
"description": "Loads Mailchimp forms, popups, and marketing automation widgets."
|
|
123
|
+
},
|
|
124
|
+
"linkedInInsight": {
|
|
125
|
+
"name": "LinkedIn Insight Tag",
|
|
126
|
+
"description": "Measures LinkedIn ad performance and retargeting audiences."
|
|
127
|
+
},
|
|
128
|
+
"tiktokPixel": {
|
|
129
|
+
"name": "TikTok Pixel",
|
|
130
|
+
"description": "Measures TikTok ad conversions and enables retargeting."
|
|
131
|
+
},
|
|
132
|
+
"pinterestTag": {
|
|
133
|
+
"name": "Pinterest Tag",
|
|
134
|
+
"description": "Measures Pinterest ad conversions and retargeting."
|
|
135
|
+
},
|
|
136
|
+
"xPixel": {
|
|
137
|
+
"name": "X Pixel",
|
|
138
|
+
"description": "Measures X advertising conversions and retargeting."
|
|
139
|
+
},
|
|
140
|
+
"intercom": {
|
|
141
|
+
"name": "Intercom",
|
|
142
|
+
"description": "Provides customer chat, support, and messaging functionality."
|
|
143
|
+
},
|
|
144
|
+
"zendeskChat": {
|
|
145
|
+
"name": "Zendesk Chat",
|
|
146
|
+
"description": "Provides customer chat and support functionality."
|
|
147
|
+
},
|
|
148
|
+
"crispChat": {
|
|
149
|
+
"name": "Crisp Chat",
|
|
150
|
+
"description": "Provides customer chat and support functionality."
|
|
151
|
+
},
|
|
152
|
+
"tawkTo": {
|
|
153
|
+
"name": "Tawk.to",
|
|
154
|
+
"description": "Provides live chat, visitor monitoring, and support functionality."
|
|
155
|
+
},
|
|
156
|
+
"jivoSite": {
|
|
157
|
+
"name": "JivoSite",
|
|
158
|
+
"description": "Provides live chat, callbacks, and customer communication tools."
|
|
159
|
+
},
|
|
160
|
+
"liveChat": {
|
|
161
|
+
"name": "LiveChat",
|
|
162
|
+
"description": "Provides live chat and customer support functionality."
|
|
163
|
+
},
|
|
164
|
+
"tidio": {
|
|
165
|
+
"name": "Tidio",
|
|
166
|
+
"description": "Provides live chat, chatbot, and customer messaging functionality."
|
|
167
|
+
},
|
|
168
|
+
"chatwoot": {
|
|
169
|
+
"name": "Chatwoot",
|
|
170
|
+
"description": "Provides live chat, support inboxes, and customer messaging functionality."
|
|
171
|
+
},
|
|
172
|
+
"chatra": {
|
|
173
|
+
"name": "Chatra",
|
|
174
|
+
"description": "Provides live chat and customer messaging functionality."
|
|
175
|
+
},
|
|
176
|
+
"recaptcha": {
|
|
177
|
+
"name": "Google reCAPTCHA",
|
|
178
|
+
"description": "Protects forms from spam and abuse."
|
|
179
|
+
},
|
|
180
|
+
"cookielessTitle": "Privacy-friendly analytics",
|
|
181
|
+
"cookielessDesc": "We use the following GDPR-compatible cookieless analytics tools for aggregated statistics. They are not used for advertising, retargeting, or cross-site profiling."
|
|
182
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"expand": "Expand",
|
|
3
|
+
"collapse": "Collapse",
|
|
4
|
+
"close": "Close",
|
|
5
|
+
"readMore": "Read more",
|
|
6
|
+
"goMore": "Go more",
|
|
7
|
+
"goHome": "Go Home",
|
|
8
|
+
"goHomeFull": "Go to Homepage",
|
|
9
|
+
"pageNotFound": "Oops! Page not found.",
|
|
10
|
+
"pageNotFoundText": "The page you are looking for may have been removed or never existed.",
|
|
11
|
+
"pageNotFoundDescription": "Page not found. Please check the URL.",
|
|
12
|
+
"serverError": "Server Error",
|
|
13
|
+
"somethingWentWrong": "An unexpected error occurred on the server. We are already working on fixing this issue. Please try again later.",
|
|
14
|
+
"updatePage": "Refresh Page",
|
|
15
|
+
"noGoogleMapAddress": "No address or Place ID provided",
|
|
16
|
+
"nodata": "No data",
|
|
17
|
+
"siteSearch": {
|
|
18
|
+
"ariaLabel": "Search the site",
|
|
19
|
+
"placeholder": "Search page content…",
|
|
20
|
+
"clear": "Clear search",
|
|
21
|
+
"indexing": "Preparing site search…",
|
|
22
|
+
"indexingProgress": "Preparing search: {indexed} of {total} pages",
|
|
23
|
+
"indexed": "{count} pages indexed",
|
|
24
|
+
"remote": "Server search",
|
|
25
|
+
"searching": "Searching…",
|
|
26
|
+
"operatorLabel": "Match search words using AND or OR",
|
|
27
|
+
"results": "Search results",
|
|
28
|
+
"noResults": "Nothing found",
|
|
29
|
+
"typeMore": "Enter at least {count} characters",
|
|
30
|
+
"prefilled": "The query is ready. Press Enter or edit it to search.",
|
|
31
|
+
"error": "Search could not be prepared. Please try again."
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"day1": "day",
|
|
3
|
+
"day2": "days",
|
|
4
|
+
"day5": "days",
|
|
5
|
+
"hour1": "hour",
|
|
6
|
+
"hour2": "hours",
|
|
7
|
+
"hour5": "hours",
|
|
8
|
+
"minute1": "minute",
|
|
9
|
+
"minute2": "minutes",
|
|
10
|
+
"minute5": "minutes",
|
|
11
|
+
"second1": "second",
|
|
12
|
+
"second2": "seconds",
|
|
13
|
+
"second5": "seconds",
|
|
14
|
+
"secondshort": "s",
|
|
15
|
+
"minuteshort": "m",
|
|
16
|
+
"hourshort": "h",
|
|
17
|
+
"dayshort": "d"
|
|
18
|
+
}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
{
|
|
2
|
+
"weUseCookies": "We use cookies for website functionality and analytics.",
|
|
3
|
+
"cookies": "cookies",
|
|
4
|
+
"accept": "Accept",
|
|
5
|
+
"acceptAll": "Accept all",
|
|
6
|
+
"decline": "Decline",
|
|
7
|
+
"declineAll": "Decline all",
|
|
8
|
+
"changePrefs": "Manage preferences",
|
|
9
|
+
"setPrefs": "Cookie settings",
|
|
10
|
+
"savePrefs": "Save preferences",
|
|
11
|
+
"contentHidden": "Content hidden",
|
|
12
|
+
"toUse": "To use",
|
|
13
|
+
"toSee": "To view this content, you must allow",
|
|
14
|
+
"actionRequired": "Action required",
|
|
15
|
+
"selectCategories": "Please accept the required cookie categories in the pop-up window.",
|
|
16
|
+
"needToAccept": "must allow",
|
|
17
|
+
"alwaysOn": "(Always enabled)",
|
|
18
|
+
"necessary": "necessary",
|
|
19
|
+
"analytics": "analytics",
|
|
20
|
+
"marketing": "marketing",
|
|
21
|
+
"preferences": "preferences",
|
|
22
|
+
"functional": "functional",
|
|
23
|
+
"usedServices": "Services used",
|
|
24
|
+
"usedNotServices": "No services are currently used in this category.",
|
|
25
|
+
"necessaryTitle": "Strictly Necessary Cookies",
|
|
26
|
+
"necessaryDesc": "These cookies are essential for the website to function (e.g., authorization, security). They cannot be disabled.",
|
|
27
|
+
"analyticsTitle": "Analytics & Statistics",
|
|
28
|
+
"analyticsDesc": "These help us improve our website by collecting information on usage, such as traffic and popular pages.",
|
|
29
|
+
"marketingTitle": "Marketing & Advertising",
|
|
30
|
+
"marketingDesc": "Used to display personalized ads and integrate with social media (e.g., YouTube, Pixel).",
|
|
31
|
+
"functionalTitle": "Functional Cookies",
|
|
32
|
+
"functionalDesc": "Required for additional features to work, such as live chat or interactive maps.",
|
|
33
|
+
"cookieNote": "We use cookies to improve your experience. You can choose which categories you want to allow.",
|
|
34
|
+
"cookiesList": "List of cookies saved by the browser",
|
|
35
|
+
"emptyList": "The list is empty.",
|
|
36
|
+
"privacyTitle": "Privacy Settings",
|
|
37
|
+
"googleTagManager": {
|
|
38
|
+
"name": "Google Tag Manager",
|
|
39
|
+
"description": "Zarzadza tagami analitycznymi, reklamowymi i funkcjonalnymi z uwzglednieniem zgody uzytkownika."
|
|
40
|
+
},
|
|
41
|
+
"googleAnalytics4": {
|
|
42
|
+
"name": "Google Analytics 4",
|
|
43
|
+
"description": "Mierzy ruch, zdarzenia i zachowanie uzytkownikow w witrynie."
|
|
44
|
+
},
|
|
45
|
+
"googleAds": {
|
|
46
|
+
"name": "Google Ads",
|
|
47
|
+
"description": "Mierzy konwersje reklamowe i wlacza remarketing."
|
|
48
|
+
},
|
|
49
|
+
"metaPixel": {
|
|
50
|
+
"name": "Meta Pixel",
|
|
51
|
+
"description": "Mierzy konwersje reklamowe i wlacza retargeting na platformach Meta."
|
|
52
|
+
},
|
|
53
|
+
"yandexMetrica": {
|
|
54
|
+
"name": "Yandex Metrica",
|
|
55
|
+
"description": "Mierzy ruch, konwersje i zachowanie uzytkownikow w witrynie."
|
|
56
|
+
},
|
|
57
|
+
"vkPixel": {
|
|
58
|
+
"name": "VK Pixel",
|
|
59
|
+
"description": "Mierzy konwersje reklam VK i wlacza grupy retargetingowe."
|
|
60
|
+
},
|
|
61
|
+
"myTargetTopMailRu": {
|
|
62
|
+
"name": "myTarget / Top.Mail.Ru",
|
|
63
|
+
"description": "Mierzy kampanie reklamowe i grupy remarketingowe w ekosystemach VK i Mail.ru."
|
|
64
|
+
},
|
|
65
|
+
"baiduTongji": {
|
|
66
|
+
"name": "Baidu Tongji",
|
|
67
|
+
"description": "Mierzy ruch i zachowanie odwiedzajacych dla witryn kierowanych na Chiny."
|
|
68
|
+
},
|
|
69
|
+
"matomo": {
|
|
70
|
+
"name": "Matomo",
|
|
71
|
+
"description": "Mierzy analityke witryny przez wlasny lub chmurowy tracker Matomo."
|
|
72
|
+
},
|
|
73
|
+
"plausible": {
|
|
74
|
+
"name": "Plausible Analytics",
|
|
75
|
+
"description": "Dostarcza prywatna analityke ruchu w witrynie."
|
|
76
|
+
},
|
|
77
|
+
"umami": {
|
|
78
|
+
"name": "Umami",
|
|
79
|
+
"description": "Dostarcza prywatna analityke witryny bez sledzenia reklamowego.",
|
|
80
|
+
"legal": {
|
|
81
|
+
"purpose": "Uzywamy Umami, aby rozumiec zagregowane korzystanie z witryny oraz ulepszac tresci i uzytecznosc.",
|
|
82
|
+
"cookiesDescription": "Umami jest skonfigurowane jako analityka cookieless i w tej konfiguracji nie wymaga cookies analitycznych.",
|
|
83
|
+
"notes": "Umami jest uzywane jako prywatnosciowa analityka. Nie uzywamy go do reklamy, profilowania miedzy witrynami ani retargetingu.",
|
|
84
|
+
"data": {
|
|
85
|
+
"pageViews": "Wyswietlenia stron i odwiedzone adresy URL",
|
|
86
|
+
"referrer": "Informacje o zrodle wejscia",
|
|
87
|
+
"browser": "Informacje o przegladarce i systemie operacyjnym",
|
|
88
|
+
"device": "Typ urzadzenia i przyblizone dane techniczne"
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
"hotjar": {
|
|
93
|
+
"name": "Hotjar",
|
|
94
|
+
"description": "Rejestruje mapy ciepla, lejki, ankiety i analityke zachowania."
|
|
95
|
+
},
|
|
96
|
+
"microsoftClarity": {
|
|
97
|
+
"name": "Microsoft Clarity",
|
|
98
|
+
"description": "Mierzy zachowanie uzytkownikow za pomoca map ciepla i nagran sesji."
|
|
99
|
+
},
|
|
100
|
+
"adobeAnalytics": {
|
|
101
|
+
"name": "Adobe Analytics",
|
|
102
|
+
"description": "Mierzy analityke enterprise, atrybucje i wydajnosc doswiadczen cyfrowych."
|
|
103
|
+
},
|
|
104
|
+
"hubspot": {
|
|
105
|
+
"name": "HubSpot",
|
|
106
|
+
"description": "Laduje tracking HubSpot, formularze, czat i narzedzia marketingowe."
|
|
107
|
+
},
|
|
108
|
+
"bitrix24": {
|
|
109
|
+
"name": "Bitrix24",
|
|
110
|
+
"description": "Laduje widgety CRM Bitrix24, przyciski strony, formularze i czat."
|
|
111
|
+
},
|
|
112
|
+
"amoCrm": {
|
|
113
|
+
"name": "amoCRM",
|
|
114
|
+
"description": "Laduje widgety amoCRM do czatu i pozyskiwania leadow."
|
|
115
|
+
},
|
|
116
|
+
"salesforcePardot": {
|
|
117
|
+
"name": "Salesforce Account Engagement",
|
|
118
|
+
"description": "Mierzy automatyzacje marketingu i atrybucje leadow."
|
|
119
|
+
},
|
|
120
|
+
"mailchimp": {
|
|
121
|
+
"name": "Mailchimp",
|
|
122
|
+
"description": "Laduje formularze, popupy i widgety marketingowe Mailchimp."
|
|
123
|
+
},
|
|
124
|
+
"linkedInInsight": {
|
|
125
|
+
"name": "LinkedIn Insight Tag",
|
|
126
|
+
"description": "Mierzy skutecznosc reklam LinkedIn i grupy retargetingowe."
|
|
127
|
+
},
|
|
128
|
+
"tiktokPixel": {
|
|
129
|
+
"name": "TikTok Pixel",
|
|
130
|
+
"description": "Mierzy konwersje reklam TikTok i wlacza retargeting."
|
|
131
|
+
},
|
|
132
|
+
"pinterestTag": {
|
|
133
|
+
"name": "Pinterest Tag",
|
|
134
|
+
"description": "Mierzy konwersje reklam Pinterest i retargeting."
|
|
135
|
+
},
|
|
136
|
+
"xPixel": {
|
|
137
|
+
"name": "X Pixel",
|
|
138
|
+
"description": "Mierzy konwersje reklamowe i retargeting X."
|
|
139
|
+
},
|
|
140
|
+
"intercom": {
|
|
141
|
+
"name": "Intercom",
|
|
142
|
+
"description": "Zapewnia czat, wsparcie i komunikacje z klientami."
|
|
143
|
+
},
|
|
144
|
+
"zendeskChat": {
|
|
145
|
+
"name": "Zendesk Chat",
|
|
146
|
+
"description": "Zapewnia czat i wsparcie klienta."
|
|
147
|
+
},
|
|
148
|
+
"crispChat": {
|
|
149
|
+
"name": "Crisp Chat",
|
|
150
|
+
"description": "Zapewnia czat i wsparcie klienta."
|
|
151
|
+
},
|
|
152
|
+
"tawkTo": {
|
|
153
|
+
"name": "Tawk.to",
|
|
154
|
+
"description": "Zapewnia czat na zywo, monitoring odwiedzajacych i wsparcie."
|
|
155
|
+
},
|
|
156
|
+
"jivoSite": {
|
|
157
|
+
"name": "JivoSite",
|
|
158
|
+
"description": "Zapewnia czat na zywo, oddzwanianie i narzedzia komunikacji z klientami."
|
|
159
|
+
},
|
|
160
|
+
"liveChat": {
|
|
161
|
+
"name": "LiveChat",
|
|
162
|
+
"description": "Zapewnia czat na zywo i wsparcie klienta."
|
|
163
|
+
},
|
|
164
|
+
"tidio": {
|
|
165
|
+
"name": "Tidio",
|
|
166
|
+
"description": "Zapewnia czat na zywo, chatbota i wiadomosci dla klientow."
|
|
167
|
+
},
|
|
168
|
+
"chatwoot": {
|
|
169
|
+
"name": "Chatwoot",
|
|
170
|
+
"description": "Zapewnia czat na zywo, skrzynki wsparcia i komunikacje z klientami."
|
|
171
|
+
},
|
|
172
|
+
"chatra": {
|
|
173
|
+
"name": "Chatra",
|
|
174
|
+
"description": "Zapewnia czat na zywo i komunikacje z klientami."
|
|
175
|
+
},
|
|
176
|
+
"recaptcha": {
|
|
177
|
+
"name": "Google reCAPTCHA",
|
|
178
|
+
"description": "Chroni formularze przed spamem i naduzyciami."
|
|
179
|
+
},
|
|
180
|
+
"cookielessTitle": "Privacy-friendly analytics",
|
|
181
|
+
"cookielessDesc": "We use the following GDPR-compatible cookieless analytics tools for aggregated statistics. They are not used for advertising, retargeting, or cross-site profiling."
|
|
182
|
+
}
|