diff --git a/bin/build.ts b/bin/build.ts index 630a051b9..d926c96a4 100644 --- a/bin/build.ts +++ b/bin/build.ts @@ -3,6 +3,7 @@ import { resolve } from 'node:path'; import { build as buildVite } from 'vite'; import { createServer as createViteServer } from 'vite'; +import { downloadTranslations } from '../src/helpers/downloadTranslationsHelper'; import { generateImageFormats } from '../src/helpers/generateImageFormats'; const BASE_URL = process.env.BASE_URL || '/'; @@ -41,7 +42,7 @@ const build = async (): Promise => { const designSystemRootDir = resolve(process.cwd(), 'node_modules/@eleven-labs/design-system/dist'); cpSync(ASSETS_DIR, resolve(PUBLIC_DIR, 'imgs'), { recursive: true }); cpSync(resolve(designSystemRootDir, 'imgs'), resolve(PUBLIC_DIR, 'imgs'), { recursive: true }); - await writeJsonDataFilesAndFeedFile(); + await Promise.all([writeJsonDataFilesAndFeedFile(), downloadTranslations()]); if (WITH_GENERATE_IMAGE_FORMATS) { await generateImageFormats(); } diff --git a/src/containers/PostCardListContainer/PostCardListContainer.tsx b/src/containers/PostCardListContainer/PostCardListContainer.tsx index 5918c5ce5..9c150eea6 100644 --- a/src/containers/PostCardListContainer/PostCardListContainer.tsx +++ b/src/containers/PostCardListContainer/PostCardListContainer.tsx @@ -7,6 +7,7 @@ import { usePostCardListContainer } from './usePostCardListContainer'; export interface PostCardListContainerProps { allPosts: PostListPageData['posts']; + withPagination?: boolean; currentPage?: number; getPaginatedLink?: (page: number) => ComponentPropsWithoutRef<'a'>; isLoading?: boolean; @@ -14,10 +15,11 @@ export interface PostCardListContainerProps { export const PostCardListContainer: React.FC = ({ allPosts, + withPagination = true, currentPage = 1, getPaginatedLink, isLoading = false, }) => { - const postCardList = usePostCardListContainer({ allPosts, currentPage, getPaginatedLink, isLoading }); + const postCardList = usePostCardListContainer({ allPosts, withPagination, currentPage, getPaginatedLink, isLoading }); return ; }; diff --git a/src/containers/PostCardListContainer/usePostCardListContainer.ts b/src/containers/PostCardListContainer/usePostCardListContainer.ts index f45d438c6..59b91d38a 100644 --- a/src/containers/PostCardListContainer/usePostCardListContainer.ts +++ b/src/containers/PostCardListContainer/usePostCardListContainer.ts @@ -7,6 +7,7 @@ import { PostCardListContainerProps } from './PostCardListContainer'; export const usePostCardListContainer = ({ allPosts, + withPagination = true, currentPage = 1, getPaginatedLink, isLoading = false, @@ -14,7 +15,7 @@ export const usePostCardListContainer = ({ const numberOfPosts = allPosts.length; const totalPages = Math.ceil(numberOfPosts / NUMBER_OF_ITEMS_PER_PAGE); const offset = (currentPage - 1) * NUMBER_OF_ITEMS_PER_PAGE; - const posts = allPosts.slice(offset, offset + NUMBER_OF_ITEMS_PER_PAGE); + const posts = withPagination ? allPosts.slice(offset, offset + NUMBER_OF_ITEMS_PER_PAGE) : allPosts; const postsForCardList = usePostsForCardList({ isLoading, numberOfItems: NUMBER_OF_ITEMS_PER_PAGE, @@ -25,7 +26,7 @@ export const usePostCardListContainer = ({ return { posts: postsForCardList, pagination: - numberOfPosts > NUMBER_OF_ITEMS_PER_PAGE && getPaginatedLink + withPagination && numberOfPosts > NUMBER_OF_ITEMS_PER_PAGE && getPaginatedLink ? { currentPage, totalPages, diff --git a/src/containers/SearchPageContainer/useSearchPageContentContainer.tsx b/src/containers/SearchPageContainer/useSearchPageContentContainer.tsx index d3b7120c7..9fce43853 100644 --- a/src/containers/SearchPageContainer/useSearchPageContentContainer.tsx +++ b/src/containers/SearchPageContainer/useSearchPageContentContainer.tsx @@ -64,7 +64,7 @@ export const useSearchPageContentContainer = (): SearchPageContentProps => { description: , } : undefined, - postCardList: , + postCardList: , isLoading, }; }; diff --git a/src/translations/en.translations.json b/src/translations/en.translations.json index 78311f558..a319fed19 100644 --- a/src/translations/en.translations.json +++ b/src/translations/en.translations.json @@ -138,12 +138,18 @@ "tutorial": { "title": "All our tutorials about mobile and web development", "description": "Discover all our web development tutorials. Let our astronauts guide you step-by-step in creating whole solutions or new features : create an Android player in Kotlin, set up a GraphQL server by retrieving data via REST APIs or even set up a CI/CI with GitLab for a Vue.js application. Good reading!", - "post_list_title": "Read all our tutorials in mobile and web development" + "post_list_title": "Read all our tutorials in mobile and web development", + "seo": { + "title": "Web and mobile development tutorials" + } }, "all": { "title": "All our articles about mobile and web development", "description": "

Discover articles from our astronauts, granting you direct access to their expertise in web development through several formats: projects feedbacks, tutorials and tool tests, advices on methodologies, introduction to frameworks... Chose your topic amongst Agility, Architecture, Data, DevOps, Javascript, or PHP!

\n

Good reading.

", - "post_list_title": "Read all our articles" + "post_list_title": "Read all our articles", + "seo": { + "title": "Articles and tutorials about web development" + } } }, "article": { diff --git a/src/translations/fr.translations.json b/src/translations/fr.translations.json index bad879e24..48b9c31b3 100644 --- a/src/translations/fr.translations.json +++ b/src/translations/fr.translations.json @@ -103,7 +103,7 @@ "description": "PHP est un langage de programmation orienté backend qui permet de développer des applications dynamiques et interactives. C'est un langage populaire, utilisé par un grand nombre d'applications web très utilisées par le grand public. Dans cette catégorie, retrouvez tous les articles, retours d’expérience et tutoriels de nos astronautes autour de PHP, Symfony, Laravel, Angular, des outils incontournables pour améliorer votre productivité mais aussi nos retours sur les grands événements de la communauté ! Bonne lecture.", "expertise": { "title": "Quelle est l’utilité de PHP ?", - "description": "Avec son écosystème riche, sa très forte communauté, et ses nombreux frameworks incontournables comme Symfony, PHP permet de développer tous types d’applications backend. Son utilisation accélère le processus de développement : sa structure prédéfinie et ses composants permettent aux développeurs de se concentrer davantage sur la logique métier. PHP offre la flexibilité nécessaire pour créer des applications web interactives, des sites e-commerce, des blogs, des marketplaces, des sites médias ou encore des back-offices personnalisés. PHP est donc une solution de qualité pour développer vos projets web sur mesure.", + "description": "Avec son écosystème riche, sa très forte communauté, et ses nombreux frameworks incontournables comme Symfony, PHP permet de développer tous types d’applications backend. Son utilisation accélère le processus de développement : sa structure prédéfinie et ses composants permettent aux développeurs de se concentrer davantage sur la logique métier. PHP offre la flexibilité nécessaire pour créer des applications web interactives, des sites e-commerce, des blogs, des marketplaces, des sites médias ou encore des back-offices personnalisés. PHP est donc une solution de qualité pour développer vos projets web sur mesure.", "link_label": "Découvrir notre expertise PHP Symfony", "link_url": "https://eleven-labs.com/dev-web/php-symfony/" }, @@ -138,12 +138,18 @@ "tutorial": { "title": "Tous nos tutoriels autour du développement web et mobile", "description": "Découvrez tous nos tutoriels en développement web. Nos astronautes vous guident pas-à-pas pour créer des solutions complètes ou de nouvelles fonctionnalités : créer un player android en Kotlin, mettre en place un serveur GraphQL en récupérant les données via des APIs REST ou encore mettre en place un CI/CI avec GitLab-ci pour une application Vue.js.
Bonne lecture !", - "post_list_title": "Découvrir tous nos tutoriels en développement web et mobile" + "post_list_title": "Découvrir tous nos tutoriels en développement web et mobile", + "seo": { + "title": "Tutoriels en développement web et mobile" + } }, "all": { "title": "Tous nos articles autour du développement web et mobile", "description": "Découvrez les articles de nos astronautes qui mettent leur expertise en développement web à votre disposition sous plusieurs formats : retours d'expérience de projets, tutoriel et tests d'outils, conseil en méthodologies, initiation aux frameworks... Agilité, Architecture, Data, DevOps, Javascript, PHP... les sujets sont nombreux !
Bonne lecture.", - "post_list_title": "Consulter l'ensemble de nos articles" + "post_list_title": "Consulter l'ensemble de nos articles", + "seo": { + "title": "Articles et tutoriels autour du développement web" + } } }, "article": {