diff --git a/api/src/routes/protected/certificate.test.ts b/api/src/routes/protected/certificate.test.ts index d3ef3ed54cc7d6..6fdb7de8711aca 100644 --- a/api/src/routes/protected/certificate.test.ts +++ b/api/src/routes/protected/certificate.test.ts @@ -127,6 +127,7 @@ describe('certificate routes', () => { isCertMap: { is2018DataVisCert: false, isA2EnglishCert: false, + isB1EnglishCert: false, isApisMicroservicesCert: false, isBackEndCert: false, isCollegeAlgebraPyCertV8: false, @@ -223,6 +224,7 @@ describe('certificate routes', () => { ], is2018DataVisCert: true, isA2EnglishCert: true, + isB1EnglishCert: true, isApisMicroservicesCert: true, isCollegeAlgebraPyCertV8: true, isDataAnalysisPyCertV7: true, diff --git a/api/src/routes/protected/user.test.ts b/api/src/routes/protected/user.test.ts index ade695aa1e38b1..3efd18eb4a42c5 100644 --- a/api/src/routes/protected/user.test.ts +++ b/api/src/routes/protected/user.test.ts @@ -337,6 +337,7 @@ const sessionUserData = { const baseProgressData = { currentChallengeId: '', isA2EnglishCert: false, + isB1EnglishCert: false, isRespWebDesignCert: false, is2018DataVisCert: false, isFrontEndLibsCert: false, diff --git a/api/src/routes/public/user.test.ts b/api/src/routes/public/user.test.ts index 302c6feef79804..f13fb9839c3a79 100644 --- a/api/src/routes/public/user.test.ts +++ b/api/src/routes/public/user.test.ts @@ -188,6 +188,7 @@ const publicUserData = { is2018DataVisCert: testUserData.is2018DataVisCert, is2018FullStackCert: testUserData.is2018FullStackCert, // TODO: should this be returned? The client doesn't use it at the moment. isA2EnglishCert: testUserData.isA2EnglishCert, + isB1EnglishCert: testUserData.isB1EnglishCert, isApisMicroservicesCert: testUserData.isApisMicroservicesCert, isBackEndCert: testUserData.isBackEndCert, isCheater: testUserData.isCheater, diff --git a/api/src/schemas/users/get-public-profile.ts b/api/src/schemas/users/get-public-profile.ts index 2e7cd2348e62f9..f0b24100e0c197 100644 --- a/api/src/schemas/users/get-public-profile.ts +++ b/api/src/schemas/users/get-public-profile.ts @@ -53,6 +53,7 @@ export const getPublicProfile = { is2018DataVisCert: Type.Boolean(), is2018FullStackCert: Type.Boolean(), isA2EnglishCert: Type.Boolean(), + isB1EnglishCert: Type.Boolean(), isApisMicroservicesCert: Type.Boolean(), isBackEndCert: Type.Boolean(), isCheater: Type.Boolean(), diff --git a/client/i18n/locales/chinese-traditional/intro.json b/client/i18n/locales/chinese-traditional/intro.json index ece228c01c2896..b988c48534dcdd 100644 --- a/client/i18n/locales/chinese-traditional/intro.json +++ b/client/i18n/locales/chinese-traditional/intro.json @@ -1832,7 +1832,6 @@ "git": "Git", "review-relational-databases": "Relational Databases Review", "exam-relational-databases": "Relational Databases Exam", - "introduction-to-nodejs": "Introduction to Node.js", "nodejs-core-libraries": "Node.js Core Libraries", "node-package-manager": "Node Package Manager", "http-and-the-web-standards-model": "HTTP and the Web Standards Model", @@ -6683,53 +6682,39 @@ "review-python": "Python Review", "python-certification-exam": "Python Certification Exam" }, - "module-intros": { - "python-classes-and-objects": { - "note": "Coming Winter 2025", - "intro": [ - "In this module, you will learn how to work with classes, methods, attributes and properties. Then, you will build out workshops and labs to practice these concepts and take a short quiz to test your knowledge." - ] - }, - "python-object-oriented-programming": { - "note": "Coming Winter 2025", + "blocks": { + "lecture-introduction-to-python": { + "title": "Introduction to Python", "intro": [ - "In this module, you will learn about Object-oriented programming concepts like encapsulation, inheritance, polymorphism, and more. You will build out workshops and labs to practice these concepts and take a short quiz to test your knowledge." + "In these lessons, you will learn what Python is, how to set up your development environment." ] }, - "python-linear-data-structures": { - "note": "Coming Winter 2025", + "lecture-understanding-variables-and-data-types": { + "title": "Understanding Variables and Data Types", "intro": [ - "In this module, you will learn about data structures including stacks, queues, linked lists, and more. You will build out a workshop and lab to practice these concepts and take a short quiz to test your knowledge." + "In these lessons, you will learn about variables and data types in Python." ] }, - "python-algorithms": { - "note": "Coming Winter 2025", - "intro": [ - "In this module, you will learn about common algorithms including binary search, merge sort, selection sort, and more. You will build workshops and labs to practice these concepts and take a short quiz to test your knowledge." - ] + "lecture-introduction-to-python-strings": { + "title": "Introduction to Strings", + "intro": ["In these lessons, you will learn about strings in Python."] }, - "python-graphs-and-trees": { - "note": "Coming Winter 2025", + "lecture-numbers-and-mathematical-operations": { + "title": "Numbers and Mathematical Operations", "intro": [ - "In this module, you will learn about graphs in computer science as well as adjacency lists, trees, tries, and more. You will build workshops and labs to practice these concepts and take a short quiz to test your knowledge." + "In these lessons, you will learn about numbers and mathematical operations in Python." ] }, - "python-dynamic-programming": { - "note": "Coming Winter 2025", + "lecture-booleans-and-conditionals": { + "title": "Booleans and Conditionals", "intro": [ - "In this module, you will learn about dynamic programming and practice these concepts by building a fibonacci sequence lab. Then you will take a short quiz to test your knowledge." + "In these lessons, you will learn about booleans and conditionals in Python." ] }, - "python-certification-exam": { - "note": "Coming Winter 2025", - "intro": ["Pass this exam to earn your Python Certification."] - } - }, - "blocks": { - "lecture-introduction-to-python": { - "title": "Introduction to Python", + "lecture-understanding-functions-and-scope": { + "title": "Understanding Functions and Scope", "intro": [ - "In these lessons, you will learn the fundamentals of Python. You'll learn about variables, data types, operators, control flow, functions, and more." + "In these lessons, you will learn about functions and scope in Python." ] }, "workshop-caesar-cipher": { @@ -6739,7 +6724,7 @@ ] }, "lab-rpg-character": { - "title": "Build an RPG character", + "title": "Build an RPG Character", "intro": [ "In this lab you will practice basic python by building an RPG character." ] @@ -7154,14 +7139,6 @@ "lab-number-guessing-game": "Build a Number Guessing Game", "relational-databases-certification-exam": "Relational Databases Certification Exam" }, - "module-intros": { - "relational-databases-certification-exam": { - "note": "Coming Winter 2025", - "intro": [ - "Pass this exam to earn your Relational Databases Certification." - ] - } - }, "blocks": { "lecture-working-with-code-editors-and-ides": { "title": "Working with Code Editors and IDEs", @@ -7353,6 +7330,12 @@ "Review relational databases concepts to prepare for the exam." ] }, + "quiz-node-js-core-modules": { + "title": "NodeJS Core Modules Quiz", + "intro": [ + "Test what you've learned about Node.js core modules with this quiz." + ] + }, "exam-relational-databases-certification": { "title": "Relational Databases Certification Exam", "intro": [ @@ -7375,7 +7358,8 @@ "back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam" }, "modules": { - "nodejs-core-libraries": "Node.js Core Libraries", + "introduction-to-nodejs": "Introduction to Node.js", + "nodejs-core-modules": "Node.js Core Modules", "node-package-manager": "Node Package Manager", "http-and-the-web-standards-model": "HTTP and the Web Standards Model", "rest-api-and-web-services": "REST API and Web Services", @@ -7390,10 +7374,16 @@ "back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam" }, "module-intros": { - "nodejs-core-libraries": { + "introduction-to-nodejs": { "note": "Coming Late 2026", "intro": [ - "In this module, you will learn about common Node.js core libraries including the fs, os, path and more. Then you will get to practice what you have learned through workshops and labs and test your knowledge through a short quiz." + "In this module, you will learn the basics of working with Node.js." + ] + }, + "nodejs-core-modules": { + "note": "Coming Late 2026", + "intro": [ + "In this module, you will learn about common Node.js core modules including the fs, os, path and more. Then you will get to practice what you have learned through workshops and labs and test your knowledge through a short quiz." ] }, "node-package-manager": { @@ -7470,6 +7460,24 @@ } }, "blocks": { + "lecture-working-with-nodejs-and-event-driven-architecture": { + "title": "Working with NodeJS and event driven architecture", + "intro": [ + "Learn about Node.js core libraries, how to install Node.js on your computer, and the advantages and disadvantages of using Node.js on the backend." + ] + }, + "review-node-js-core-modules": { + "title": "Node JS Core Modules Review", + "intro": [ + "Review Node JS Core Modules concepts to prepare for the upcoming quiz." + ] + }, + "review-node-js-intro": { + "title": "NodeJS Intro Review", + "intro": [ + "Review the basics of NodeJS to prepare for the upcoming quiz." + ] + }, "quiz-node-js-intro": { "title": "NodeJS Intro Quiz", "intro": ["Test what you have learned about NodeJS in this quiz."] @@ -8419,6 +8427,13 @@ "In this workshop, you'll use Flexbox to build a responsive photo gallery webpage." ] }, + "lab-pricing-plans-layout": { + "title": "Design a Pricing Plans Layout Page", + "intro": [ + "In this lab, you'll use flexbox to create a common three-card tier layout.", + "You'll practice aligning elements using flexbox properties like flex, flex-grow, order, and more." + ] + }, "lab-page-of-playing-cards": { "title": "Build a Page of Playing Cards", "intro": [ @@ -8792,37 +8807,29 @@ "zh-a1-module-discussing-team-skills": "Discussing Team Skills" }, "module-intros": { - "zh-a1-module-introduction-and-certification-overview": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "zh-a1-module-initials-and-finals": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "zh-a1-module-greetings-and-basic-introductions": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "zh-a1-module-asking-and-giving-basic-information": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, "zh-a1-module-introducing-others": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding short monologues that introduce information about other people, such as name, role, nationality, and age." + ] }, "zh-a1-module-getting-to-know-the-team": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding a short conversation that asks and answers simple questions about colleagues." + ] }, "zh-a1-module-talking-about-personal-skills": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding short monologues about what people can and cannot do, such as languages and work skills." + ] }, "zh-a1-module-discussing-team-skills": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding a short conversation about who can do which tasks on a team and how a project starts." + ] } }, "blocks": { @@ -8830,8 +8837,8 @@ "title": "Certification Introduction", "intro": ["", ""] }, - "zh-a1-learn-single-finals": { - "title": "Single Finals", + "zh-a1-learn-simple-finals": { + "title": "Simple Finals", "intro": ["", ""] }, "zh-a1-learn-initials": { diff --git a/client/i18n/locales/chinese-traditional/translations.json b/client/i18n/locales/chinese-traditional/translations.json index c8444e4a673b52..405b2e03b6c204 100644 --- a/client/i18n/locales/chinese-traditional/translations.json +++ b/client/i18n/locales/chinese-traditional/translations.json @@ -208,6 +208,7 @@ "core-certs-heading": "推薦課程(測試版):", "learn-english-heading": "學習面向開發者的英語課程:", "learn-spanish-heading": "Learn Professional Spanish:", + "learn-chinese-heading": "Learn Professional Chinese:", "professional-certs-heading": "專業認證:", "interview-prep-heading": "爲開發人員面試求職做好準備:", "legacy-curriculum-heading": "我們已存檔的課程:", @@ -1115,6 +1116,7 @@ "issued": "發佈日期", "fulltext": "<0>特證明 <1>{{user}} <2>已完成 <3>{{title}} <4>開發者認證課程,日期爲 {{time}},<5>約 {{completionTime}} 課時", "fulltextNoHours": "<0>特證明 <1>{{user}} <2>已完成 <3>{{title}} <4>開發者認證課程,日期爲 {{time}}", + "fulltextLanguageExam": "<0>This certifies that <1>{{user}} <2>has successfully passed the <3>{{title}} <4>exam on {{time}} <5>demonstrating competence in grammar, listening, and reading portions of the CEFR standards for this level based on the content covered in the curriculum.", "quincy-larson-signature": "Quincy Larson 的簽名", "julia-liuson-signature": "Julia Liuson 的簽名", "project": { diff --git a/client/i18n/locales/chinese/intro.json b/client/i18n/locales/chinese/intro.json index 0883766f38a537..c3435b89592ab8 100644 --- a/client/i18n/locales/chinese/intro.json +++ b/client/i18n/locales/chinese/intro.json @@ -1832,7 +1832,6 @@ "git": "Git", "review-relational-databases": "Relational Databases Review", "exam-relational-databases": "Relational Databases Exam", - "introduction-to-nodejs": "Introduction to Node.js", "nodejs-core-libraries": "Node.js Core Libraries", "node-package-manager": "Node Package Manager", "http-and-the-web-standards-model": "HTTP and the Web Standards Model", @@ -6683,53 +6682,39 @@ "review-python": "Python Review", "python-certification-exam": "Python Certification Exam" }, - "module-intros": { - "python-classes-and-objects": { - "note": "Coming Winter 2025", - "intro": [ - "In this module, you will learn how to work with classes, methods, attributes and properties. Then, you will build out workshops and labs to practice these concepts and take a short quiz to test your knowledge." - ] - }, - "python-object-oriented-programming": { - "note": "Coming Winter 2025", + "blocks": { + "lecture-introduction-to-python": { + "title": "Introduction to Python", "intro": [ - "In this module, you will learn about Object-oriented programming concepts like encapsulation, inheritance, polymorphism, and more. You will build out workshops and labs to practice these concepts and take a short quiz to test your knowledge." + "In these lessons, you will learn what Python is, how to set up your development environment." ] }, - "python-linear-data-structures": { - "note": "Coming Winter 2025", + "lecture-understanding-variables-and-data-types": { + "title": "Understanding Variables and Data Types", "intro": [ - "In this module, you will learn about data structures including stacks, queues, linked lists, and more. You will build out a workshop and lab to practice these concepts and take a short quiz to test your knowledge." + "In these lessons, you will learn about variables and data types in Python." ] }, - "python-algorithms": { - "note": "Coming Winter 2025", - "intro": [ - "In this module, you will learn about common algorithms including binary search, merge sort, selection sort, and more. You will build workshops and labs to practice these concepts and take a short quiz to test your knowledge." - ] + "lecture-introduction-to-python-strings": { + "title": "Introduction to Strings", + "intro": ["In these lessons, you will learn about strings in Python."] }, - "python-graphs-and-trees": { - "note": "Coming Winter 2025", + "lecture-numbers-and-mathematical-operations": { + "title": "Numbers and Mathematical Operations", "intro": [ - "In this module, you will learn about graphs in computer science as well as adjacency lists, trees, tries, and more. You will build workshops and labs to practice these concepts and take a short quiz to test your knowledge." + "In these lessons, you will learn about numbers and mathematical operations in Python." ] }, - "python-dynamic-programming": { - "note": "Coming Winter 2025", + "lecture-booleans-and-conditionals": { + "title": "Booleans and Conditionals", "intro": [ - "In this module, you will learn about dynamic programming and practice these concepts by building a fibonacci sequence lab. Then you will take a short quiz to test your knowledge." + "In these lessons, you will learn about booleans and conditionals in Python." ] }, - "python-certification-exam": { - "note": "Coming Winter 2025", - "intro": ["Pass this exam to earn your Python Certification."] - } - }, - "blocks": { - "lecture-introduction-to-python": { - "title": "Introduction to Python", + "lecture-understanding-functions-and-scope": { + "title": "Understanding Functions and Scope", "intro": [ - "In these lessons, you will learn the fundamentals of Python. You'll learn about variables, data types, operators, control flow, functions, and more." + "In these lessons, you will learn about functions and scope in Python." ] }, "workshop-caesar-cipher": { @@ -6739,7 +6724,7 @@ ] }, "lab-rpg-character": { - "title": "Build an RPG character", + "title": "Build an RPG Character", "intro": [ "In this lab you will practice basic python by building an RPG character." ] @@ -7154,14 +7139,6 @@ "lab-number-guessing-game": "Build a Number Guessing Game", "relational-databases-certification-exam": "Relational Databases Certification Exam" }, - "module-intros": { - "relational-databases-certification-exam": { - "note": "Coming Winter 2025", - "intro": [ - "Pass this exam to earn your Relational Databases Certification." - ] - } - }, "blocks": { "lecture-working-with-code-editors-and-ides": { "title": "Working with Code Editors and IDEs", @@ -7353,6 +7330,12 @@ "Review relational databases concepts to prepare for the exam." ] }, + "quiz-node-js-core-modules": { + "title": "NodeJS Core Modules Quiz", + "intro": [ + "Test what you've learned about Node.js core modules with this quiz." + ] + }, "exam-relational-databases-certification": { "title": "Relational Databases Certification Exam", "intro": [ @@ -7375,7 +7358,8 @@ "back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam" }, "modules": { - "nodejs-core-libraries": "Node.js Core Libraries", + "introduction-to-nodejs": "Introduction to Node.js", + "nodejs-core-modules": "Node.js Core Modules", "node-package-manager": "Node Package Manager", "http-and-the-web-standards-model": "HTTP and the Web Standards Model", "rest-api-and-web-services": "REST API and Web Services", @@ -7390,10 +7374,16 @@ "back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam" }, "module-intros": { - "nodejs-core-libraries": { + "introduction-to-nodejs": { "note": "Coming Late 2026", "intro": [ - "In this module, you will learn about common Node.js core libraries including the fs, os, path and more. Then you will get to practice what you have learned through workshops and labs and test your knowledge through a short quiz." + "In this module, you will learn the basics of working with Node.js." + ] + }, + "nodejs-core-modules": { + "note": "Coming Late 2026", + "intro": [ + "In this module, you will learn about common Node.js core modules including the fs, os, path and more. Then you will get to practice what you have learned through workshops and labs and test your knowledge through a short quiz." ] }, "node-package-manager": { @@ -7470,6 +7460,24 @@ } }, "blocks": { + "lecture-working-with-nodejs-and-event-driven-architecture": { + "title": "Working with NodeJS and event driven architecture", + "intro": [ + "Learn about Node.js core libraries, how to install Node.js on your computer, and the advantages and disadvantages of using Node.js on the backend." + ] + }, + "review-node-js-core-modules": { + "title": "Node JS Core Modules Review", + "intro": [ + "Review Node JS Core Modules concepts to prepare for the upcoming quiz." + ] + }, + "review-node-js-intro": { + "title": "NodeJS Intro Review", + "intro": [ + "Review the basics of NodeJS to prepare for the upcoming quiz." + ] + }, "quiz-node-js-intro": { "title": "NodeJS Intro Quiz", "intro": ["Test what you have learned about NodeJS in this quiz."] @@ -8419,6 +8427,13 @@ "In this workshop, you'll use Flexbox to build a responsive photo gallery webpage." ] }, + "lab-pricing-plans-layout": { + "title": "Design a Pricing Plans Layout Page", + "intro": [ + "In this lab, you'll use flexbox to create a common three-card tier layout.", + "You'll practice aligning elements using flexbox properties like flex, flex-grow, order, and more." + ] + }, "lab-page-of-playing-cards": { "title": "Build a Page of Playing Cards", "intro": [ @@ -8792,37 +8807,29 @@ "zh-a1-module-discussing-team-skills": "Discussing Team Skills" }, "module-intros": { - "zh-a1-module-introduction-and-certification-overview": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "zh-a1-module-initials-and-finals": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "zh-a1-module-greetings-and-basic-introductions": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "zh-a1-module-asking-and-giving-basic-information": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, "zh-a1-module-introducing-others": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding short monologues that introduce information about other people, such as name, role, nationality, and age." + ] }, "zh-a1-module-getting-to-know-the-team": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding a short conversation that asks and answers simple questions about colleagues." + ] }, "zh-a1-module-talking-about-personal-skills": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding short monologues about what people can and cannot do, such as languages and work skills." + ] }, "zh-a1-module-discussing-team-skills": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding a short conversation about who can do which tasks on a team and how a project starts." + ] } }, "blocks": { @@ -8830,8 +8837,8 @@ "title": "Certification Introduction", "intro": ["", ""] }, - "zh-a1-learn-single-finals": { - "title": "Single Finals", + "zh-a1-learn-simple-finals": { + "title": "Simple Finals", "intro": ["", ""] }, "zh-a1-learn-initials": { diff --git a/client/i18n/locales/chinese/translations.json b/client/i18n/locales/chinese/translations.json index 2fe12c7ab50d3d..6ae88fb8cb4dca 100644 --- a/client/i18n/locales/chinese/translations.json +++ b/client/i18n/locales/chinese/translations.json @@ -208,6 +208,7 @@ "core-certs-heading": "推荐课程(测试版):", "learn-english-heading": "学习面向开发者的英语课程:", "learn-spanish-heading": "Learn Professional Spanish:", + "learn-chinese-heading": "Learn Professional Chinese:", "professional-certs-heading": "专业认证:", "interview-prep-heading": "为开发人员面试求职做好准备:", "legacy-curriculum-heading": "我们已存档的课程:", @@ -1115,6 +1116,7 @@ "issued": "发布日期", "fulltext": "<0>特证明 <1>{{user}} <2>已完成 <3>{{title}} <4>开发者认证课程,日期为 {{time}},<5>约 {{completionTime}} 课时", "fulltextNoHours": "<0>特证明 <1>{{user}} <2>已完成 <3>{{title}} <4>开发者认证课程,日期为 {{time}}", + "fulltextLanguageExam": "<0>This certifies that <1>{{user}} <2>has successfully passed the <3>{{title}} <4>exam on {{time}} <5>demonstrating competence in grammar, listening, and reading portions of the CEFR standards for this level based on the content covered in the curriculum.", "quincy-larson-signature": "Quincy Larson 的签名", "julia-liuson-signature": "Julia Liuson 的签名", "project": { diff --git a/client/i18n/locales/english/intro.json b/client/i18n/locales/english/intro.json index 0924f55394ad54..cd1f2390059fe2 100644 --- a/client/i18n/locales/english/intro.json +++ b/client/i18n/locales/english/intro.json @@ -7317,6 +7317,12 @@ "Review relational databases concepts to prepare for the exam." ] }, + "quiz-node-js-core-modules": { + "title": "NodeJS Core Modules Quiz", + "intro": [ + "Test what you've learned about Node.js core modules with this quiz." + ] + }, "exam-relational-databases-certification": { "title": "Relational Databases Certification Exam", "intro": [ @@ -7447,6 +7453,12 @@ "Learn about Node.js core libraries, how to install Node.js on your computer, and the advantages and disadvantages of using Node.js on the backend." ] }, + "review-node-js-core-modules": { + "title": "Node JS Core Modules Review", + "intro": [ + "Review Node JS Core Modules concepts to prepare for the upcoming quiz." + ] + }, "review-node-js-intro": { "title": "NodeJS Intro Review", "intro": [ @@ -7804,6 +7816,13 @@ "In these lectures, you will learn how to work with the audio and video elements." ] }, + "workshop-html-video-player": { + "title": "Build an HTML Video Player", + "intro": [ + "In this workshop, you'll use HTML to create a basic video player.", + "This project will cover the video element, the video player setup, and more." + ] + }, "lab-html-audio-and-video-player": { "title": "Build an HTML Audio and Video Player", "intro": [ @@ -8005,6 +8024,12 @@ "In this workshop, you will build an accessible tech conference schedule table." ] }, + "lab-debug-donation-form": { + "title": "Debug a Donation Form", + "intro": [ + "In this lab you will debug a donation form by fixing HTML syntax errors and improving accessibility." + ] + }, "lecture-introduction-to-aria": { "title": "Introduction to ARIA", "intro": [ diff --git a/client/i18n/locales/espanol/intro.json b/client/i18n/locales/espanol/intro.json index f6b7fe1fae7957..70f896e9ffaf8f 100644 --- a/client/i18n/locales/espanol/intro.json +++ b/client/i18n/locales/espanol/intro.json @@ -60,7 +60,7 @@ } }, "2022/responsive-web-design": { - "title": "Legacy Responsive Web Design V8", + "title": "Legado de Diseño Web Responsivo V8", "intro": [ "En esta certificación de Diseño Web Adaptativo, aprenderás los lenguajes que los desarrolladores usan para construir páginas web: HTML (Lenguaje de Marcado de Hipertexto) para el contenido, y CSS (hojas de estilo en cascada) para el diseño.", "Primero, crearás una aplicación de fotos de gatos para aprender los conceptos básicos de HTML y CSS. Más adelante, aprenderás técnicas modernas como variables CSS, mediante la construcción de un pingüino, y las mejores prácticas para la accesibilidad mediante la construcción de un sitio de cuestionarios.", @@ -217,7 +217,7 @@ } }, "javascript-algorithms-and-data-structures": { - "title": "Legacy JavaScript Algorithms and Data Structures V7", + "title": "Algoritmos de JavaScript y Estructuras de Datos V7", "intro": [ "Mientras HTML y CSS controlan el contenido y el estilo de una página, JavaScript se utiliza para hacerlo interactivo. En la certificación Algoritmos de JavaScript y Estructuras de Datos, aprenderás los fundamentos de JavaScript incluyendo variables, arreglos, objetos, bucles y funciones.", "Una vez que tengas los fundamentos, aplicarás ese conocimiento creando algoritmos para manipular cadenas, factorizar números e incluso calcular la órbita de la Estación Espacial Internacional.", @@ -300,7 +300,7 @@ } }, "javascript-algorithms-and-data-structures-v8": { - "title": "Legacy JavaScript Algorithms and Data Structures V8", + "title": "Algoritmos de JavaScript y Estructuras de Datos V8", "intro": [ "Los desarrolladores usan HTML y CSS para controlar el contenido y estilo de una página. También usan JavaScript para hacer interactiva la página.", "En esta certificación de Algoritmos de JavaScript y Estructura de Datos, aprenderas los fundamentos de JavaScript, como variables, arreglos, objetos, bucles, funciones, DOM y mucho más.", @@ -490,7 +490,7 @@ } }, "front-end-development-libraries": { - "title": "Front End Development Libraries V8", + "title": "Bibliotecas de desarrollo front-end V8", "intro": [ "Ahora que estás familiarizado con HTML, CSS y JavaScript, mejora tus habilidades aprendiendo algunas de las librerías de interfaz más populares en la industria.", "En la certificación de bibliotecas de desarrollo front-end, aprenderá cómo diseñar su sitio rápidamente con Bootstrap. También aprenderá cómo agregar lógica a sus estilos CSS y extenderlos con Sass.", @@ -553,7 +553,7 @@ } }, "data-visualization": { - "title": "Data Visualization V8", + "title": "Visualización de datos V8", "intro": [ "Los datos están a nuestro alrededor, pero no significan mucho si no tienen forma o contexto.", "En la certificación Visualización de Datos, construirás diagramas, gráficos, y mapas para presentar diferentes tipos de datos utilizando la biblioteca D3.js.", @@ -588,7 +588,7 @@ } }, "relational-database": { - "title": "Relational Database V8", + "title": "Base de Datos Relacional V8", "intro": [ "Para estos cursos, usarás herramientas reales de desarrollador y software incluyendo código VS, PostgreSQL, y la línea de comandos Linux / Unix para completar tutoriales interactivos y construir proyectos.", "Estos cursos empiezan con comandos básicos de Base. Utilizando la terminal, aprenderá todo, desde navegar y manipular un sistema de archivos, programar en Bash, hasta el uso avanzado.", @@ -696,7 +696,7 @@ } }, "back-end-development-and-apis": { - "title": "Back End Development and APIs V8", + "title": "Desarrollo de Back-End y APIs V8", "intro": [ "Hasta este punto, solo has usado JavaScript en la parte de front-end para agregar interactividad a una página, resolver los desafíos de algoritmos o construir un SPA. Pero JavaScript también se puede utilizar en el back-end, o servidor, para construir aplicaciones web completas.", "Hoy en día, una de las formas populares para construir aplicaciones es a través de microservicios, que son pequeñas aplicaciones modulares que trabajan juntas para formar una aplicación más grande.", @@ -1396,7 +1396,7 @@ } }, "a2-english-for-developers": { - "title": "A2 English for Developers Certification (Beta)", + "title": "Certificación de inglés para desarrolladores A2 (Beta)", "intro": [ "En este plan de estudios de inglés para desarrolladores, aprenderá los conceptos básicos de la comunicación en inglés. Esto seguirá el nivel A2 del Marco Común Europeo de Referencia (MCER). Y nos hemos centrado en vocabulario que es particularmente útil para los desarrolladores.", "La primera mitad del plan de estudios te ayudará a sentirte cómodo con la gramática y el uso del inglés. Te brindará toneladas de práctica en tus manos. Aprenderá conceptos básicos de como presentarse, entablar una pequeña charla y discutir sobre tu trabajo.", @@ -1567,15 +1567,15 @@ ] }, "en-a2-certification-exam": { - "title": "A2 English for Developers Certification Exam", + "title": "Exámen de certificación de inglés para desarrolladores A2", "intro": [ - "This exam is required to claim the A2 English for Developers Certification." + "Este examen es necesario para obtener la Certificación A2 de Inglés para Desarrolladores." ] } } }, "b1-english-for-developers": { - "title": "B1 English for Developers Certification (Beta)", + "title": "Certificación de inglés B1 para Desarrolladores (Beta)", "intro": [ "En este programa de inglés para desarrolladores, aprenderás los conceptos básicos de la comunicación en inglés. Seguirás el nivel B1 del Marco Común Europeo de Referencia (MCER). Y nos hemos centrado en el vocabulario que resulta especialmente útil para los desarrolladores.", "Te ayudará a fortalecer tus habilidades básicas mientras introduces gramática y usos más complejos. Aprenderás a describir lugares y cosas, compartir experiencias pasadas y usar con confianza tiempos verbales como presente perfecto y futuro. También se incluyen estrategias prácticas de comunicación, como gestionar conversaciones, expresar opiniones y generar acuerdos o desacuerdos en discusiones.", @@ -1698,13 +1698,13 @@ "learn-determiners-and-advanced-use-of-articles": { "title": "Aprende los determinantes y el uso avanzado de los artículos", "intro": [ - "In this course, you will learn how to use determiners to give clear information about quantity, choice, and distribution. You will also practice using articles in more advanced ways, especially in professional conversations about planning, tasks, and resources." + "En este curso, aprenderás a usar determinantes para dar información clara sobre cantidad, elección y distribución. También practicarás el uso de artículos de formas más avanzadas, especialmente en conversaciones profesionales sobre planificación, tareas y recursos." ] }, "learn-how-to-use-reported-speech": { "title": "Aprende a utilizar el discurso relatado", "intro": [ - "In this course, you will learn how to report what someone else said in a clear and natural way. You will also practice using the correct verb tenses and sentence structures to share feedback, explain situations, and talk about past events in professional conversations." + "En este curso, aprenderás a reportar lo que alguien más dijo de manera clara y natural. También practicarás el uso correcto de los tiempos verbales y estructuras de oraciones para compartir retroalimentación, explicar situaciones y hablar sobre eventos pasados en conversaciones profesionales." ] }, "learn-how-to-use-prepositions-according-to-context": { @@ -1716,19 +1716,19 @@ "learn-how-to-talk-about-numbers-with-a-coworker": { "title": "Aprende a hablar de números con un compañero de trabajo", "intro": [ - "In this course, you will learn how to use numbers to talk about tasks, schedules, budgets, and resources in the workplace. You will practice using cardinal and ordinal numbers, percentages, and fractions to organize work, explain progress, and share inventory or financial updates clearly with your team." + "En este curso, aprenderás a usar números para hablar sobre tareas, horarios, presupuestos y recursos en el lugar de trabajo. Practicarás el uso de números cardinales y ordinales, porcentajes y fracciones para organizar el trabajo, explicar el progreso y compartir inventarios o actualizaciones financieras con claridad con tu equipo." ] }, "learn-common-phrasal-verbs-and-idioms": { "title": "Aprende verbos frasales y modismos comunes", "intro": [ - "In this course, you will learn how to use common phrasal verbs and idioms to sound more natural and confident at work. You will practice using expressions to give opinions, make suggestions, organize meetings, and talk about tasks in everyday professional conversations." + "En este curso, aprenderás a usar verbos compuestos e idiomáticos comunes para sonar más natural y seguro en el trabajo. Practicarás el uso de expresiones para dar opiniones, hacer sugerencias, organizar reuniones y hablar sobre tareas en conversaciones profesionales diarias." ] }, "en-b1-certification-exam": { - "title": "B1 English for Developers Certification Exam", + "title": "Examen de Certificación de Inglés para Desarrolladores B1", "intro": [ - "This exam is required to claim the B1 English for Developers Certification." + "Este examen es necesario para obtener la Certificación B1 de Inglés para Desarrolladores." ] } } @@ -1745,7 +1745,7 @@ "title": "Desafíos de Código Roseta", "intro": [ "Estos son los desafíos para Código Roseta.", - "NOTE: These challenges support JavaScript only solutions." + "NOTA: Estos desafíos sólo soportan soluciones Javascript." ] } } @@ -1792,7 +1792,7 @@ "css-variables": "Variables", "css-grid": "Gría", "css-animations": "Animaciones", - "review-css": "CSS Review", + "review-css": "Revisión de CSS", "exam-css": "Examen de CSS", "code-editors": "Editores de código", "javascript-variables-and-strings": "Variables y cadenas", @@ -1816,56 +1816,55 @@ "recursion": "Recursión", "functional-programming": "Programación funcional", "asynchronous-javascript": "JavaScript asincrónico", - "review-javascript": "JavaScript Review", + "review-javascript": "Revisión de JavaScript", "exam-javascript": "Examen de JavaScript", "react-fundamentals": "Fundamentos de React", "react-state-hooks-and-routing": "React Estado, ganchos y enrutamiento", "performance": "Actuación", "testing": "Pruebas", "css-libraries-and-frameworks": "Bibliotecas y Frameworks CSS", - "data-visualization": "Data Visualization and D3", + "data-visualization": "Visualización de Datos y D3", "typescript-fundamentals": "Fundamentos de TypeScript", "review-front-end-libraries": "Revisión de bibliotecas Front End", "exam-front-end-libraries": "Examen de bibliotecas Front End", - "python-basics": "Python Basics", - "python-loops-and-sequences": "Loops and Sequences", - "python-dictionaries-and-sets": "Dictionaries and Sets", - "python-error-handling": "Error Handling", + "python-basics": "Conceptos Básicos de Python", + "python-loops-and-sequences": "Bucles y Secuencias", + "python-dictionaries-and-sets": "Diccionarios y Conjuntos", + "python-error-handling": "Manejo de Errores", "python-classes-and-objects": "Clases y objetos", - "python-object-oriented-programming": "Object-Oriented Programming (OOP)", + "python-object-oriented-programming": "Programación Orientada a Objetos (OOP)", "python-linear-data-structures": "Estructuras de datos lineales", "python-algorithms": "Algoritmos", - "python-graphs-and-trees": "Graphs and Trees", - "python-dynamic-programming": "Dynamic Programming", - "review-python": "Python Review", - "exam-python": "Python Exam", - "bash-fundamentals": "Bash Fundamentals", - "sql-and-postgresql": "SQL and PostgreSQL", - "bash-scripting": "Bash Scripting", + "python-graphs-and-trees": "Gráficas y Árboles", + "python-dynamic-programming": "Programación Dinámica", + "review-python": "Revisión de Python", + "exam-python": "Examen de Python", + "bash-fundamentals": "Fundamentos de Bash", + "sql-and-postgresql": "SQL y PostgreSQL", + "bash-scripting": "Scripting en Bash", "sql-and-bash": "SQL y Bash", "git": "Git", - "review-relational-databases": "Relational Databases Review", - "exam-relational-databases": "Relational Databases Exam", - "introduction-to-nodejs": "Introducción a Node.js", - "nodejs-core-libraries": "Node.js Core Libraries", - "node-package-manager": "Node Package Manager", - "http-and-the-web-standards-model": "HTTP and the Web Standards Model", - "rest-api-and-web-services": "REST API and Web Services", - "introduction-to-express": "Introduction to Express", - "express-middleware": "Express Middleware", - "error-handling-in-express": "Error Handling in Express", + "review-relational-databases": "Revisión de Bases de Datos Relacionales", + "exam-relational-databases": "Examen de Bases de Datos Relacionales", + "nodejs-core-libraries": "Bibliotecas Core de Node.js", + "node-package-manager": "Nodo Package Manager", + "http-and-the-web-standards-model": "HTTP y el Modelo de Estándares Web", + "rest-api-and-web-services": "REST API y Servicios Web", + "introduction-to-express": "Introducción a Express", + "express-middleware": "Middleware de Express", + "error-handling-in-express": "Manejo de Errores en Express", "websockets": "WebSockets", - "node-and-sql": "Node and SQL", + "node-and-sql": "Node y SQL", "security-and-privacy": "Seguridad y Privacidad", - "authentication": "Authentication", - "tooling-and-deployment": "Tooling and Deployment", + "authentication": "Autenticación", + "tooling-and-deployment": "Herramientas de Implementación", "how-to-get-a-developer-job": "Cómo obtener un trabajo como desarrollador", - "capstone-project": "Capstone Project", - "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" + "capstone-project": "Proyecto Final", + "certified-full-stack-developer-exam": "Examen de Desarrollador Full Stack Certificado" }, "module-intros": { "data-visualization": { - "note": "Coming Winter 2025", + "note": "Próximamente en invierno de 2025", "intro": [ "En este módulo, serás introducido a la visualización de datos y aprenderás cómo trabajar con la librería D3." ] @@ -1877,31 +1876,31 @@ ] }, "python-classes-and-objects": { - "note": "Coming Winter 2025", + "note": "Próximamente en invierno de 2025", "intro": [ "En este módulo, aprenderás cómo trabajar con clases, métodos, atributos y propiedades. Luego, construirás talleres y laboratorios para practicar estos conceptos y tomar un breve cuestionario para probar tus conocimientos." ] }, "python-object-oriented-programming": { - "note": "Coming Winter 2025", + "note": "Próximamente en invierno de 2025", "intro": [ "En este módulo, aprenderás sobre conceptos de programación orientada a objetos como encapsulación, herencia, polimorfismo, y más. Construirás talleres y laboratorios para practicar estos conceptos y tomar un breve cuestionario para probar tus conocimientos." ] }, "python-linear-data-structures": { - "note": "Coming Winter 2025", + "note": "Próximamente en invierno de 2025", "intro": [ "En este módulo, aprenderás sobre estructuras de datos incluyendo pilas, colas, listas enlazadas, y más. Construirás un taller y un laboratorio para practicar estos conceptos y tomar un breve cuestionario para probar tus conocimientos." ] }, "python-algorithms": { - "note": "Coming Winter 2025", + "note": "Próximamente en invierno de 2025", "intro": [ "En este módulo, aprenderás sobre algoritmos comunes incluyendo búsqueda binaria, mezcla y ordenación, ordenación por selección, y más. Construirás talleres y laboratorios para practicar estos conceptos y tomar un breve cuestionario para probar tus conocimientos." ] }, "python-graphs-and-trees": { - "note": "Coming Winter 2025", + "note": "Próximamente en invierno de 2025", "intro": [ "En este módulo, aprenderás sobre gráficos en ciencias de la computación así como listas de adyacencia, árboles, tries, y más. Construirás talleres y laboratorios para practicar estos conceptos y tomar un breve cuestionario para probar tus conocimientos." ] @@ -1919,7 +1918,7 @@ ] }, "sql-and-postgresql": { - "note": "Coming Winter 2025", + "note": "Próximamente en invierno de 2025", "intro": [ "En este módulo, aprenderás a trabajar con bases de datos relacionales que almacenan datos como colecciones en tablas. Algunos de los conceptos que aprenderás incluyen insertar y ver datos de tablas, claves primarias y externas en SQL, y más. Luego construirás un taller y un laboratorio para practicar estos conceptos y tomar un breve cuestionario para poner a prueba tus conocimientos." ] @@ -2003,7 +2002,7 @@ ] }, "security-and-privacy": { - "note": "Coming Late 2026", + "note": "Próximamente a finales de 2026", "intro": [ "En este módulo, aprenderás sobre las diferencias entre seguridad y privacidad, así como otros conceptos incluyendo CSPs, Políticas de Permisos, PII, trabajando con CORS, y más. Luego tomarás un breve cuestionario para probar tus conocimientos." ] @@ -2029,49 +2028,49 @@ "capstone-project": { "note": "Próximamente a finales de 2026", "intro": [ - "This will be your opportunity to build out a full stack application encompassing what you have learned throughout this certification." + "Esta será tu oportunidad para construir una aplicación full stack que abarque lo que has aprendido a lo largo de esta certificación." ] }, "certified-full-stack-developer-exam": { "note": "Próximamente a finales de 2026", "intro": [ - "This will be a 90 question exam testing what you have learned throughout this certification." + "Este será un examen de 90 preguntas que evaluará lo que has aprendido a lo largo de esta certificación." ] } }, "blocks": { "workshop-curriculum-outline": { - "title": "Build a Curriculum Outline", + "title": "Construir un Esquema Curricular", "intro": [ "¡Bienvenid@ a freeCodeCamp!", - "This workshop will serve as your introduction to HTML and coding in general. You will learn about headings and paragraph elements." + "Este taller servirá como tu introducción a HTML y la programación en general. Aprenderás sobre elementos de títulos y párrafos." ] }, "lab-debug-camperbots-profile-page": { - "title": "Debug Camperbot's Profile Page", + "title": "Depurar la Página de Perfil de Camperbot", "intro": [ - "Camperbot is learning how to code too and needs some help with their HTML.", - "In this lab, you will help Camperbot find and fix the errors in their code." + "Camperbot también está aprendiendo a programar y necesita algo de ayuda con su HTML.", + "En este laboratorio, ayudarás a Camperbot a encontrar y corregir los errores en su código." ] }, "lecture-understanding-html-attributes": { - "title": "Understanding HTML Attributes", + "title": "Entendiendo los Atributos de HTML", "intro": [ - "In these lessons, you will learn more about HTML (HyperText Markup Language), a markup language for creating web pages.", - "You will learn about HTML's role on the web, and what HTML attributes are." + "En estas lecciones, aprenderás más sobre HTML (Lenguaje de Marcado de Hipertexto), un lenguaje de marcado para crear páginas web.", + "Aprenderás sobre el papel del HTML en la web y qué son los atributos de HTML." ] }, "lab-debug-pet-adoption-page": { - "title": "Debug a Pet Adoption Page", + "title": "Depurar una Página de Adopción de Mascotas", "intro": [ - "In this lab, you will need to find and fix the errors in this pet adoption page." + "En este laboratorio, necesitarás encontrar y corregir los errores en esta página de adopción de mascotas." ] }, "lecture-understanding-the-html-boilerplate": { - "title": "Understanding the HTML Boilerplate", + "title": "Entendiendo el HTML Boilerplate", "intro": [ - "In these lessons, you will learn about the HTML boilerplate which is a ready-made template for your webpages.", - "You will learn how to work with the link element, meta element and more." + "En estas lecciones, aprenderás sobre la plantilla HTML que es una plantilla lista para usar para tus páginas web.", + "Aprenderás a trabajar con el elemento link, el elemento meta y más." ] }, "workshop-cat-photo-app": { @@ -2090,19 +2089,19 @@ "lecture-html-fundamentals": { "title": "Fundamentos de HTML", "intro": [ - "In these lessons, you will learn about HTML fundamentals like the div element, the id and class attributes, the HTML boilerplate, HTML entities, and more." + "En estas lecciones, aprenderás sobre los fundamentos de HTML, como el elemento div, los atributos id y class, la plantilla HTML, las entidades HTML y más." ] }, "workshop-bookstore-page": { - "title": "Build a Bookstore Page", + "title": "Construir una página de librería.", "intro": [ - "In this workshop, you will practice working with classes, ids and the div element by building a bookstore page." + "En este taller, practicarás trabajando con clases, identificadores y el elemento div mediante la construcción de una página de librería." ] }, "lecture-understanding-how-html-affects-seo": { - "title": "Understanding How HTML Affects SEO", + "title": "Entendiendo Cómo HTML Afecta al SEO.", "intro": [ - "In these lessons, you will learn how your HTML code impacts search engine optimization." + "En estas lecciones, aprenderás cómo tu código HTML impacta en la optimización para motores de búsqueda." ] }, "lab-travel-agency-page": { @@ -2112,39 +2111,39 @@ ] }, "lecture-working-with-audio-and-video-elements": { - "title": "Working with Audio and Video Elements", + "title": "Trabajando con Elementos de Audio y Video", "intro": [ - "In these lessons, you will learn how to work with the audio and video elements." + "En estas lecciones, aprenderás cómo trabajar con los elementos audio y video." ] }, "lab-html-audio-and-video-player": { - "title": "Build an HTML Audio and Video Player", + "title": "Construir un Reproductor de Audio y Video en HTML", "intro": [ - "In this lab, you will build an HTML audio and video player using the video and audio elements with controls and source attributes." + "En este laboratorio, construirás un reproductor de audio y video en HTML utilizando los elementos video y audio con controles y atributos fuente." ] }, "lecture-working-with-images-and-svgs": { - "title": "Working with Images and SVGs", + "title": "Trabajando con Imágenes y SVGs", "intro": [ - "In these lessons, you will learn how to work with SVGs and learn about techniques for optimizing your images." + "En estas lecciones, aprenderás a trabajar con SVGs y sobre técnicas para optimizar tus imágenes." ] }, "workshop-build-a-heart-icon": { - "title": "Build a Heart Icon", + "title": "Construir un Ícono de Corazón", "intro": [ - "In this workshop, you will practice working with SVGs by building a heart icon" + "En este taller, practicarás trabajando con SVGs construyendo un ícono de corazón" ] }, "lecture-working-with-media": { - "title": "Working with the iframe Element", + "title": "Trabajando con el Elemento iframe", "intro": [ - "In these lessons, you will learn how to work with the iframe element which is used to embed an external site on your web page." + "En estas lecciones, aprenderás a trabajar con el elemento iframe, que se utiliza para insertar un sitio externo en tu página web." ] }, "workshop-build-a-video-display-using-iframe": { - "title": "Build a Video Display Using iframe", + "title": "Construir una Visualización de Video Usando iframe.", "intro": [ - "In this workshop, you'll learn how to work with the iframe element by building a video display." + "En este taller, aprenderás a trabajar con el elemento iframe creando una visualización de video." ] }, "lab-video-compilation-page": { @@ -2156,7 +2155,7 @@ "lecture-working-with-links": { "title": "Trabajar con enlaces", "intro": [ - "In these lessons, you will learn about links, the target attribute, different link states, absolute, and relative paths, and more." + "En estas lecciones, aprenderás sobre enlaces, el atributo target, diferentes estados de enlace, rutas absolutas y relativas, y más." ] }, "review-basic-html": { @@ -2170,43 +2169,43 @@ "title": "Cuestionario básico de HTML", "intro": [ "El siguiente cuestionario pondrá a prueba tus conocimientos de los conceptos básicos de HTML que has aprendido hasta ahora.", - "If you're getting ready for the exam, there are several quiz sets available for practice. After completing a quiz, you can revisit this page to access a new set of questions." + "Si te estás preparando para el examen, hay varios conjuntos de cuestionarios disponibles para practicar. Después de completar un cuestionario, puedes volver a esta página para acceder a un nuevo conjunto de preguntas." ] }, "lecture-importance-of-semantic-html": { "title": "Importancia del HTML semántico", "intro": [ - "In these lessons, you will learn about semantic HTML and why you should care about it, semantic elements, how semantic HTML differs from presentational HTML, and more." + "En estas lecciones, aprenderás sobre HTML semántico y por qué debería importarte, elementos semánticos, cómo el HTML semántico difiere del HTML de presentación, y más." ] }, "lecture-understanding-nuanced-semantic-elements": { - "title": "Understanding Nuanced Semantic Elements", + "title": "Entendiendo Elementos Semánticos Sutiles", "intro": [ - "In these lessons, you will learn when you should use certain semantic elements like the em element over the i element, description lists, and more." + "En estas lecciones, aprenderás cuándo debes usar ciertos elementos semánticos como el elemento em sobre el elemento i, listas de descripciones y más." ] }, "workshop-major-browsers-list": { - "title": "Build a List of Major Web Browsers", + "title": "Cree una lista de navegadores web importantes.", "intro": [ - "In this workshop, you will build a description list and work with the dl, dt, and dd elements." + "En este taller, construirás una lista de descripción y trabajarás con los elementos dl, dt, y dd." ] }, "lecture-working-with-text-and-time-semantic-elements": { - "title": "Working with Text and Time Semantic Elements ", + "title": "Trabajando con Elementos Semánticos de Texto y Tiempo", "intro": [ - "In this lesson, you will learn about the importance of semantics in conveying meaning for text and time-related content including the time, blockquote elements and more." + "En esta lección, aprenderás sobre la importancia de la semántica en la transmisión de significado para contenido de texto y relacionado con el tiempo, incluidos los elementos time, blockquote y más." ] }, "workshop-quincys-job-tips": { - "title": "Build Quincy's Job Tips Page", + "title": "Crea la página de consejos de empleo de Quincy.", "intro": [ - "In this workshop, you will practice working with semantic HTML by using the q, blockquote and cite elements." + "En este taller, practicarás trabajando con HTML semántico utilizando los elementos q, blockquote y cite." ] }, "lecture-working-with-specialized-semantic-elements": { - "title": "Working with Specialized Semantic Elements", + "title": "Trabajando con Elementos Semánticos Especializados", "intro": [ - "In this lesson, you will learn about specialized semantic elements like u, s, code elements and more." + "En esta lección, aprenderás sobre elementos semánticos especializados como los elementos u, s, code y más." ] }, "workshop-blog-page": { @@ -2232,13 +2231,13 @@ "title": "Cuestionario de HTML semántico", "intro": [ "El siguiente cuestionario pondrá a prueba tus conocimientos sobre los conceptos semánticos de HTML que has aprendido hasta ahora.", - "If you're getting ready for the exam, there are several quiz sets available for practice. After completing a quiz, you can revisit this page to access a new set of questions." + "Si te estás preparando para el examen, hay varios conjuntos de cuestionarios disponibles para practicar. Después de completar un cuestionario, puedes volver a esta página para acceder a un nuevo conjunto de preguntas." ] }, "lecture-working-with-forms": { "title": "Trabajar con formularios", "intro": [ - "In these lessons, you will learn about forms, the role of labels, inputs and buttons in creating forms, client-side form validation, and form states." + "En estas lecciones, aprenderás sobre formularios, el papel de las etiquetas, entradas y botones en la creación de formularios, la validación de formularios del lado del cliente y los estados de formularios." ] }, "workshop-hotel-feedback-form": { @@ -2258,7 +2257,7 @@ "lecture-working-with-tables": { "title": "Trabajar con tablas", "intro": [ - "In these lessons, you will learn about HTML tables, how to create them, and when to use them." + "En estas lecciones, aprenderás sobre tablas HTML, cómo crearlas y cuándo usarlas." ] }, "workshop-final-exams-table": { @@ -2277,7 +2276,7 @@ "lecture-working-with-html-tools": { "title": "Trabajar con herramientas HTML", "intro": [ - "In these lessons, you will learn about HTML tools and how they let you write better code. These tools include HTML validators, DOM Inspector, and the browser developer tools." + "En estas lecciones, aprenderás sobre las herramientas HTML y cómo te permiten escribir mejor código. Estas herramientas incluyen validadores HTML, Inspector DOM y herramientas de desarrollador del navegador." ] }, "review-html-tables-and-forms": { @@ -2291,70 +2290,68 @@ "title": "Cuestionario sobre tablas y formularios HTML", "intro": [ "El siguiente cuestionario pondrá a prueba sus conocimientos sobre tablas HTML, formularios y herramientas HTML de uso común.", - "If you're getting ready for the exam, there are several quiz sets available for practice. After completing a quiz, you can revisit this page to access a new set of questions." + "Si te estás preparando para el examen, hay varios conjuntos de cuestionarios disponibles para practicar. Después de completar un cuestionario, puedes volver a esta página para acceder a un nuevo conjunto de preguntas." ] }, "lecture-importance-of-accessibility-and-good-html-structure": { "title": "Importancia de la accesibilidad y una buena estructura HTML", "intro": [ - "In these lessons, you will learn about accessibility and its importance, assistive tools for people with disabilities, HTML attributes that let you create inclusive websites, accessibility best practices, and much more." + "En estas lecciones, aprenderás sobre accesibilidad y su importancia, herramientas asistivas para personas con discapacidades, atributos HTML que te permiten crear sitios web inclusivos, mejores prácticas de accesibilidad y mucho más." ] }, "workshop-debug-coding-journey-blog-page": { - "title": "Debug a Coding Journey Blog Page", + "title": "Depurar una Página de Blog de Viaje de Codificación.", "intro": [ - "In this workshop, you will debug and fix accessibility errors in a coding blog page." + "En este taller, depurarás y corregirás errores de accesibilidad en una página de blog de codificación." ] }, "lecture-accessible-tables-forms": { - "title": "Working with Accessible Tables and Forms", + "title": "Trabajando con Tablas y Formularios Accesibles", "intro": [ - "In these lessons, you will learn about how to create accessible tables and forms." + "En estas lecciones, aprenderás a crear tablas y formularios accesibles." ] }, "workshop-tech-conference-schedule": { - "title": "Build a Tech Conference Schedule Table", + "title": "Construir una Tabla de Horarios para una Conferencia Tecnológica", "intro": [ - "In this workshop, you will build an accessible tech conference schedule table." + "En este taller, construirás una tabla de horarios accesible para una conferencia tecnológica." ] }, "lecture-introduction-to-aria": { - "title": "Introduction to ARIA", - "intro": [ - "In these lessons, you will learn about working with ARIA roles." - ] + "title": "Introducción a ARIA", + "intro": ["En estas lecciones, aprenderás a trabajar con roles ARIA."] }, "workshop-accessible-audio-controller": { - "title": "Build an Accessible Audio Controller", + "title": "Cree un control de audio accesible.", "intro": [ - "In this workshop, you will practice accessible HTML by building an audio controller that uses the aria-labelledby attribute." + "En este taller, practicarás HTML accesible construyendo un control de audio que utilice el atributo aria-labelledby." ] }, "lecture-accessible-media-elements": { - "title": "Working with Accessible Media Elements", + "title": "Trabajando con Elementos de Medios Accesibles", "intro": [ - "In these lessons, you will learn about how to create accessible links, audio and video content." + "En estas lecciones, aprenderás a crear enlaces accesibles, contenido de audio y video." ] }, "lab-checkout-page": { "title": "Crear una página de pago", "intro": [ "En este laboratorio, creará una página de pago accesible.", - "You'll practice concepts like alt attributes and ARIA roles." + "Practicarás conceptos como los atributos alt y los roles ARIA." ] }, "lab-movie-review-page": { - "title": "Design a Movie Review Page", + "title": "Diseñar una Página de Reseñas de Películas", "intro": [ - "In this lab, you'll create a movie review page.", - "You'll practice concepts like semantic HTML, alt attributes, accessible lists, and hiding decorative content from screen readers using aria-hidden." + "En este laboratorio, crearás una página de reseña de películas.", + "Practicarás conceptos como HTML semántico, atributos alt, listas accesibles y ocultar contenido decorativo de lectores de pantalla usando aria-hidden." ] }, "lab-multimedia-player": { "title": "Construir un reproductor multimedia", "intro": [ "En este laboratorio, construirás un reproductor multimedia.", - "You will practice working with the audio and video elements, the controls attribute, and the aria-label attribute." + "Practicarás trabajar con los elementos audio y video, el atributo controls y el atributo aria-label." ] }, "review-html-accessibility": { @@ -2368,7 +2365,7 @@ "title": "Cuestionario de accesibilidad HTML", "intro": [ "El siguiente cuestionario pondrá a prueba tus conocimientos sobre los conceptos de accesibilidad que has aprendido hasta ahora.", - "If you're getting ready for the exam, there are several quiz sets available for practice. After completing a quiz, you can revisit this page to access a new set of questions." + "Si te estás preparando para el examen, hay varios conjuntos de cuestionarios disponibles para practicar. Después de completar un cuestionario, puedes volver a esta página para acceder a un nuevo conjunto de preguntas." ] }, "review-html": { @@ -2385,19 +2382,19 @@ "lecture-understanding-computer-internet-and-tooling-basics": { "title": "Comprensión de los conceptos básicos de computadoras, Internet y herramientas", "intro": [ - "In these lessons, you will learn about the computer, its different parts, internet service providers (ISPs), and the tools professional developers use." + "En estas lecciones, aprenderás sobre la computadora, sus diferentes partes, proveedores de servicios de Internet (ISP) y las herramientas que usan los desarrolladores profesionales." ] }, "lecture-working-with-file-systems": { "title": "Trabajar con sistemas de archivos", "intro": [ - "In these lessons, you will learn how to work with file and folder systems on your computers. You will learn how to create, move, and delete files and folders, the best practices for naming and organizing files and folders, and more." + "En estas lecciones, aprenderás cómo trabajar con sistemas de archivos y carpetas en tus computadoras. Aprenderás cómo crear, mover y eliminar archivos y carpetas, las mejores prácticas para nombrar y organizar archivos y carpetas, y más." ] }, "lecture-browsing-the-web-effectively": { "title": "Navegar por la Web de manera eficaz", "intro": [ - "In these lessons, you will learn about what websites, search engine, and web browsers are, the different browsers available, and how to get the best out of a search engine." + "En estas lecciones, aprenderás sobre qué son los sitios web, los motores de búsqueda y los navegadores web, los diferentes navegadores disponibles y cómo sacar el máximo provecho de un motor de búsqueda." ] }, "review-computer-basics": { @@ -2416,7 +2413,7 @@ "lecture-what-is-css": { "title": "Que es CSS", "intro": [ - "The following lessons are all about CSS. You will learn what CSS is and its role on the web, a CSS rule and its anatomy, the three ways to write CSS and when to use each, inline and block elements, and many more." + "Las siguientes lecciones tratan sobre CSS. Aprenderás qué es CSS y su función en la web, una regla CSS y su anatomía, las tres maneras de escribir CSS y cuándo usar cada una, elementos en línea y en bloque, y muchos más." ] }, "workshop-cafe-menu": { @@ -2436,18 +2433,18 @@ "lecture-css-specificity-the-cascade-algorithm-and-inheritance": { "title": "Especificidad de CSS, algoritmo en cascada y herencia", "intro": [ - "In these lessons, you will learn about CSS specificity, the common selectors and their specificities, the cascade algorithm, inheritance, and more." + "En estas lecciones, aprenderás sobre la especificidad de CSS, los selectores comunes y sus especificidades, el algoritmo en cascada, la herencia y más." ] }, "review-basic-css": { - "title": "CSS Fundamentals Review", + "title": "Revisión de fundamentos de CSS", "intro": [ "Antes de que te examinen sobre conceptos básicos de CSS, primero debes repasar.", "Abra esta página para revisar conceptos que incluyen margin, padding, combinadores CSS, especificidad CSS y más." ] }, "quiz-basic-css": { - "title": "CSS Fundamentals Quiz", + "title": "Cuestionario sobre fundamentos de CSS", "intro": [ "Pon a prueba lo que has aprendido en este cuestionario de conocimientos básicos de CSS." ] @@ -2455,7 +2452,7 @@ "lecture-styling-lists-and-links": { "title": "Listas y enlaces de estilos", "intro": [ - "In these lessons, you will learn the properties you need to know to effectively style lists and links, including link states like link, visited, hover, and active." + "En estas lecciones, aprenderás las propiedades que necesitas saber para diseñar listas y enlaces de manera efectiva, incluyendo estados de enlace como link, visited, hover y active." ] }, "lab-stylized-to-do-list": { @@ -2468,7 +2465,7 @@ "lecture-working-with-backgrounds-and-borders": { "title": "Trabajar con fondos y bordes", "intro": [ - "In these lessons, you will learn about the properties and values you need to know to style backgrounds and borders of elements, alongside the accessibility considerations for backgrounds." + "En estas lecciones, aprenderás sobre las propiedades y valores que necesitas conocer para diseñar los fondos y bordes de los elementos, junto con las consideraciones de accesibilidad para los fondos." ] }, "lab-blog-post-card": { @@ -2494,19 +2491,19 @@ "lecture-user-interface-design-fundamentals": { "title": "Fundamentos del diseño de la interfaz de usuario", "intro": [ - "In these lessons, you will learn about the fundamentals of user interface (UI) design. You will learn about the terms you need to know to communicate with designers, visual hierarchy, scaling, alignment, whitespace, and much more." + "En estas lecciones, aprenderás sobre los fundamentos del diseño de interfaces de usuario (UI). Aprenderás sobre los términos que necesitas conocer para comunicarte con los diseñadores, jerarquía visual, escalado, alineación, espacio en blanco y mucho más." ] }, "lecture-user-centered-design": { "title": "Diseño centrado en el usuario", "intro": [ - "In these lessons, you will learn about best practices for designing user-facing features like dark mode, breadcrumbs, modal dialogs, and much more. You will also learn how to conduct user research, user requirements and testing." + "En estas lecciones, aprenderás sobre las mejores prácticas para diseñar funciones orientadas al usuario, como el modo oscuro, las migas de pan, los cuadros de diálogo modales y mucho más. También aprenderás a realizar investigaciones de usuarios, requisitos de usuarios y pruebas." ] }, "lecture-common-design-tools": { "title": "Herramientas de diseño comunes", "intro": [ - "In these lessons, you will learn about the common design tools developers should know. You will also learn about design briefs and how developers work with them." + "En estas lecciones, aprenderás sobre las herramientas de diseño comunes que los desarrolladores deben conocer. También aprenderás sobre los briefs de diseño y cómo los desarrolladores trabajan con ellos." ] }, "review-design-fundamentals": { @@ -2525,7 +2522,7 @@ "lecture-working-with-relative-and-absolute-units": { "title": "Trabajar con unidades relativas y absolutas", "intro": [ - "In these lessons, you will learn about relative and absolute units, and how they both impact what you see in the browser." + "En estas lecciones, aprenderás sobre las unidades relativas y absolutas, y cómo estas influyen en lo que ves en el navegador." ] }, "lab-event-flyer-page": { @@ -2551,13 +2548,13 @@ "lecture-working-with-pseudo-classes-and-pseudo-elements-in-css": { "title": "Trabajar con pseudoclases y pseudoelementos en CSS", "intro": [ - "In these lessons, you will learn about pseudo-classes and pseudo-elements, alongside their examples and how they work." + "En estas lecciones, aprenderás sobre pseudoclases y pseudoelementos, junto con sus ejemplos y cómo funcionan." ] }, "workshop-greeting-card": { "title": "Diseña una tarjeta de felicitación", "intro": [ - "In the previous lessons, you learned how to work with the different types of pseudo-classes.", + "En las lecciones anteriores, aprendiste a trabajar con los diferentes tipos de pseudoclases.", "En este taller tendrás la oportunidad de practicar lo aprendido diseñando una tarjeta de felicitación." ] }, @@ -2584,7 +2581,7 @@ "lecture-working-with-colors-in-css": { "title": "Trabajar con colores en CSS", "intro": [ - "In these lessons, you will learn about linear and radial gradients, the color theory, different kinds of colors like named, RGB, Hex, and HSL colors. You will learn how these colors work, and which to use in specific cases." + "En estas lecciones, aprenderás sobre gradientes lineales y radiales, la teoría del color, diferentes tipos de colores como los colores con nombre, RGB, Hex y HSL. Aprenderás cómo funcionan estos colores y cuáles usar en casos específicos." ] }, "workshop-colored-markers": { @@ -2615,7 +2612,7 @@ "lecture-best-practices-for-styling-forms": { "title": "Mejores prácticas para aplicar estilo a los formularios", "intro": [ - "In these lessons, you will learn about the best practices for styling forms and issues you can encounter while styling special inputs like color and datetime-local." + "En estas lecciones, aprenderás sobre las mejores prácticas para diseñar formularios y los problemas que puedes encontrar al diseñar entradas especiales como color y datetime-local." ] }, "workshop-registration-form": { @@ -2631,16 +2628,16 @@ ] }, "workshop-game-settings-panel": { - "title": "Build a Game Settings Panel", + "title": "Construir un Panel de Configuración de Juego", "intro": [ - "In this workshop, you will practice styling checkboxes by building a game settings panel." + "En este taller, practicarás el estilo de las cajas de verificación mediante la construcción de un panel de configuración del juego." ] }, "lab-feature-selection": { - "title": "Design a Feature Selection Page", + "title": "Diseñar una Página de Selección de Funciones", "intro": [ - "In this lab, you'll build a feature selection page with custom-styled checkboxes.", - "You'll create feature cards with labels and checkboxes, then give custom styling to the checkboxes." + "En este laboratorio, construirás una página de selección de funciones con casillas de verificación personalizadas.", + "Crearás tarjetas de funciones con etiquetas y casillas de verificación, luego darás estilo personalizado a las casillas de verificación." ] }, "review-styling-forms": { @@ -2659,7 +2656,7 @@ "lecture-working-with-css-transforms-overflow-and-filters": { "title": "Trabajando con transformaciones CSS, Overflow, y Filtros", "intro": [ - "In these lessons, you will learn about working with CSS transforms, overflow, and filters. You will also learn about the box model and how it works." + "En estas lecciones, aprenderás a trabajar con transformaciones CSS, desbordamientos y filtros. También aprenderás sobre el modelo de caja y cómo funciona." ] }, "workshop-rothko-painting": { @@ -2691,7 +2688,7 @@ "lecture-working-with-css-flexbox": { "title": "Trabajar con CSS Flexbox", "intro": [ - "In these lessons, you will learn how CSS flexbox works, its properties, and when you should use it." + "En estas lecciones, aprenderás cómo funciona CSS flexbox, sus propiedades y cuándo deberías usarlo." ] }, "workshop-flexbox-photo-gallery": { @@ -2723,7 +2720,7 @@ "lecture-working-with-css-fonts": { "title": "Trabajar con fuentes CSS", "intro": [ - "In these lessons, you will learn about typography and its best practices, fonts, and the text-shadow property." + "En estas lecciones, aprenderás sobre tipografía y sus mejores prácticas, fuentes y la propiedad text-shadow." ] }, "workshop-nutritional-label": { @@ -2754,7 +2751,7 @@ "lecture-best-practices-for-accessibility-and-css": { "title": "Mejores prácticas para la accesibilidad y CSS", "intro": [ - "In these lessons, you will learn about best practices for accessibility in CSS, and the tools for checking good color contrast on websites." + "En estas lecciones, aprenderás sobre las mejores prácticas para la accesibilidad en CSS y las herramientas para verificar un buen contraste de color en los sitios web." ] }, "workshop-accessibility-quiz": { @@ -2786,7 +2783,7 @@ "lecture-understanding-how-to-work-with-floats-and-positioning-in-css": { "title": "Cómo trabajar con flotantes y posicionamiento en CSS", "intro": [ - "In these lessons, you will learn how to use CSS positioning and floats. You will learn about absolute, relative, fixed, and sticky positioning. You will also use the z-index property." + "En estas lecciones, aprenderás a usar el posicionamiento CSS y los flotantes. Aprenderás sobre el posicionamiento absolute, relative, fixed y sticky. También usarás la propiedad z-index." ] }, "workshop-cat-painting": { @@ -2819,7 +2816,7 @@ "lecture-working-with-attribute-selectors": { "title": "Trabajar con selectores de atributos", "intro": [ - "In these lessons, you will learn about attribute selectors and how to use them to target elements like links and lists." + "En estas lecciones, aprenderás sobre los selectores de atributos y cómo usarlos para orientar elementos como enlaces y listas." ] }, "workshop-balance-sheet": { @@ -2851,14 +2848,14 @@ "lecture-best-practices-for-responsive-web-design": { "title": "Mejores prácticas para el diseño web responsivo", "intro": [ - "In these lessons, you will learn about the best practices for responsive web design, the roles concepts like grid, flexbox, media queries, and media breakpoints play in responsive design, and more." + "En estas lecciones, aprenderás sobre las mejores prácticas para el diseño web responsivo, los roles de conceptos como cuadrícula, flexbox, consultas de medios y puntos de interrupción de medios en el diseño responsivo, y más." ] }, "workshop-piano": { "title": "Diseña un Piano", "intro": [ "El diseño responsivo le dice a su página web cómo debe verse en pantallas de diferentes tamaños.", - "In this workshop, you'll use CSS and responsive design to code a piano. You'll also practice media queries and pseudo selectors." + "En este taller, utilizarás CSS y diseño responsivo para codificar un piano. También practicarás consultas de medios y pseudoselectores." ] }, "lab-technical-documentation-page": { @@ -2884,7 +2881,7 @@ "lecture-working-with-css-variables": { "title": "Trabajar con variables CSS", "intro": [ - "In these lessons, you will learn how to define and use custom properties (also known as CSS variables). You will also learn about the @property rule and how it works." + "En estas lecciones, aprenderás a definir y usar propiedades personalizadas (también conocidas como variables CSS). También aprenderás sobre la regla @property y cómo funciona." ] }, "workshop-city-skyline": { @@ -2917,7 +2914,7 @@ "lecture-working-with-css-grid": { "title": "Trabajar con CSS Grid", "intro": [ - "In these lessons, you will learn about CSS grid, its several properties and how to use them, and how CSS grid differs from flexbox." + "En estas lecciones, aprenderás sobre el CSS grid, sus diversas propiedades y cómo usarlas, y en qué se diferencia del flexbox." ] }, "workshop-magazine": { @@ -2928,15 +2925,15 @@ ] }, "lab-newspaper-layout": { - "title": "Design a Newspaper Layout", + "title": "Diseñar un Diseño de Periódico.", "intro": [ - "In this lab, you will design a newspaper layout using CSS Grid, including concepts like grid rows and grid columns." + "En este laboratorio, diseñarás un diseño de periódico usando CSS Grid, incluyendo conceptos como filas de cuadrícula y columnas de cuadrícula." ] }, "lecture-debugging-css": { "title": "Depuración de CSS", "intro": [ - "In this lesson, you'll learn how to debug CSS using your browser's developer tools and CSS validators." + "En esta lección, aprenderás cómo depurar CSS usando las herramientas de desarrollo de tu navegador y validadores de CSS." ] }, "lab-product-landing-page": { @@ -2961,7 +2958,7 @@ "lecture-animations-and-accessibility": { "title": "Animaciones y accesibilidad", "intro": [ - "In these lessons, you will learn about CSS animations and their accessibility concerns. You will also learn how prefers-reduced-motion can help address those accessibility concerns." + "En estas lecciones, aprenderás sobre las animaciones CSS y sus problemas de accesibilidad. También aprenderás cómo prefers-reduced-motion puede ayudar a abordar esos problemas de accesibilidad." ] }, "workshop-ferris-wheel": { @@ -3014,25 +3011,25 @@ "lecture-working-with-code-editors-and-ides": { "title": "Trabajar con editores de código e IDE", "intro": [ - "In these lessons, you will learn how to work with code editors and IDEs. You will learn various concepts about the most popular code editor, VS Code such as its installation, how to create a project in it, keyboard shortcuts, and extensions." + "En estas lecciones, aprenderás a trabajar con editores de código e IDE. Aprenderás varios conceptos sobre el editor de código más popular, VS Code, como su instalación, cómo crear un proyecto en él, atajos de teclado y extensiones." ] }, "lecture-introduction-to-javascript": { "title": "Introducción a JavaScript", "intro": [ - "In these lessons, you will learn the fundamentals of JavaScript. Topics covered include, but are not limited to, variables, data types, how JavaScript interacts with HTML and CSS, and much more." + "En estas lecciones, aprenderás los fundamentos de JavaScript. Los temas abarcan, pero no se limitan a, variables, tipos de datos, cómo interactúa JavaScript con HTML y CSS, y mucho más." ] }, "lecture-introduction-to-strings": { - "title": "Introduction to Strings", + "title": "Introducción a las Cadenas.", "intro": [ - "In these lessons, you will learn how to work with strings and string concatenation." + "En estas lecciones, aprenderás a trabajar con cadenas y concatenación de cadenas." ] }, "lecture-understanding-code-clarity": { - "title": "Understanding Code Clarity", + "title": "Comprendiendo la Claridad del Código.", "intro": [ - "In these lessons, you will learn about comments in JavaScript and the role of semicolons in programming." + "En estas lecciones, aprenderás sobre los comentarios en JavaScript y el papel de los puntos y comas en la programación." ] }, "workshop-greeting-bot": { @@ -3057,7 +3054,7 @@ "lecture-working-with-data-types": { "title": "Trabajar con tipos de datos", "intro": [ - "In the following lessons, you will learn how to work with data types in JavaScript. You will also learn how dynamic typing differs from static typing, the typeof operator, and the typeof null bug." + "En las siguientes lecciones, aprenderás a trabajar con tipos de datos en JavaScript. También aprenderás en qué se diferencian la tipificación dinámica de la estática, el operador typeof y el error typeof null." ] }, "review-javascript-variables-and-data-types": { @@ -3076,7 +3073,7 @@ "lecture-working-with-strings-in-javascript": { "title": "Trabajar con cadenas en JavaScript", "intro": [ - "In these lessons, you will learn how to work with strings in JavaScript. You will learn how to access characters from a string, how to use template literals and interpolation, how to create a new line in strings, and much more." + "En estas lecciones, aprenderás a trabajar con cadenas en JavaScript. Aprenderás cómo acceder a caracteres de una cadena, cómo usar literales de plantilla e interpolación, cómo crear una nueva línea en cadenas, y mucho más." ] }, "workshop-teacher-chatbot": { @@ -3087,45 +3084,45 @@ ] }, "lecture-working-with-string-character-methods": { - "title": "Working with String Character Methods", + "title": "Trabajando con Métodos de Caracteres de Cadena", "intro": [ - "In this lesson you will learn about ASCII character encoding and how to use JavaScript's charCodeAt() and fromCharCode() methods to convert between characters and their numerical ASCII values." + "En esta lección aprenderás sobre la codificación de caracteres ASCII y cómo usar los métodos charCodeAt() y fromCharCode() de JavaScript para convertir entre caracteres y sus valores numéricos ASCII." ] }, "lecture-working-with-string-search-and-slice-methods": { - "title": "Working with String Search and Slice Methods", + "title": "Trabajando con Métodos de Búsqueda y Corte de Cadenas", "intro": [ - "In this lesson you will learn how to search for substrings using the includes() method and how to extract portions of strings using the slice() method." + "En esta lección aprenderás cómo buscar subcadenas usando el método includes() y cómo extraer porciones de cadenas usando el método slice()." ] }, "workshop-string-inspector": { - "title": "Build a String Inspector", + "title": "Construir un Inspector de Cadenas.", "intro": [ - "In this workshop, you will practice working with the includes() and slice() methods by building a string inspector." + "En este taller, practicarás trabajar con los métodos includes() y slice() construyendo un inspector de cadenas." ] }, "lecture-working-with-string-formatting-methods": { - "title": "Working with String Formatting Methods", + "title": "Trabajando con Métodos de Formateo de Cadena", "intro": [ - "In this lesson you will learn how to format strings by changing their case using toUpperCase() and toLowerCase() methods, and how to remove whitespace using trim(), trimStart(), and trimEnd() methods." + "En esta lección aprenderás cómo formatear cadenas cambiando su caso utilizando los métodos toUpperCase() y toLowerCase(), y cómo eliminar espacios en blanco usando trim(), trimStart() y trimEnd()." ] }, "workshop-string-formatter": { - "title": "Build a String Formatter", + "title": "Construir un Formateador de Cadenas.", "intro": [ - "In this workshop, you will practice working with various string methods including the trim(), toUpperCase() and toLowerCase() methods." + "En este taller, practicarás trabajar con varios métodos de cadenas, incluidos los métodos trim(), toUpperCase() y toLowerCase()." ] }, "lecture-working-with-string-modification-methods": { - "title": "Working with String Modification Methods", + "title": "Trabajando con Métodos de Modificación de Cadena", "intro": [ - "In this lesson you will learn how to modify strings by replacing parts of them using the replace() method and how to repeat strings multiple times using the repeat() method." + "En esta lección aprenderás cómo modificar cadenas reemplazando partes de ellas utilizando el método replace() y cómo repetir cadenas varias veces utilizando el método repeat()." ] }, "workshop-string-transformer": { - "title": "Build a String Transformer", + "title": "Construye un Transformador de Cadenas", "intro": [ - "In this workshop, you will practice working with the replace(), replaceAll() and repeat() methods." + "En este taller, practicarás trabajar con los métodos replace(), replaceAll() y repeat()." ] }, "review-javascript-strings": { @@ -3142,47 +3139,47 @@ ] }, "lecture-working-with-numbers-and-arithmetic-operators": { - "title": "Working with Numbers and Arithmetic Operators", + "title": "Trabajando con Números y Operadores Aritméticos", "intro": [ - "In these lessons you will learn about the number type, arithmetic operators, and using them with numbers and strings." + "En estas lecciones aprenderás sobre el tipo de número, operadores aritméticos, y su uso con números y cadenas." ] }, "lab-debug-type-coercion-errors": { - "title": "Debug Type Coercion Errors in a Buggy App", + "title": "Depura errores de coerción de tipos en una aplicación con errores.", "intro": [ - "In this lab, you will be working with a buggy app that contains several type coercion errors.", - "Your task is to identify and fix these errors to ensure the application functions correctly." + "En este laboratorio, trabajarás con una aplicación con errores que contiene varios errores de coerción de tipos.", + "Tu tarea es identificar y corregir estos errores para asegurar que la aplicación funcione correctamente." ] }, "lecture-working-with-operator-behavior": { - "title": "Working with Operator Behavior", + "title": "Trabajando con el Comportamiento del Operador", "intro": [ - "In these lessons you will learn about operator precedence, the increment and decrement operators, and compound assignment operators." + "En estas lecciones aprenderás sobre la precedencia de operadores, los operadores de incremento y decremento, y los operadores de asignación compuesta." ] }, "lab-debug-increment-and-decrement-operator-errors": { - "title": "Debug Increment and Decrement Operator Errors in a Buggy App", + "title": "Depura errores de operadores de incremento y decremento en una aplicación con errores.", "intro": [ - "In this lab, you'll debug an application that has several errors related to the increment and decrement operators.", - "Your task is to identify and fix the errors so that the application works as intended." + "En este laboratorio, depurarás una aplicación que tiene varios errores relacionados con los operadores de incremento y decremento.", + "Tu tarea es identificar y corregir estos errores para que la aplicación funcione como concebido." ] }, "lecture-working-with-comparison-and-boolean-operators": { - "title": "Working with Comparison and Boolean Operators", + "title": "Trabajando con Operadores de Comparación y Booleanos", "intro": [ - "In these lessons you will learn about booleans, and equality and inequality operators, and other comparison operators." + "En estas lecciones aprenderás sobre booleanos, operadores de igualdad y desigualdad, y otros operadores de comparación." ] }, "lecture-working-with-unary-and-bitwise-operators": { - "title": "Working with Unary and Bitwise Operators", + "title": "Trabajando con Operadores Unarios y de Bits", "intro": [ - "In these lessons you will learn about unary and bitwise operators." + "En estas lecciones, aprenderás sobre operadores unarios y de bits." ] }, "lecture-working-with-conditional-logic-and-math-methods": { - "title": "Working with Conditional Logic and Math Methods", + "title": "Trabajando con Lógica Condicional y Métodos Matemáticos", "intro": [ - "In these lessons you will learn about conditional statements, binary logical operators, and the Math object." + "En estas lecciones, aprenderás sobre sentencias condicionales, operadores lógicos binarios y el objeto Math." ] }, "workshop-mathbot": { @@ -3201,7 +3198,7 @@ "lecture-working-with-numbers-and-common-number-methods": { "title": "Trabajar con números y métodos de números comunes", "intro": [ - "In these lessons, you will learn about numbers and common number methods. These include isNaN(), parseInt(), parseFloat(), and toFixed()." + "En estas lecciones, aprenderás sobre números y métodos numéricos comunes. Estos incluyen isNaN(), parseInt(), parseFloat() y toFixed()." ] }, "review-javascript-math": { @@ -3220,7 +3217,7 @@ "lecture-understanding-comparisons-and-conditionals": { "title": "Comprensión de comparaciones y condicionales", "intro": [ - "In these lessons, you will learn about comparison operators and conditionals. You will learn how the various conditionals differ from one another, and how comparisons work with null and undefined." + "En estas lecciones, aprenderás sobre operadores de comparación y condicionales. Aprenderás cómo se diferencian los distintos condicionales y cómo funcionan las comparaciones con null y undefined." ] }, "review-javascript-comparisons-and-conditionals": { @@ -3239,7 +3236,7 @@ "lecture-working-with-functions": { "title": "Trabajar con funciones", "intro": [ - "In these lessons, you will learn how to reuse a block of code with functions. You will learn what the purpose of a function is and how they work, and how scope works in programming. " + "En estas lecciones, aprenderás a reutilizar un bloque de código con funciones. Aprenderás cuál es el propósito de una función, cómo funcionan y cómo funciona el alcance en programación. " ] }, "workshop-calculator": { @@ -3249,9 +3246,9 @@ ] }, "lab-boolean-check": { - "title": "Build a Boolean Check Function", + "title": "Construir una Función de Verificación de Booleanos", "intro": [ - "In this lab, you'll implement a function that checks if a value is a boolean." + "En este laboratorio, implementarás una función que verifica si un valor es booleano." ] }, "lab-email-masker": { @@ -3269,14 +3266,16 @@ ] }, "lab-celsius-to-fahrenheit-converter": { - "title": "Build a Celsius to Fahrenheit Converter", + "title": "Construir un Convertidor de Celsius a Fahrenheit", "intro": [ - "In this lab you will implement a function that converts the temperature from Celsius to Fahrenheit." + "En este laboratorio implementarás una función que convierte la temperatura de Celsius a Fahrenheit." ] }, "lab-counting-cards": { - "title": "Build a Card Counting Assistant", - "intro": ["In this lab you will use JavaScript to count dealt cards."] + "title": "Construir un Asistente para Contar Tarjetas", + "intro": [ + "En este laboratorio usarás JavaScript para contar cartas repartidas." + ] }, "lab-leap-year-calculator": { "title": "Construya una calculadora de años bisiestos ", @@ -3285,15 +3284,15 @@ ] }, "lab-truncate-string": { - "title": "Implement the Truncate String Algorithm", + "title": "Implementar el Algoritmo de Truncar Cadenas", "intro": [ - "In this lab, you will practice truncating a string at a certain length." + "En este laboratorio, practicarás truncar una cadena a una cierta longitud." ] }, "lab-string-ending-checker": { - "title": "Build a Confirm the Ending Tool", + "title": "Construir una Herramienta para Confirmar el Final", "intro": [ - "In this lab, you will implement a function that checks if a given string ends with a specified target string." + "En este laboratorio, implementarás una función que verifica si una cadena dada termina con una cadena objetivo especificada." ] }, "review-javascript-functions": { @@ -3312,7 +3311,7 @@ "lecture-working-with-arrays": { "title": "Trabajar con matrices", "intro": [ - "In these lessons, you will learn how to work with JavaScript arrays. You will learn about what makes an array, one-dimensional and two-dimensional arrays, how to access and update the elements in an array, and much more." + "En estas lecciones, aprenderás a trabajar con arreglos en JavaScript. Aprenderás qué constituye un arreglo, arreglos unidimensionales y bidimensionales, cómo acceder y actualizar los elementos en un arreglo, y mucho más." ] }, "workshop-shopping-list": { @@ -3329,21 +3328,21 @@ ] }, "lab-golf-score-translator": { - "title": "Build a Golf Score Translator", + "title": "Construir un Traductor de Puntuación de Golf", "intro": [ - "For this lab, you will use array methods to translate golf scores into their nickname." + "Para este laboratorio, usarás métodos de arreglo para traducir puntuaciones de golf a su apodo." ] }, "lab-reverse-a-string": { - "title": "Build a String Inverter", + "title": "Construir un Inversor de Cadenas", "intro": [ - "In this lab, you create a function that reverses a given string." + "En este laboratorio, crearás una función que invierte una cadena dada." ] }, "lecture-working-with-common-array-methods": { "title": "Cómo trabajar con métodos de matriz comunes", "intro": [ - "In these lessons, you will learn about the array methods for performing more advanced operations like getting the position of an item in an array, checking if an array contains a certain element, copying an array, and lots more." + "En estas lecciones, aprenderás sobre los métodos de arreglos para realizar operaciones más avanzadas como obtener la posición de un elemento en un arreglo, verificar si un arreglo contiene un determinado elemento, copiar un arreglo y mucho más." ] }, "review-javascript-arrays": { @@ -3360,21 +3359,21 @@ ] }, "lecture-introduction-to-javascript-objects-and-their-properties": { - "title": "Introduction to JavaScript Objects and Their Properties", + "title": "Introducción a Objetos JavaScript y Sus Propiedades.", "intro": [ - "In these lessons, you will learn the fundamentals of JavaScript objects, including how to create them, access their properties, and understand the difference between primitive and non-primitive data types." + "En estas lecciones, aprenderás los fundamentos de los objetos en JavaScript, incluyendo cómo crearlos, acceder a sus propiedades y entender la diferencia entre tipos de datos primitivos y no primitivos." ] }, "lecture-working-with-optional-chaining-and-object-destructuring": { - "title": "Working with Optional Chaining and Object Destructuring", + "title": "Trabajando con Encadenamiento Opcional y Desestructuración de Objetos.", "intro": [ - "In these lessons, you will learn about advanced object manipulation techniques in JavaScript, including the optional chaining operator and object destructuring syntax." + "En estas lecciones, aprenderás sobre técnicas avanzadas de manipulación de objetos en JavaScript, incluyendo el operador de encadenamiento opcional y la sintaxis de desestructuración de objetos." ] }, "lecture-working-with-json": { - "title": "Working with JSON", + "title": "Trabajando con JSON.", "intro": [ - "In these lessons, you will learn about JavaScript Object Notation (JSON), including how to access JSON data and use the JSON.parse() and JSON.stringify() methods." + "En estas lecciones, aprenderás sobre JavaScript Object Notation (JSON), incluyendo cómo acceder a los datos en JSON y usar los métodos JSON.parse() y JSON.stringify()." ] }, "workshop-recipe-tracker": { @@ -3391,9 +3390,9 @@ ] }, "lab-record-collection": { - "title": "Build a Record Collection", + "title": "Construir una Colección de Registros", "intro": [ - "In this lab you will build a function to manage a record collection." + "En este laboratorio construirás una función para gestionar una colección de registros." ] }, "review-javascript-objects": { @@ -3412,7 +3411,7 @@ "lecture-working-with-loops": { "title": "Trabajar con bucles", "intro": [ - "Loops are an essential part of JavaScript. That's why the following lessons have been prepared for you to learn about the different types of loops and how they work, and also how iteration works." + "Los bucles son una parte esencial de JavaScript. Por eso, las siguientes lecciones han sido preparadas para que aprendas sobre los diferentes tipos de bucles y cómo funcionan, y también cómo funciona la iteración." ] }, "workshop-sentence-analyzer": { @@ -3422,9 +3421,9 @@ ] }, "lab-longest-word-in-a-string": { - "title": "Build a Longest Word Finder App", + "title": "Construir una Aplicación de Buscador de la Palabra Más Larga", "intro": [ - "In this lab, you will use JavaScript loops to find the length of the longest word in the given sentence." + "En este laboratorio, usarás bucles de JavaScript para encontrar la longitud de la palabra más larga en la oración dada." ] }, "lab-factorial-calculator": { @@ -3435,33 +3434,33 @@ ] }, "lab-mutations": { - "title": "Implement the Mutations Algorithm", + "title": "Implementar el Algoritmo de Mutaciones", "intro": [ - "In this lab, you will practice iterating over two different strings to compare their characters." + "En este laboratorio, practicarás iterar sobre dos cadenas diferentes para comparar sus caracteres." ] }, "lab-chunky-monkey": { - "title": "Implement the Chunky Monkey Algorithm", + "title": "Implementar el Algoritmo Chunky Monkey", "intro": [ - "In this lab, you will practice dividing an array into smaller arrays with the technique of your choice." + "En este laboratorio, practicarás dividir un arreglo en arreglos más pequeños con la técnica de tu elección." ] }, "lab-profile-lookup": { - "title": "Build a Profile Lookup", + "title": "Construir una Búsqueda de Perfiles", "intro": [ - "In this lab, you'll create a function that looks up profile information." + "En este laboratorio, crearás una función que busca información de perfiles." ] }, "lab-repeat-a-string": { - "title": "Build a String Repeating Function", + "title": "Construir una Función de Repetición de Cadena", "intro": [ - "In this lab, you will implement loops to repeat a string a specified number of times." + "En este laboratorio, implementarás bucles para repetir una cadena un número especificado de veces." ] }, "lab-missing-letter-detector": { - "title": "Build a Missing Letter Detector", + "title": "Construir un Detector de Letras Faltantes.", "intro": [ - "In this lab, you will build a function that finds the missing letter in a given range of consecutive letters and returns it." + "En este laboratorio, construirás una función que encuentra la letra faltante en un rango dado de letras consecutivas y la devuelve." ] }, "review-javascript-loops": { @@ -3478,39 +3477,39 @@ ] }, "lecture-working-with-types-and-objects": { - "title": "Working with Types and Objects", + "title": "Trabajando con Tipos y Objetos", "intro": [ - "In these lessons you will learn about string objects, the toString() method, the Number constructor and more." + "En estas lecciones, aprenderás sobre objetos de cadena, el método toString(), el constructor Number y más." ] }, "lecture-working-with-arrays-variables-and-naming-practices": { - "title": "Working with Arrays, Variables, and Naming Practices", + "title": "Trabajando con Arreglos, Variables y Prácticas de Nombres", "intro": [ - "In these lessons you will learn about common practices for naming variables and functions, and how to work with arrays." + "En estas lecciones, aprenderás sobre prácticas comunes para nombrar variables y funciones, y cómo trabajar con arreglos." ] }, "lecture-working-with-code-quality-and-execution-concepts": { - "title": "Working with Code Quality and Execution Concepts", + "title": "Trabajando con Calidad de Código y Conceptos de Ejecución", "intro": [ - "In these lessons you will learn what are linters and formatters, what is memory management, and closures." + "En estas lecciones, aprenderás qué son los linters y formateadores, qué es la gestión de memoria y clausuras." ] }, "lab-largest-number-finder": { - "title": "Build the Largest Number Finder", + "title": "Construir un Buscador del Número Más Grande", "intro": [ - "In this lab, you will use JavaScript fundamentals to create a function that finds the largest number in each sub-array of a given array." + "En este laboratorio, usarás fundamentos de JavaScript para crear una función que encuentre el número más grande en cada sub-arreglo de un arreglo dado." ] }, "lab-first-element-finder": { - "title": "Build a First Element Finder", + "title": "Construir un Buscador del Primer Elemento", "intro": [ - "In this lab, you will create a function that looks through an array and returns the first element in it that passes a \"truth test\"." + "En este laboratorio, crearás una función que recorra un arreglo y devuelva el primer elemento que pase una \"prueba de verdad\"." ] }, "lab-slice-and-splice": { - "title": "Implement the Slice and Splice Algorithm", + "title": "Implementar el Algoritmo de Cortar y Raspadura", "intro": [ - "In this lab, you will practice merging an array with another." + "En este laboratorio, practicarás fusionar un arreglo con otro." ] }, "lab-pyramid-generator": { @@ -3530,19 +3529,19 @@ "lecture-the-var-keyword-and-hoisting": { "title": "La palabra clave var y la elevación", "intro": [ - "In these lessons, you will learn about the var keyword and why it is not recommended for use anymore. You will also learn about hoisting in JavaScript so you can avoid subtle bugs in your code." + "En estas lecciones, aprenderás sobre la palabra clave var y por qué ya no se recomienda su uso. También aprenderás sobre el hoisting en JavaScript para evitar errores sutiles en tu código." ] }, "lab-title-case-converter": { - "title": "Build a Title Case Converter", + "title": "Construir un Convertidor de Mayúsculas en Título.", "intro": [ - "In this lab, you will build a function that converts a string to title case." + "En este laboratorio, construirás una función que convierte una cadena a mayúsculas en título." ] }, "lab-falsy-remover": { - "title": "Implement a Falsy Remover", + "title": "Implementar un Removedor de Falsos.", "intro": [ - "In this lab, you will create a function that removes all falsy values from an array." + "En este laboratorio, crearás una función que elimina todos los valores falsos de un arreglo." ] }, "lab-inventory-management-program": { @@ -3555,19 +3554,19 @@ "lecture-understanding-modules-imports-and-exports": { "title": "Comprensión de módulos, importaciones y exportaciones", "intro": [ - "In this lesson, you will learn about modules, imports, and exports in JavaScript." + "En esta lección, aprenderás sobre los módulos, importaciones y exportaciones en JavaScript." ] }, "lecture-working-with-the-arguments-object-and-rest-parameters": { - "title": "Working with the arguments Object and Rest Parameters", + "title": "Trabajando con el Objeto arguments y Parámetros Rest.", "intro": [ - "In these lessons, you will learn how to work with the arguments object and rest parameter syntax." + "En estas lecciones, aprenderás cómo trabajar con el objeto arguments y la sintaxis de parámetros rest." ] }, "lab-unique-sorted-union": { - "title": "Implement a Unique Sorted Union", + "title": "Implementar una Unión Única Ordenada.", "intro": [ - "In this lab, you will create a function that takes two or more arrays and returns a new array of unique values in the order of the original provided arrays." + "En este laboratorio, crearás una función que toma dos o más arreglos y devuelve un nuevo arreglo de valores únicos en el orden de los arreglos originales proporcionados." ] }, "lab-password-generator": { @@ -3577,39 +3576,39 @@ ] }, "lab-sum-all-numbers-algorithm": { - "title": "Design a Sum All Numbers Algorithm", + "title": "Diseñar un Algoritmo para Sumar Todos los Números", "intro": [ - "In this lab, you will design a sum all numbers algorithm. This algorithm takes an array of two numbers and returns the sum of those two numbers plus the sum of all the numbers between them." + "En este laboratorio, diseñarás un algoritmo para sumar todos los números. Este algoritmo toma un arreglo de dos números y devuelve la suma de esos dos números más la suma de todos los números entre ellos." ] }, "lab-dna-pair-generator": { - "title": "Implement a DNA Pair Generator", + "title": "Implementar un Generador de Pares de ADN.", "intro": [ - "In this lab you will implement a DNA base pairing algorithm that converts a single DNA strand into complementary base pairs." + "En este laboratorio, implementarás un algoritmo de apareamiento de bases de ADN que convierte un solo filamento de ADN en pares de bases complementarias." ] }, "lab-html-entitiy-converter": { - "title": "Implement an HTML Entity Converter", + "title": "Implementar un Convertidor de Entidades HTML", "intro": [ - "In this lab, you will convert special characters in a string to their corresponding HTML entities." + "En este laboratorio, convertirás caracteres especiales de una cadena a sus correspondientes entidades HTML." ] }, "lab-odd-fibonacci-sum-calculator": { - "title": "Build an Odd Fibonacci Sum Calculator", + "title": "Construir una Calculadora de Suma de Fibonacci Impares.", "intro": [ - "In this lab you will build an odd Fibonacci sum calculator that takes a number and returns the sum of all odd Fibonacci numbers that are less than or equal to that number." + "En este laboratorio, construirás una calculadora de suma de Fibonacci impares que toma un número y devuelve la suma de todos los números de Fibonacci impares que son menores o iguales a ese número." ] }, "lab-element-skipper": { - "title": "Implement an Element Skipper", + "title": "Implementar un Ocriptor de Elementos", "intro": [ - "In this lab you will create a function that skips elements in an array based on a specified step value." + "En este laboratorio crearás una función que omita elementos en un arreglo basado en un valor de paso especificado." ] }, "lab-optional-arguments-sum-function": { - "title": "Build an Optional Arguments Sum Function", + "title": "Construir una Función de Suma con Argumentos Opcionales", "intro": [ - "In this lab you will build a function that accepts up to two arguments, and sum them, but if there is only one argument returns a function that waits for the second number to sum." + "En este laboratorio construirás una función que acepte hasta dos argumentos y los sume, pero si hay solo un argumento, devuelve una función que espera el segundo número para sumar." ] }, "review-javascript-fundamentals": { @@ -3628,7 +3627,7 @@ "lecture-working-with-higher-order-functions-and-callbacks": { "title": "Trabajar con funciones de orden superior y devoluciones de llamadas", "intro": [ - "In these lessons, you will learn how to work with higher order functions and callbacks. The higher order functions you will learn include map(), filter(), reduce(), sort(), every(), and some(). You will also learn how to chain these methods together to achieve your desired results." + "En estas lecciones, aprenderás a trabajar con funciones de orden superior y callbacks. Las funciones de orden superior que aprenderás incluyen map(), filter(), reduce(), sort(), every() y some(). También aprenderás a encadenar estos métodos para lograr los resultados deseados." ] }, "workshop-library-manager": { @@ -3644,51 +3643,51 @@ ] }, "lab-sorted-index-finder": { - "title": "Implement a Sorted Index Finder", + "title": "Implementar un Buscador de Índices Ordenados", "intro": [ - "In this lab, you will create a function that finds the index at which a given number should be inserted into a sorted array to maintain the array's sorted order." + "En este laboratorio, crearás una función que encuentra el índice en el que un número dado debería ser insertado en un arreglo ordenado para mantener el orden del arreglo." ] }, "lab-symmetric-difference": { - "title": "Build a Symmetric Difference Function", + "title": "Construir una Función de Diferencia Simétrica.", "intro": [ - "In this lab, you will practice using higher order functions to find the symmetric difference between two arrays." + "En este laboratorio, practicarás usando funciones de orden superior para encontrar la diferencia simétrica entre dos arreglos." ] }, "lab-value-remover-function": { - "title": "Implement a Value Remover Function", + "title": "Implementar una Función Removedora de Valores.", "intro": [ - "In this lab, you will create a function that removes all instances of a specified value from an array." + "En este laboratorio, crearás una función que elimina todas las instancias de un valor especificado de un arreglo." ] }, "lab-matching-object-filter": { - "title": "Implement a Matching Object Filter", + "title": "Implementar un Filtro de Objeto Coincidente.", "intro": [ - "In this lab, you will create a function that looks through an array of objects and returns an array of all objects that have matching property and value pairs." + "En este laboratorio, crearás una función que mira a través de un arreglo de objetos y devuelve un arreglo de todos los objetos que tienen pares de propiedad y valor coincidentes." ] }, "lab-prime-number-sum-calculator": { - "title": "Build a Prime Number Sum Calculator", + "title": "Construir un Calculador de Suma de Números Primos", "intro": [ - "In this lab you will build a prime number sum calculator that takes a number and returns the sum of all prime numbers that are less than or equal to that number." + "En este laboratorio crearás un calculador de suma de números primos que toma un número y devuelve la suma de todos los números primos que son menores o iguales a ese número." ] }, "lab-range-based-lcm-calculator": { - "title": "Implement a Range-Based LCM Calculator", + "title": "Implementar una Calculadora de MCM Basada en Rango.", "intro": [ - "In this lab, you will create a function that takes an array of two numbers and returns the least common multiple (LCM) of those two numbers and all the numbers between them." + "En este laboratorio, crearás una función que toma un arreglo de dos números y devuelve el mínimo común múltiplo (MCM) de esos dos números y todos los números entre ellos." ] }, "lab-deep-flattening-tool": { - "title": "Create a Deep Flattening Tool", + "title": "Crear una Herramienta de Aplanamiento Profundo.", "intro": [ - "In this lab you will create a function that can flatten deeply nested arrays, handling any level of nesting without using built-in flat methods." + "En este laboratorio crearás una función que puede aplanar arreglos anidados profundamente, manejando cualquier nivel de anidación sin usar métodos planos incorporados." ] }, "lab-all-true-property-validator": { - "title": "Build an All-True Property Validator", + "title": "Construir un Validador de Propiedades Verdaderas.", "intro": [ - "In this lab you will build a function that checks if all objects in an array have a truthy value for a specific property." + "En este laboratorio, construirás una función que verifica si todos los objetos en un arreglo tienen un valor verdadero para una propiedad específica." ] }, "review-javascript-higher-order-functions": { @@ -3707,7 +3706,7 @@ "lecture-working-with-the-dom-click-events-and-web-apis": { "title": "Trabajar con DOM, eventos de clic y API web", "intro": [ - "In these lessons, you will learn how to work with the Document Object Model (DOM), the addEventListener() method and events, and web APIs." + "En estas lecciones, aprenderás a trabajar con el Modelo de Objetos del Documento (DOM), el método addEventListener() y eventos, y las APIs web." ] }, "workshop-storytelling-app": { @@ -3717,9 +3716,9 @@ ] }, "workshop-emoji-reactor": { - "title": "Build an Emoji Reactor", + "title": "Construir un Reactor de Emoji.", "intro": [ - "In this workshop, you will build an emoji reactor to practice querySelector and querySelectorAll." + "En este taller, construirás un reactor de emoji para practicar querySelector y querySelectorAll." ] }, "lab-favorite-icon-toggler": { @@ -3731,7 +3730,7 @@ "lecture-understanding-the-event-object-and-event-delegation": { "title": "Comprensión del objeto de evento y la delegación de eventos", "intro": [ - "In these lessons, you will learn about the event object, the change event, event bubbling, and event delegation." + "En estas lecciones, aprenderás sobre el objeto de evento, el evento de cambio, la propagación de eventos y la delegación de eventos." ] }, "workshop-music-instrument-filter": { @@ -3750,7 +3749,7 @@ "lab-lightbox-viewer": { "title": "Construir un visor Lightbox", "intro": [ - "In this lab, you'll build a lightbox viewer for viewing images in a focused mode.", + "En este laboratorio, construirás un visor tipo lightbox para ver imágenes en un modo enfocado.", "Practicarás eventos de clic y alternancia de clases." ] }, @@ -3780,47 +3779,47 @@ ] }, "lecture-understanding-aria-expanded-aria-live-and-common-aria-states": { - "title": "Understanding aria-expanded, aria-live, and Common ARIA States", + "title": "Entendiendo aria-expanded, aria-live y Estados ARIA Comunes", "intro": [ - "In these lessons you will learn more about ARIA attributes like aria-expanded, aria-live, and common ARIA states." + "En estas lecciones, aprenderás más sobre los atributos ARIA como aria-expanded, aria-live y los estados ARIA comunes." ] }, "workshop-planets-tablist": { - "title": "Build a Planets Tablist", + "title": "Construir una Lista con Pestañas de Planetas", "intro": [ - "In this workshop, you will build a dynamic tabbed interface that showcases facts about the planets in the solar system." + "En este taller, construirás una interfaz con pestañas dinámicas que muestra hechos sobre los planetas del sistema solar." ] }, "workshop-note-taking-app": { - "title": "Build a Note Taking App", + "title": "Construir una Aplicación de Toma de Notas", "intro": [ - "In this workshop, you are going to build an accessible note taking app.", - "This will provide you with the opportunity to practice working with aria-live attribute." + "En este taller, crearás una aplicación de toma de notas accesible.", + "Esto te brindará la oportunidad de practicar trabajando con el atributo aria-live." ] }, "lab-theme-switcher": { - "title": "Build a Theme Switcher", + "title": "Construir un Interruptor de Tema", "intro": [ - "In this lab, you will build a theme switcher and practice working with the aria-haspopup, aria-expanded, and aria-controls attributes." + "En este laboratorio, construirás un interruptor de tema y practicarás trabajando con los atributos aria-haspopup, aria-expanded y aria-controls." ] }, "review-js-a11y": { - "title": "JavaScript and Accessibility Review", + "title": "Revisión de JavaScript y Accesibilidad", "intro": [ - "Before you're quizzed on JavaScript and accessibility, you should review what you've learned about it.", - "Open up this page to review concepts including how to work with the aria-expanded, aria-live, and aria-controls attributes." + "Antes de que te interroguen sobre JavaScript y accesibilidad, deberías repasar lo que has aprendido al respecto.", + "Abre esta página para repasar conceptos incluyendo cómo trabajar con los atributos aria-expanded, aria-live, y aria-controls." ] }, "quiz-js-a11y": { - "title": "JavaScript and Accessibility Quiz", + "title": "Cuestionario de JavaScript y Accesibilidad", "intro": [ - "Test your knowledge of JavaScript and accessibility best practices with this quiz." + "Pon a prueba tus conocimientos sobre JavaScript y las mejores prácticas de accesibilidad con este cuestionario." ] }, "lecture-debugging-techniques": { "title": "Técnicas de depuración", "intro": [ - "In these lessons, you will learn about the common errors in JavaScript and the techniques you can use to fix them – a process called debugging." + "En estas lecciones, aprenderás sobre los errores comunes en JavaScript y las técnicas que puedes usar para corregirlos: un proceso llamado depuración." ] }, "lab-random-background-color-changer": { @@ -3845,7 +3844,7 @@ "lecture-working-with-regular-expressions": { "title": "Trabajar con expresiones regulares", "intro": [ - "In these lessons, you will learn about regular expressions in JavaScript. You will learn about the methods for working with regular expressions, modifiers, character classes, lookaheads, lookbehinds, back-references, quantifiers, and more." + "En estas lecciones, aprenderás sobre expresiones regulares en JavaScript. Aprenderás sobre los métodos para trabajar con expresiones regulares, modificadores, clases de caracteres, búsquedas anticipadas, búsquedas retrospectivas, referencias posteriores, cuantificadores y más." ] }, "workshop-spam-filter": { @@ -3875,22 +3874,22 @@ ] }, "lab-spinal-case-converter": { - "title": "Implement a Spinal Case Converter", + "title": "Implementar un Convertidor de Caso Espinal.", "intro": [ - "In this lab, you will create a function that converts a given string to spinal case which is a style of writing where all letters are lowercase and separated by hyphens." + "En este laboratorio, crearás una función que convierte una cadena dada a caso espinal, que es un estilo de escritura donde todas las letras están en minúsculas y separadas por guiones." ] }, "lab-pig-latin": { - "title": "Implement a Pig Latin Translator", + "title": "Implementar un Traductor de Latín de Cerdo.", "intro": [ - "In this lab, you'll implement a Pig Latin translator using JavaScript.", - "You'll practice string manipulation, conditional logic, and regular expressions." + "En este laboratorio, implementarás un traductor de latín de cerdo usando JavaScript.", + "Practicarás la manipulación de cadenas, la lógica condicional y las expresiones regulares." ] }, "lab-smart-word-replacement": { - "title": "Build a Smart Word Replacement Function", + "title": "Construir una Función de Reemplazo de Palabras Inteligente.", "intro": [ - "In this lab, you will use regex to create a function that performs a search and replace operation on a given string." + "En este laboratorio, usarás regex para crear una función que realice una operación de búsqueda y reemplazo en una cadena dada." ] }, "review-javascript-regular-expressions": { @@ -3909,7 +3908,7 @@ "lecture-understanding-form-validation": { "title": "Comprensión de la validación de formularios", "intro": [ - "In these lessons, you will learn about form validation in JavaScript. You will learn about the various ways to validate forms, how the preventDefault() method works, and how the submit event works." + "En estas lecciones, aprenderás sobre la validación de formularios en JavaScript. Aprenderás las diferentes formas de validar formularios, cómo funciona el método preventDefault() y cómo funciona el evento de envío." ] }, "workshop-calorie-counter": { @@ -3942,7 +3941,7 @@ "lecture-working-with-dates": { "title": "Trabajar con fechas", "intro": [ - "In these lessons, you will learn about the JavaScript date object. You will learn about the methods for working with dates and how to format dates." + "En estas lecciones, aprenderás sobre el objeto de fecha de JavaScript. Aprenderás sobre los métodos para trabajar con fechas y cómo darles formato." ] }, "lab-date-conversion": { @@ -3967,7 +3966,7 @@ "lecture-working-with-audio-and-video": { "title": "Trabajar con audio y vídeo", "intro": [ - "In these lessons, you will learn how to work with audio and video files using JavaScript. You will learn about the Audio and Video constructors, their methods and properties, audio and video formats, codecs, the HTMLMediaElement API, and much more." + "En estas lecciones, aprenderás cómo trabajar con archivos de audio y vídeo usando JavaScript. Aprenderás sobre los constructores Audio y Video, sus métodos y propiedades, formatos de audio y vídeo, códecs, la API HTMLMediaElement y mucho más." ] }, "workshop-music-player": { @@ -3999,7 +3998,7 @@ "lecture-working-with-maps-and-sets": { "title": "Trabajar con mapas y conjuntos", "intro": [ - "In these lessons, you will learn about JavaScript Map and Set. You will also learn how they both differ from WeakSets and WeakMaps." + "En estas lecciones, aprenderás sobre Map y Set en JavaScript. También aprenderás cómo ambos difieren de WeakSets y WeakMaps." ] }, "workshop-plant-nursery-catalog": { @@ -4031,7 +4030,7 @@ "lecture-working-with-client-side-storage-and-crud-operations": { "title": "Trabajar con operaciones CRUD y almacenamiento del lado del cliente", "intro": [ - "In these lessons, you will learn about client-side storage and CRUD operations in JavaScript. You will learn about localStorage and sessionStorage alongside their methods and properties, cookies, the Cache API, IndexDB, and much more." + "En estas lecciones, aprenderás sobre el almacenamiento del lado del cliente y las operaciones CRUD en JavaScript. Aprenderás sobre localStorage y sessionStorage junto con sus métodos y propiedades, cookies, la API de caché, IndexDB y mucho más." ] }, "workshop-todo-app": { @@ -4064,7 +4063,7 @@ "lecture-understanding-how-to-work-with-classes-in-javascript": { "title": "Entendiendo cómo trabajar con clases en JavaScript", "intro": [ - "In these lessons, you will learn about classes in JavaScript. You will learn about inheritance, the this keyword, static properties and methods, and more." + "En estas lecciones, aprenderás sobre clases en JavaScript. Aprenderás sobre la herencia, la palabra clave this, las propiedades y métodos estáticos y más." ] }, "workshop-shopping-cart": { @@ -4097,13 +4096,13 @@ "quiz-javascript-classes": { "title": "Cuestionario sobre clases de JavaScript", "intro": [ - "Test what you've learned about JavaScript classes with this quiz." + "Pon a prueba lo que has aprendido sobre las clases de JavaScript con este cuestionario." ] }, "lecture-understanding-recursion-and-the-call-stack": { "title": "Comprender la recursión y la pila de llamadas", "intro": [ - "In this lesson, you will learn about recursion and the call stack." + "En esta lección, aprenderás sobre la recursión y la pila de llamadas." ] }, "workshop-decimal-to-binary-converter": { @@ -4135,13 +4134,13 @@ "lecture-understanding-functional-programming": { "title": "Entendiendo la programación funcional", "intro": [ - "In these lessons, you will learn about functional programming and how to nest functions using a technique called currying." + "En estas lecciones, aprenderás sobre la programación funcional y cómo anidar funciones utilizando una técnica llamada currying." ] }, "workshop-recipe-ingredient-converter": { "title": "Crea un convertidor de ingredientes de recetas", "intro": [ - "In the previous lessons, you learned the core concepts behind functional programming and currying.", + "En las lecciones anteriores, aprendiste los conceptos básicos detrás de la programación funcional y currying.", "Ahora podrás aplicar lo que has aprendido sobre curry y programación funcional creando una aplicación de conversión de ingredientes de recetas." ] }, @@ -4167,7 +4166,7 @@ "lecture-understanding-asynchronous-programming": { "title": "Entendiendo la programación asincrónica", "intro": [ - "In these lessons, you will learn about asynchronous programming in JavaScript. You will learn about the differences between synchronous and asynchronous programming, how the async keyword works, the Fetch API, promises, async/await, the Geolocation API, and much more." + "En estas lecciones, aprenderás sobre programación asíncrona en JavaScript. Aprenderás sobre las diferencias entre la programación síncrona y asíncrona, cómo funciona la palabra clave async, la API Fetch, promesas, async/await, la API Geolocation y mucho más." ] }, "workshop-fcc-authors-page": { @@ -4206,7 +4205,7 @@ "title": "Revisión de JavaScript", "intro": [ "Antes de tomar el examen de preparación de JavaScript, debes repasar todo lo que has aprendido sobre JavaScript.", - "Open up this page to review all of the concepts taught including variables, strings, booleans, functions, objects, arrays, debugging, working with the DOM and more." + "Abra esta página para repasar todos los conceptos enseñados, incluidas variables, cadenas, valores booleanos, funciones, objetos, arreglos, depuración, trabajo con el DOM y más." ] }, "kagw": { @@ -4216,13 +4215,13 @@ "lecture-introduction-to-javascript-libraries-and-frameworks": { "title": "Introducción a las librerías y estructuras JavaScript", "intro": [ - "In these lessons, you will get an introduction to JavaScript libraries and frameworks. You will learn about the roles of JavaScript libraries and frameworks, single page applications (SPAs) and the issue surrounding them, and React, the most popular frontend JavaScript library." + "En estas lecciones, recibirás una introducción a las bibliotecas y marcos de JavaScript. Aprenderás sobre las funciones de las bibliotecas y marcos de JavaScript, las aplicaciones de página única (SPA) y los problemas que las rodean, y React, la biblioteca de interfaz de JavaScript más popular." ] }, "workshop-reusable-mega-navbar": { "title": "Construya una mega barra de navegación reutilizable", "intro": [ - "In the previous lessons, you learned how to work with components in React.", + "En las lecciones anteriores, aprendiste a trabajar con componentes en React.", "In this workshop, you will build a reusable Navbar component using React." ] }, @@ -4235,7 +4234,7 @@ "lecture-working-with-data-in-react": { "title": "Trabajar con datos en React", "intro": [ - "In these lessons, you will learn how to work with data in React. You will learn about props and how to pass them around, conditional rendering, how to render lists, and how to use inline styles." + "En estas lecciones, aprenderás a trabajar con datos en React. Aprenderás sobre props y cómo pasar datos, representación condicional, cómo representar listas y cómo usar estilos en línea." ] }, "workshop-reusable-profile-card-component": { @@ -4264,137 +4263,137 @@ ] }, "lecture-working-with-state-and-responding-to-events-in-react": { - "title": "Working with State and Responding to Events in React", + "title": "Trabajando con Estado y Respondiendo a Eventos en React", "intro": [ - "In these lessons, you will learn about working with state and responding to events with React." + "En estas lecciones, aprenderás a trabajar con estados y responder a eventos con React." ] }, "workshop-toggle-text-app": { - "title": "Toggle Text App", + "title": "Aplicación de Texto Toggle", "intro": [ - "In this workshop, you will continue to learn about the useState() hook by building an application that hides and shows a piece of text on the screen." + "En este taller, continuarás aprendiendo sobre el hook useState() construyendo una aplicación que oculta y muestra un texto en la pantalla." ] }, "lab-color-picker": { - "title": "Build a Color Picker App", + "title": "Construir una aplicación selector de color", "intro": [ "En este laboratorio construirás un selector de colores.", - "You'll practice using state and hooks to manage the properties of an element." + "Practicarás el uso del estado y hooks para gestionar las propiedades de un elemento." ] }, "lecture-understanding-effects-and-referencing-values-in-react": { - "title": "Understanding Effects and Referencing Values in React", + "title": "Entendiendo los Efectos y Referencias de Valores en React", "intro": [ - "In these lessons, you will learn about effects and referencing values with React." + "En estas lecciones, aprenderás sobre efectos y referencias de valores con React." ] }, "workshop-fruit-search-app": { - "title": "Build a Fruit Search App", + "title": "Construir una Aplicación de Búsqueda de Frutas", "intro": [ - "In this workshop, you will continue to learn about the useEffect() hook by building an application that fetches fruit data from an API based on user input and displays the results dynamically." + "En este taller, continuarás aprendiendo sobre el hook useEffect() construyendo una aplicación que obtiene datos de frutas de una API basada en la entrada del usuario y muestra los resultados dinámicamente." ] }, "lab-one-time-password-generator": { - "title": "Build a One-Time Password Generator", + "title": "Construir un Generador de Contraseñas de Un Solo Uso", "intro": [ - "In this lab you'll build a one-time password generator.", - "You'll practice using the useEffect hooks to create a timer and generate a random OTP." + "En este laboratorio construirás un generador de contraseñas de un solo uso.", + "Practicarás usando los ganchos useEffect para crear un temporizador y generar un OTP aleatorio." ] }, "review-react-state-and-hooks": { - "title": "React State and Hooks Review", + "title": "Revisión de Estado y Hooks de React", "intro": [ - "Before you're quizzed on React state and hooks, you should review what you've learned.", - "Open up this page to review working with state, custom hooks and more." + "Antes de ser examinado sobre el estado y los hooks de React, debes repasar lo que has aprendido.", + "Abra esta página para revisar cómo trabajar con el estado, los hooks personalizados y más." ] }, "quiz-react-state-and-hooks": { "title": "Cuestionario sobre estados y ganchos de React", "intro": [ - "Test what you've learned about React's useState and useEffect hooks with this quiz." + "Pon a prueba lo que has aprendido sobre los hooks useState y useEffect de React con este cuestionario." ] }, "lecture-working-with-forms-in-react": { - "title": "Working with Forms in React", + "title": "Trabajando con Formularios en React", "intro": [ - "In these lessons, you will learn about working with forms in React." + "En estas lecciones, aprenderás a trabajar con formularios en React." ] }, "workshop-superhero-application-form": { - "title": "Build a Superhero Application Form", + "title": "Construir un Formulario de Aplicación de Superhéroe", "intro": [ - "In this workshop, you will build a superhero application form." + "En este taller, crearás un formulario de aplicación de superhéroes." ] }, "lab-event-rsvp": { - "title": "Build an Event RSVP", + "title": "Crear una RSVP para un Evento", "intro": [ - "In this lab, you'll build an Event RSVP form using React.", - "You'll practice using the useState hook to manage form input and display user responses." + "En este laboratorio, crearás un formulario RSVP para un evento usando React.", + "Practicarás usando el hook useState para gestionar la entrada del formulario y mostrar las respuestas del usuario." ] }, "lecture-working-with-data-fetching-and-memoization-in-react": { - "title": "Working with Data Fetching and Memoization in React", + "title": "Trabajando con Obtención de Datos y Memoización en React", "intro": [ - "In these lessons, you will learn about data fetching and memoization in React." + "En estas lecciones, aprenderás sobre la obtención de datos y la memoización en React." ] }, "workshop-shopping-list-app": { - "title": "Build a Shopping List App", + "title": "Construir una Aplicación de Lista de compras", "intro": [ - "In this workshop, you'll use the useMemo() and useCallback() hooks in React to build a simple shopping list app. You'll learn more about state and the lifecycle of React components, and how to use memoization to reduce re-renders and make your apps more efficient." + "En este taller, utilizarás los hooks useMemo() y useCallback() en React para construir una aplicación simple de lista de compras. Aprenderás más sobre estado y el ciclo de vida de los componentes de React, y cómo usar la memorización para reducir las re-renderizaciones y hacer que tus aplicaciones sean más eficientes." ] }, "lab-currency-converter": { - "title": "Build a Currency Converter", + "title": "Crea un Convertidor de Moneda", "intro": [ - "For this lab, you'll build a currency converter app.", - "You'll use React state, memoization, and controlled components to convert between currencies." + "Para este laboratorio, crearás una aplicación de convertidor de monedas.", + "Usarás el estado de React, la memoización y componentes controlados para convertir entre monedas." ] }, "lecture-routing-react-frameworks-and-dependency-management-tools": { - "title": "Routing, React Frameworks, and Dependency Management Tools", + "title": "Enrutamiento, Frameworks de React y Herramientas de Gestión de Dependencias", "intro": [ - "In these lessons, you will learn about routing in React, React frameworks, and dependency management tools." + "En estas lecciones, aprenderás sobre el enrutamiento en React, los frameworks de React y las herramientas de gestión de dependencias." ] }, "lab-tic-tac-toe": { - "title": "Build a Tic-Tac-Toe Game", + "title": "Construir un juego de Tic-Tac-Toe", "intro": [ - "In this lab, you'll build a Tic-Tac-Toe game using React.", - "You'll practice managing state, handling user interactions, and updating the UI dynamically." + "En este laboratorio, construirás un juego de Tic-Tac-Toe usando React.", + "Practicarás el manejo del estado, la interacción con el usuario y la actualización dinámica de la interfaz." ] }, "lecture-react-strategies-and-debugging": { - "title": "React Strategies and Debugging", + "title": "Estrategias de React y Depuración", "intro": [ - "In these lessons, you will learn about different strategies and debugging in React." + "En estas lecciones, aprenderás sobre diferentes estrategias y depuración en React." ] }, "review-react-forms-data-fetching-and-routing": { - "title": "React Forms, Data Fetching and Routing Review", + "title": "Revisión de Formularios, Obtención de Datos y Enrutamiento en React", "intro": [ - "Before you take the React forms, data fetching and routing quiz, you should review everything you've learned so far.", - "Open up this page, to review all of the concepts taught including routing, forms, state management, prop drilling, data fetching and more." + "Antes de realizar el cuestionario sobre formularios de React, obtención de datos y enrutamiento, debes repasar todo lo que has aprendido hasta ahora.", + "Abra esta página para repasar todos los conceptos enseñados, incluyendo enrutamiento, formularios, gestión de estado, perforación de propiedades, obtención de datos y más." ] }, "quiz-react-forms-data-fetching-and-routing": { - "title": "React Forms, Data Fetching and Routing Quiz", + "title": "Cuestionario sobre Formularios de React, Obtención de Datos y Enrutamiento", "intro": [ - "Test what you've learned about routing, forms, and data fetching with this quiz." + "Pon a prueba lo que has aprendido sobre el enrutamiento, los formularios y la obtención de datos con este cuestionario." ] }, "lecture-understanding-performance-in-web-applications": { - "title": "Understanding Performance in Web Applications", + "title": "Comprendiendo el Rendimiento en Aplicaciones Web", "intro": [ - "In these lessons, you will learn performance in web applications." + "En estas lecciones, aprenderás sobre el rendimiento en aplicaciones web." ] }, "review-web-performance": { "title": "Revisión del rendimiento web", "intro": [ - "Before you take the web performance quiz, you should review everything you've learned so far.", - "Open up this page to review all of the concepts taught including INP, key metrics for measuring performance, Performance Web APIs and more." + "Antes de realizar el cuestionario sobre rendimiento web, debes repasar todo lo que has aprendido hasta ahora.", + "Abra esta página para revisar todos los conceptos enseñados, incluidos los INP, las métricas clave para medir el rendimiento, las APIs de rendimiento web y más." ] }, "quiz-web-performance": { @@ -4404,16 +4403,16 @@ ] }, "lecture-understanding-the-different-types-of-testing": { - "title": "Understanding the Different Types of Testing", + "title": "Comprendiendo los Diferentes Tipos de Pruebas", "intro": [ - "In these lessons, you will learn about the different types of testing." + "En estas lecciones, aprenderás sobre los diferentes tipos de pruebas." ] }, "review-testing": { "title": "Revisión de pruebas", "intro": [ - "Before you take the testing quiz, you should review everything you've learned so far.", - "Open up this page to review all of the concepts taught including unit testing, end-to-end testing, functional testing and more." + "Antes de realizar el cuestionario sobre pruebas, debes repasar todo lo que has aprendido hasta ahora.", + "Abra esta página para revisar todos los conceptos enseñados, incluidas las pruebas unitarias, pruebas end-to-end, pruebas funcionales y más." ] }, "quiz-testing": { @@ -4423,48 +4422,48 @@ ] }, "lecture-working-with-css-libraries-and-frameworks": { - "title": "Working with CSS Libraries and Frameworks", + "title": "Trabajando con Bibliotecas y Frameworks de CSS", "intro": [ - "In these lessons, you will learn how to work with CSS libraries and frameworks." + "En estas lecciones, aprenderás a trabajar con bibliotecas y frameworks CSS." ] }, "workshop-error-message-component": { - "title": "Build an Error Message Component", + "title": "Construir un Componente de Mensaje de Error", "intro": [ - "In this workshop, you will learn the basics of Tailwind CSS by building out an error message component." + "En este taller, aprenderás los conceptos básicos de Tailwind CSS construyendo un componente de mensaje de error." ] }, "workshop-tailwind-cta-component": { - "title": "Build a CTA Component", + "title": "Construir un Componente CTA", "intro": [ - "In this workshop, you will build a call to action (CTA) component using Tailwind CSS." + "En este taller, construirás un componente de llamada a la acción (CTA) usando Tailwind CSS." ] }, "workshop-tailwind-pricing-component": { - "title": "Build a Pricing Component", + "title": "Construir un Componente de Precio", "intro": [ - "In this workshop, you will build a pricing component using Tailwind CSS.", - "You will practice working with Tailwind CSS grid utility classes." + "En este taller, construirás un componente de precios usando Tailwind CSS.", + "Practicarás trabajando con clases de utilidad de cuadrícula de Tailwind CSS." ] }, "lab-music-shopping-cart-page": { - "title": "Build a Music Shopping Cart Page", + "title": "Construir una Página de Carrito de Compras de Música", "intro": [ - "In this lab, you will build a music shopping cart page with Tailwind CSS.", - "You will practice working with Tailwind CSS utility classes for flexbox layouts, colors, breakpoints and more." + "En este laboratorio, construirás una página de carrito de compras de música con Tailwind CSS.", + "Practicarás trabajando con clases de utilidad de Tailwind CSS para layouts de flexbox, colores, puntos de interrupción y más." ] }, "lab-photography-exhibit": { - "title": "Design a Photography Exhibit", + "title": "Diseñar una Exhibición de Fotografía", "intro": [ - "In this lab, you will practice working with Tailwind CSS by designing a photography exhibit webpage." + "En este laboratorio, practicarás trabajando con Tailwind CSS diseñando una página web de exhibición de fotografía." ] }, "review-css-libraries-and-frameworks": { "title": "Revisión de bibliotecas y marcos de CSS", "intro": [ - "Before you take the CSS libraries and frameworks quiz, you should review everything you've learned so far.", - "Open up this page to review all of the concepts taught including CSS frameworks, CSS preprocessors, Sass and more." + "Antes de realizar el cuestionario sobre bibliotecas y frameworks de CSS, debes repasar todo lo que has aprendido hasta ahora.", + "Abra esta página para repasar todos los conceptos enseñados, incluidos los frameworks CSS, preprocesadores CSS, Sass y más." ] }, "quiz-css-libraries-and-frameworks": { @@ -4474,21 +4473,21 @@ ] }, "lecture-introduction-to-typescript": { - "title": "Introduction to TypeScript", + "title": "Introducción a TypeScript", "intro": [ - "In these lessons, you will learn what TypeScript is and how to use it." + "En estas lecciones, aprenderás qué es TypeScript y cómo usarlo." ] }, "lecture-working-with-generics-and-type-narrowing": { - "title": "Working with Generics and Type Narrowing", + "title": "Trabajando con Genéricos y Estrechamiento de Tipos.", "intro": [ - "In these lessons, you will learn about generics and type narrowing in TypeScript." + "En estas lecciones, aprenderás sobre genéricos y estrechamiento de tipos en TypeScript." ] }, "lecture-working-with-typescript-configuration-files": { - "title": "Working with TypeScript Configuration Files", + "title": "Trabajando con Archivos de Configuración de TypeScript.", "intro": [ - "In this lesson, you will learn about TypeScript configuration files and how to use them." + "En esta lección, aprenderás sobre los archivos de configuración de TypeScript y cómo usarlos." ] }, "trvf": { @@ -4514,8 +4513,8 @@ "review-typescript": { "title": "Revisión de Typescript", "intro": [ - "Before you take the TypeScript quiz, you should review everything you've learned so far.", - "Open up this page to review all of the concepts taught including data types in TypeScript, generics, type narrowing and more." + "Antes de hacer el cuestionario sobre TypeScript, debes repasar todo lo que has aprendido hasta ahora.", + "Abra esta página para revisar todos los conceptos enseñados, incluidos los tipos de datos en TypeScript, los genéricos, el estrechamiento de tipos y más." ] }, "quiz-typescript": { @@ -4539,404 +4538,410 @@ "intro": [] }, "lecture-introduction-to-python": { - "title": "Introduction to Python", + "title": "Introducción a Python", "intro": [ - "In these lessons, you will learn the fundamentals of Python. You'll learn about variables, data types, operators, control flow, functions, and more." + "En estas lecciones, aprenderás los fundamentos de Python. Aprenderás sobre variables, tipos de datos, operadores, flujo de control, funciones y más." ] }, "workshop-caesar-cipher": { - "title": "Build a Caesar Cipher", + "title": "Construye un Cifrado César", "intro": [ - "In this workshop, you'll build a Caesar cipher using basic Python concepts such as strings, conditionals, functions, and more." + "En este taller, construirás un cifrado César usando conceptos básicos de Python como cadenas, condicionales, funciones, y más." ] }, "lab-rpg-character": { - "title": "Build an RPG Character", + "title": "Construir un Personaje de RPG.", "intro": [ - "In this lab you will practice basic python by building an RPG character." + "En este laboratorio practicarás el básico de Python construyendo un personaje del RPG." ] }, "review-python-basics": { - "title": "Python Basics Review", + "title": "Revisión de conceptos básicos de Python", "intro": [ - "Before you're quizzed on Python basics, you should review what you've learned about it.", - "In this review page, you will review working with strings, functions, comparison operators and more." + "Antes de que te pregunten sobre los conceptos básicos de Python, debes repasar lo que has aprendido sobre él.", + "En esta página de revisión, repasarás trabajando con cadenas, funciones, operadores de comparación y más." ] }, "quiz-python-basics": { - "title": "Python Basics Quiz", + "title": "Cuestionario sobre Conceptos Básicos de Python", "intro": [ - "Test what you've learned about Python basics with this quiz." + "Pon a prueba lo que has aprendido sobre los conceptos básicos de Python con este cuestionario." ] }, "lecture-working-with-loops-and-sequences": { - "title": "Working with Loops and Sequences", + "title": "Trabajando con Bucles y Secuencias", "intro": [ - "Learn about Working with Loops and Sequences in these lessons." + "Aprenderás sobre el trabajo con bucles y secuencias en estas lecciones." ] }, "workshop-pin-extractor": { - "title": "Build a Pin Extractor", + "title": "Construir un Extractor de PIN", "intro": [ - "In this workshop you will build a function to extract secret pins hidden in poems." + "En este taller construirás una función para extraer pines secretos ocultos en poemas." ] }, "lab-number-pattern-generator": { - "title": "Build a Number Pattern Generator", - "intro": ["In this lab you will build a number pattern generator."] + "title": "Construir un Generador de Patrones Numéricos", + "intro": [ + "En este laboratorio construirás un generador de patrones numéricos." + ] }, "review-loops-and-sequences": { - "title": "Loops and Sequences Review", + "title": "Revisión de Bucles y Secuencias", "intro": [ - "Before you're quizzed on loops and sequences, you should review what you've learned about them.", - "Open up this page to review concepts around loops, lists, tuples and some of their common methods." + "Antes de que te pregunten sobre bucles y secuencias, debes repasar lo que has aprendido sobre ellos.", + "Abra esta página para revisar conceptos sobre bucles, listas, tuplas y algunos de sus métodos comunes." ] }, "quiz-loops-and-sequences": { - "title": "Loops and Sequences Quiz", + "title": "Cuestionario de Bucles y Secuencias", "intro": [ - "Test what you've learned about loops and sequences in Python with this quiz." + "Pon a prueba lo que has aprendido sobre bucles y secuencias en Python con este cuestionario." ] }, "lecture-working-with-dictionaries-and-sets": { - "title": "Working with Dictionaries and Sets", + "title": "Trabajando con Diccionarios y Conjuntos", "intro": [ - "Learn about working with dictionaries and sets in these lessons." + "Aprenderás sobre el trabajo con diccionarios y conjuntos en estas lecciones." ] }, "lecture-working-with-modules": { - "title": "Working with Modules", - "intro": ["Learn about working with modules in these lessons."] + "title": "Trabajando con Módulos", + "intro": ["Aprenderás sobre el trabajo con módulos en estas lecciones."] }, "workshop-medical-data-validator": { - "title": "Build a Medical Data Validator", + "title": "Construir un Validador de Datos Médicos", "intro": [ - "In this workshop, you'll practice working with dictionaries and sets while validating a collection of medical data." + "En este taller, practicarás trabajando con diccionarios y conjuntos validando una colección de datos médicos." ] }, "lab-user-configuration-manager": { - "title": "Build a User Configuration Manager", + "title": "Construir un Gestor de Configuración de Usuario", "intro": [ - "In this lab, you will practice working with dictionaries in Python." + "En este laboratorio, practicarás trabajando con diccionarios en Python." ] }, "review-dictionaries-and-sets": { - "title": "Dictionaries and Sets review", + "title": "Revisión de Diccionarios y Conjuntos", "intro": [ - "Before you're quizzed on dictionaries and sets, you should review what you've learned about them.", - "Open up this page to review concepts around dictionaries, sets, and how to import modules." + "Antes de que te pregunten sobre diccionarios y conjuntos, debes repasar lo que has aprendido sobre ellos.", + "Abre esta página para revisar conceptos sobre diccionarios, conjuntos y cómo importar módulos." ] }, "quiz-dictionaries-and-sets": { - "title": "Dictionaries and Sets Quiz", + "title": "Cuestionario de Diccionarios y Conjuntos", "intro": [ - "Test what you've learned about dictionaries and sets in Python with this quiz." + "Pon a prueba lo que has aprendido sobre diccionarios y conjuntos en Python con este cuestionario." ] }, "lecture-understanding-error-handling": { - "title": "Understanding Error Handling", + "title": "Entendiendo el Manejo de Errores", "intro": [ - "In these lessons, you will learn about error handling in Python. You will learn about the different types of errors, some good debugging practices, what exceptions are, and how to handle them." + "En estas lecciones, aprenderás sobre el manejo de errores en Python. Aprenderás sobre los diferentes tipos de errores, algunas buenas prácticas de depuración, qué son las excepciones y cómo manejarlas." ] }, "lab-isbn-validator": { - "title": "Debug an ISBN Validator", + "title": "Depurar un Validador de ISBN", "intro": [ - "In this lab, you will start with a bugged app, and you will need to debug and fix the bugs until it is working properly." + "En este laboratorio, comenzarás con una aplicación con errores, y necesitarás depurar y corregir los errores hasta que funcione correctamente." ] }, "review-error-handling": { - "title": "Error Handling Review", + "title": "Revisión del Manejo de Errores", "intro": [ - "Before you're quizzed on error handling, you should review what you've learned about it." + "Antes de que te pregunten sobre manejo de errores, debes repasar lo que has aprendido sobre eso." ] }, "quiz-error-handling": { - "title": "Error Handling Quiz", + "title": "Cuestionario de Manejo de Errores", "intro": [ - "Test what you've learned about Error Handling in Python with this quiz." + "Pon a prueba lo que has aprendido sobre el Manejo de Errores en Python con este cuestionario." ] }, "lecture-classes-and-objects": { - "title": "Classes and Objects", - "intro": ["Learn about Classes and Objects in these lessons."] + "title": "Clases y Objetos", + "intro": ["Aprenderás sobre clases y objetos en estas lecciones."] }, "workshop-musical-instrument-inventory": { - "title": "Build a Musical Instrument Inventory", + "title": "Construir un Inventario de Instrumentos Musicales.", "intro": [ - "In this workshop, you will learn about classes, objects, and methods in Python by building a simple musical instrument inventory." + "En este taller, aprenderás sobre clases, objetos y métodos en Python construyendo un simple inventario de instrumentos musicales." ] }, "lab-planet-class": { - "title": "Build a Planet Class", + "title": "Construir una Clase de Planeta", "intro": [ - "In this lab you will create a class that represents a planet." + "En este laboratorio crearás una clase que representa un planeta." ] }, "workshop-email-simulator": { - "title": "Build an Email Simulator", + "title": "Construir un Simulador de Correos Electrónicos", "intro": [ - "In this workshop you will implement classes and objects by building an email simulator that simulates sending, receiving, and managing emails between different users." + "En este taller implementarás clases y objetos creando un simulador de correos electrónicos que simula el envío, recepción y gestión de correos entre diferentes usuarios." ] }, "lab-budget-app": { - "title": "Build a Budget App", + "title": "Construir una Aplicación de Presupuesto", "intro": [ - "In this lab you will build a budget app and practice creating a class and methods for that class." + "En este laboratorio construirás una aplicación de presupuesto y practicarás creando una clase y métodos para esa clase." ] }, "review-classes-and-objects": { - "title": "Classes and Objects Review", + "title": "Revisión de Clases y Objetos", "intro": [ - "Before you're quizzed on classes and objects, you should review what you've learned about them.", - "Open up this page to review concepts like how classes work, what are objects, methods, attributes, special methods and more." + "Antes de que te pregunten sobre clases y objetos, debes repasar lo que has aprendido sobre ellos.", + "Abre esta página para revisar conceptos como cómo funcionan las clases, qué son los objetos, métodos, atributos, métodos especiales y más." ] }, "quiz-classes-and-objects": { - "title": "Classes and Objects Quiz", + "title": "Cuestionario de Clases y Objetos", "intro": [ - "Test what you've learned about classes and objects in Python with this quiz." + "Pon a prueba lo que has aprendido sobre clases y objetos en Python con este cuestionario." ] }, "lecture-understanding-object-oriented-programming-and-encapsulation": { - "title": "Understanding Object Oriented Programming and Encapsulation", + "title": "Comprendiendo la Programación Orientada a Objetos y la Encapsulación", "intro": [ - "Learn about Understanding Object Oriented Programming and Encapsulation in these lessons." + "Aprende sobre la Comprensión de la Programación Orientada a Objetos y la Encapsulación en estas lecciones." ] }, "workshop-salary-tracker": { - "title": "Build a Salary Tracker", + "title": "Construir un Rastreador de Sueldos", "intro": [ - "In this workshop, you'll practice encapsulation, properties, and other OOP concepts by building a salary tracking system for employees." + "En este taller, practicarás la encapsulación, propiedades y otros conceptos de POO construyendo un sistema de seguimiento de sueldos para empleados." ] }, "lab-game-character-stats": { - "title": "Build a Game Character Stats Tracker", + "title": "Construir un Rastreador de Estadísticas de Personajes de Juego.", "intro": [ - "In this lab, you will build a game character with different stats using object-oriented programming." + "En este laboratorio, construirás un personaje de juego con diferentes estadísticas utilizando programación orientada a objetos." ] }, "lecture-understanding-inheritance-and-polymorphism": { - "title": "Understanding Inheritance and Polymorphism", + "title": "Entendiendo la Herencia y el Polimorfismo", "intro": [ - "Learn about Understanding Inheritance and Polymorphism in these lessons." + "Aprende sobre la Comprensión de la Herencia y el Polimorfismo en estas lecciones." ] }, "workshop-media-catalogue": { - "title": "Build a Media Catalogue", + "title": "Construir un Catálogo de Medios.", "intro": [ - "In this workshop, you will create a media catalogue application using object-oriented programming principles." + "En este taller, crearás una aplicación de catálogo de medios usando principios de programación orientada a objetos." ] }, "lab-polygon-area-calculator": { - "title": "Build a Polygon Area Calculator", + "title": "Desarrolla un Calculador de Área de Polígonos", "intro": [ - "In this lab, you will use object-oriented programming to calculate the areas of different polygons like squares and rectangles." + "En este laboratorio, utilizarás la programación orientada a objetos para calcular las áreas de diferentes polígonos como cuadrados y rectángulos." ] }, "lecture-understanding-abstraction": { - "title": "Understanding Abstraction", - "intro": ["Learn about Understanding Abstraction in these lessons."] + "title": "Entendiendo la Abstracción", + "intro": [ + "Aprende sobre la Comprensión de la Abstracción en estas lecciones." + ] }, "workshop-discount-calculator": { - "title": "Build a Discount Calculator", + "title": "Construir una Calculadora de Descuentos.", "intro": [ - "In this workshop you will build a flexible discount pricing calculator through abstract base classes, allowing multiple discount algorithms to be applied interchangeably without modifying the core logic." + "En este taller, construirás una calculadora de precios de descuento flexible a través de clases base abstractas, lo que permite que se apliquen múltiplos algoritmos de descuento de manera intercambiable sin modificar la lógica central." ] }, "lab-player-interface": { - "title": "Build a Player Interface", + "title": "Cree una Interfaz de Jugador.", "intro": [ "En este laboratorio, utilizarás el módulo abc para crear una interfaz de jugador." ] }, "review-object-oriented-programming": { - "title": "Object Oriented Programming Review", + "title": "Revisión de la Programación Orientada a Objetos", "intro": [ - "Before you're quizzed on object oriented programming, you should review what you've learned about it." + "Antes de que te pregunten sobre programación orientada a objetos, debes repasar lo que has aprendido sobre eso." ] }, "quiz-object-oriented-programming": { - "title": "Object Oriented Programming Quiz", + "title": "Cuestionario de Programación Orientada a Objetos", "intro": [ - "Test what you've learned about object oriented programming in python with this quiz." + "Pon a prueba lo que has aprendido sobre programación orientada a objetos en Python con este cuestionario." ] }, "lecture-working-with-common-data-structures": { - "title": "Working with Common Data Structures", + "title": "Trabajando con Estructuras de Datos Comunes", "intro": [ - "Learn about Working with Common Data Structures in these lessons." + "Aprende sobre Trabajar con Estructuras de Datos Comunes en estas lecciones." ] }, "workshop-linked-list-class": { - "title": "Build a Linked List", + "title": "Construir una Lista Enlazada", "intro": [ - "In this workshop, you'll practice working with data structures by building a linked list." + "En este taller, practicarás con estructuras de datos construyendo una lista enlazada." ] }, "lab-hash-table": { - "title": "Build a Hash Table", + "title": "Construir una Tabla Hash", "intro": [ - "A hash table is a data structure that is used to store key-value pairs and is optimized for quick lookups.", - "In this lab, you will use your knowledge about data structures to build a hash table." + "Una tabla hash es una estructura de datos que se utiliza para almacenar pares clave-valor y está optimizada para búsquedas rápidas.", + "En este laboratorio, utilizarás tu conocimiento sobre estructuras de datos para construir una tabla hash." ] }, "review-data-structures": { - "title": "Data Structures Review", + "title": "Revisión de Estructuras de Datos", "intro": [ - "Before you're quizzed on data structures, you should review what you've learned about them.", - "Open up this page to review concepts like the different data structures, algorithms, time and space complexity, and big O notation." + "Antes de que te pregunten sobre estructuras de datos, debes repasar lo que has aprendido sobre ellas.", + "Abre esta página para revisar conceptos como las diferentes estructuras de datos, algoritmos, complejidad de tiempo y espacio, y notación big O." ] }, "quiz-data-structures": { - "title": "Data Structures Quiz", + "title": "Cuestionario de Estructuras de Datos", "intro": [ - "Test what you've learned about data structures in Python with this quiz." + "Pon a prueba lo que has aprendido sobre estructuras de datos en Python con este cuestionario." ] }, "lecture-searching-and-sorting-algorithms": { - "title": "Searching and Sorting Algorithms", + "title": "Buscando y Ordenando Algoritmos", "intro": [ - "Learn about fundamental searching and sorting algorithms, including linear search, binary search, and merge sort.", - "These lessons cover algorithm implementations, time and space complexity analysis, and the divide and conquer programming paradigm." + "Aprende sobre los algoritmos fundamentales de búsqueda y ordenamiento, incluidos el de búsqueda lineal, búsqueda binaria y ordenación por fusión.", + "Estas lecciones cubren implementaciones de algoritmos, análisis de complejidad temporal y espacial, y el paradigma de programación dividir y conquistar." ] }, "workshop-binary-search": { - "title": "Implement the Binary Search Algorithm", + "title": "Implementar el Algoritmo de Búsqueda Binaria", "intro": [ - "The binary search algorithm is a searching algorithm used to find a target item in a sorted list.", - "In this workshop, you'll implement the binary search algorithm and return the path it took to find the target or return 'Value not found'." + "El algoritmo de búsqueda binaria es un algoritmo de búsqueda utilizado para encontrar un elemento objetivo en una lista ordenada.", + "En este taller, implementarás el algoritmo de búsqueda binaria y devolverás el camino tomado para encontrar el objetivo o retornar \"Valor no encontrado\"." ] }, "lab-bisection-method": { - "title": "Implement the Bisection Method", + "title": "Implementar el Método de Bisección", "intro": [ - "In this lab, you will implement the bisection method to find the square root of a number." + "En este laboratorio, implementarás el método de bisección para encontrar la raíz cuadrada de un número." ] }, "workshop-merge-sort": { - "title": "Implement the Merge Sort Algorithm", + "title": "Implementar el Algoritmo de Mezcla y Ordenación", "intro": [ - "The merge sort algorithm is a sorting algorithm based on the divide and conquer principle.", - "In this workshop, you'll implement the merge sort algorithm to sort a list of random numbers." + "El algoritmo de mezcla y ordenación es un algoritmo de ordenación basado en el principio de dividir y conquistar.", + "En este taller, implementarás el algoritmo de mezcla y ordenación para ordenar una lista de números aleatorios." ] }, "lab-quicksort": { - "title": "Implement the Quicksort Algorithm", + "title": "Implementar el Algoritmo de Quicksort", "intro": [ - "In this lab you will implement the quicksort algorithm to sort a list of integers." + "En este laboratorio implementarás el algoritmo de quicksort para ordenar una lista de enteros." ] }, "lab-selection-sort": { - "title": "Implement the Selection Sort Algorithm", + "title": "Implementar el Algoritmo de Ordenación por Selección", "intro": [ - "In this lab you will implement the selection sort algorithm." + "En este laboratorio, implementarás el algoritmo de ordenación por selección." ] }, "lab-luhn-algorithm": { - "title": "Implement the Luhn Algorithm", + "title": "Implementar el Algoritmo de Luhn", "intro": [ - "In this lab, you will implement the Luhn algorithm to validate identification numbers such as credit card numbers." + "En este laboratorio, implementarás el algoritmo de Luhn para validar números de identificación como los números de tarjetas de crédito." ] }, "lab-tower-of-hanoi": { - "title": "Implement the Tower of Hanoi Algorithm", + "title": "Implementar el Algoritmo de la Torre de Hanoi", "intro": [ - "In this lab, you will implement an algorithm to solve the Tower of Hanoi puzzle." + "En este laboratorio, implementarás un algoritmo para resolver el rompecabezas de la Torre de Hanoi." ] }, "review-searching-and-sorting-algorithms": { - "title": "Searching and Sorting Algorithms Review", + "title": "Revisión de Algoritmos de Búsqueda y Ordenamiento", "intro": [ - "Before you're quizzed on searching and sorting algorithms, you should review what you've learned about them." + "Antes de que te pregunten sobre algoritmos de búsqueda y ordenación, debes repasar lo que has aprendido sobre ellos." ] }, "quiz-searching-and-sorting-algorithms": { - "title": "Searching and Sorting Algorithms Quiz", + "title": "Cuestionario de Algoritmos de Búsqueda y Ordenación", "intro": [ - "Test what you've learned about searching and sorting algorithms in Python with this quiz." + "Pon a prueba lo que has aprendido sobre algoritmos de búsqueda y ordenación en Python con este cuestionario." ] }, "lecture-understanding-graphs-and-trees": { - "title": "Understanding Graphs and Trees", + "title": "Comprensión de Gráficas y Árboles", "intro": [ - "In this lesson, you will learn about fundamental data structures like graphs, trees, and their practical applications in computer science." + "En esta lección, aprenderás sobre estructuras de datos fundamentales como gráficos, árboles y sus aplicaciones prácticas en la informática." ] }, "workshop-shortest-path-algorithm": { - "title": "Implement the Shortest Path Algorithm", + "title": "Implementar el Algoritmo de Ruta más Corta.", "intro": [ - "In this workshop you will implement the shortest path algorithm to find the shortest path between two nodes in a graph." + "En este taller implementarás el algoritmo de la ruta más corta para encontrar la ruta más corta entre dos nodos en un grafo." ] }, "lab-adjacency-list-to-matrix-converter": { - "title": "Build an Adjacency List to Matrix Converter", + "title": "Construir un Convertidor de Lista de Adyacencia a Matriz", "intro": [ - "In this lab, you will implement a function that converts an adjacency list representation of a graph into an adjacency matrix representation." + "En este laboratorio, implementarás una función que convierte una representación de lista de adyacencia de un grafo en una representación de matriz de adyacencia." ] }, "workshop-breadth-first-search": { - "title": "Implement the Breadth-First Search Algorithm", + "title": "Implementar el Algoritmo de Búsqueda por Amplitud", "intro": [ - "In this workshop, you will use the bread-first search algorithm to generate all valid combinations of parentheses." + "En este taller, usarás el algoritmo de búsqueda por amplitud para generar todas las combinaciones válidas de paréntesis." ] }, "lab-depth-first-search": { - "title": "Implement the Depth-First Search Algorithm", + "title": "Implementar el Algoritmo de Búsqueda en Profundidad.", "intro": [ - "In this lab, you will implement the Depth-First Search Algorithm." + "En este laboratorio, implementarás el Algoritmo de Búsqueda en Profundidad." ] }, "lab-n-queens-problem": { - "title": "Implement the N-Queens Problem", + "title": "Implementar el Problema de las N-Reinas", "intro": [ - "In this lab, you will implement a solution for the N-Queens problem." + "En este laboratorio, implementarás una solución para el problema de las N-Reinas." ] }, "review-graphs-and-trees": { - "title": "Graphs and Trees Review", + "title": "Revisión de Gráficas y Árboles", "intro": [ - "Before you're quizzed on graphs and trees, you should review what you've learned about them." + "Antes de que te pregunten sobre gráficas y árboles, debes repasar lo que has aprendido sobre ellos." ] }, "quiz-graphs-and-trees": { - "title": "Graphs and Trees Quiz", + "title": "Cuestionario de Gráficas y Árboles", "intro": [ - "Test what you've learned about graphs and trees in Python with this quiz." + "Pon a prueba lo que has aprendido sobre gráficas y árboles en Python con este cuestionario." ] }, "lecture-understanding-dynamic-programming": { - "title": "Understanding Dynamic Programming", + "title": "Comprendiendo la Programación Dinámica", "intro": [ - "In this lesson, you will learn about dynamic programming, an algorithmic technique used to solve complex problems efficiently by breaking them down into simpler subproblems." + "En esta lección, aprenderás sobre la programación dinámica, una técnica algorítmica que se utiliza para resolver problemas complejos de manera eficiente al desglosarlos en subproblemas más simples." ] }, "lab-nth-fibonacci-number": { - "title": "Build an Nth Fibonacci Number Calculator", + "title": "Construye el Generador de Números de Fibonacci enésimos", "intro": [ - "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach." + "En este laboratorio implementarás una calculadora de la secuencia de Fibonacci utilizando un enfoque de programación dinámica." ] }, "review-dynamic-programming": { - "title": "Dynamic Programming Review", + "title": "Revisión de Programación Dinámica", "intro": [ - "Before you're quizzed on dynamic programming, you should review what you've learned about it." + "Antes de que te pregunten sobre programación dinámica, debes repasar lo que has aprendido sobre eso." ] }, "quiz-dynamic-programming": { - "title": "Dynamic Programming Quiz", + "title": "Cuestionario de Programación Dinámica", "intro": [ - "Test what you've learned about dynamic programming in python with this quiz." + "Pon a prueba lo que has aprendido sobre programación dinámica en Python con este cuestionario." ] }, "review-python": { - "title": "Python Review", - "intro": ["Review Python concepts to prepare for the upcoming exam."] + "title": "Revisión de Python", + "intro": [ + "Revise los conceptos de Python para prepararse para el próximo examen." + ] }, "lecture-understanding-the-command-line-and-working-with-bash": { - "title": "Understanding the Command Line and Working with Bash", + "title": "Entendiendo la Línea de Comandos y Trabajando con Bash", "intro": [ - "Learn about the Command Line and Working with Bash in these lessons." + "Aprende sobre la Línea de Comandos y Trabajar con Bash en estas lecciones." ] }, "workshop-bash-boilerplate": { @@ -4959,16 +4964,16 @@ ] }, "lecture-working-with-relational-databases": { - "title": "Working with Relational Databases", + "title": "Trabajando con Bases de Datos Relacionales", "intro": [ - "Learn how to work with Relational Databases in these lessons." + "Aprende cómo trabajar con Bases de Datos Relacionales en estas lecciones." ] }, "workshop-database-of-video-game-characters": { - "title": "Build a Database of Video Game Characters", + "title": "Construir una base de datos de personajes de videojuegos", "intro": [ - "A relational database organizes data into tables that are linked together through relationships.", - "In this 165-lesson workshop, you will learn the basics of a relational database by creating a PostgreSQL database filled with video game characters." + "Una base de datos relacional organiza datos en tablas que están vinculadas entre sí a través de relaciones.", + "En este taller de 165 lecciones, aprenderás los fundamentos de una base de datos relacional creando una base de datos de PostgreSQL llena de personajes de videojuegos." ] }, "lab-celestial-bodies-database": { @@ -4978,20 +4983,20 @@ ] }, "review-sql-and-postgresql": { - "title": "SQL and PostgreSQL Review", + "title": "Revisión de SQL y PostgreSQL", "intro": [ - "Review SQL and PostgreSQL concepts to prepare for the upcoming quiz." + "Revise los conceptos de SQL y PostgreSQL para prepararse para el próximo cuestionario." ] }, "quiz-sql-and-postgresql": { - "title": "SQL and PostgreSQL Quiz", + "title": "Cuestionario de SQL y PostgreSQL", "intro": [ - "Test what you've learned about SQL and PostgreSQL with this quiz." + "Pruebe lo que ha aprendido sobre SQL y PostgreSQL con este cuestionario." ] }, "lecture-understanding-bash-scripting": { - "title": "Understanding Bash Scripting", - "intro": ["Learn about Bash Scripting in these lessons."] + "title": "Entendiendo el Scripting de Bash", + "intro": ["Aprende sobre Scripts Bash en estas lecciones."] }, "workshop-bash-five-programs": { "title": "Construir cinco programas", @@ -5013,9 +5018,9 @@ ] }, "lecture-working-with-sql": { - "title": "Working With SQL", + "title": "Trabajando con SQL", "intro": [ - "In these lessons, you will learn about SQL injection, normalization, and the N+1 problem." + "En estas lecciones, aprenderás sobre inyección de SQL, normalización y el problema N+1." ] }, "workshop-sql-student-database-part-1": { @@ -5070,8 +5075,8 @@ ] }, "lecture-working-with-nano": { - "title": "Working With Nano", - "intro": ["Learn about Nano in this lesson."] + "title": "Trabajando con Nano", + "intro": ["Aprende sobre Nano en esta lección."] }, "workshop-castle": { "title": "Construir un castillo", @@ -5081,13 +5086,13 @@ ] }, "lecture-introduction-to-git-and-github": { - "title": "Introduction to Git and GitHub", - "intro": ["Learn how to work with Git and GitHub in these lessons."] + "title": "Introducción a Git y GitHub.", + "intro": ["Aprende cómo trabajar con Git y GitHub en estas lecciones."] }, "lecture-working-with-code-reviews-branching-deployment-and-ci-cd": { - "title": "Working With Code Reviews, Branching, Deployment, and CI/CD", + "title": "Trabajando con Revisiones de Código, Ramificación, Despliegue y CI/CD.", "intro": [ - "Learn about code reviews, branching, deployment, and CI/CD in these lessons." + "Aprende sobre revisiones de código, branch, implementación y CI/CD en estas lecciones." ] }, "workshop-sql-reference-object": { @@ -5124,13 +5129,13 @@ "review-relational-databases": { "title": "Reviso en base de datos relacionales", "intro": [ - "Review relational databases concepts to prepare for the exam." + "Revise los conceptos de bases de datos relacionales para prepararse para el examen." ] }, "lecture-understanding-the-http-request-response-model": { - "title": "Understanding the HTTP Request-Response Model", + "title": "Comprender el Modelo de Solicitud-Respuesta HTTP", "intro": [ - "Learn the fundamentals of how web communication works through the HTTP request-response model, explore different types of web assets and responses, and understand how forms handle data submission using various HTTP methods." + "Aprende los conceptos básicos de cómo funciona la comunicación web a través del modelo de solicitud-respuesta HTTP, explora diferentes tipos de activos y respuestas web, y comprende cómo los formularios manejan el envío de datos utilizando varios métodos HTTP." ] }, "exam-certified-full-stack-developer": { @@ -5142,2478 +5147,2533 @@ } }, "javascript-v9": { - "title": "JavaScript Certification", + "title": "Certificación de JavaScript", "intro": [ - "This course teaches you core JavaScript programming concepts such as working with variables, functions, objects, arrays, and control flow. You'll also learn how to manipulate the DOM, handle events, and apply techniques like asynchronous programming, functional programming, and accessibility best practices.", - "To earn your JavaScript Certification:", - "- Complete the five required projects to qualify for the certification exam.", - "- Pass the JavaScript Certification exam." + "Este curso te enseña conceptos de programación en JavaScript como trabajar con variables, funciones, objetos, arreglos, y flujo de control. También aprenderás cómo manipular el DOM, manejar eventos, y aplicar técnicas como programación asíncrona, programación funcional, y mejores prácticas de accesibilidad.", + "Para obtener tu Certificación en JavaScript:", + "- Completa los cinco proyectos requeridos para calificar para el examen de certificación.", + "- Aprueba el examen de certificación en JavaScript." ], "chapters": { "javascript": "JavaScript", - "javascript-certification-exam": "JavaScript Certification Exam" + "javascript-certification-exam": "Examen de certificación de JavaScript" }, "modules": { - "javascript-variables-and-strings": "Variables and Strings", - "javascript-booleans-and-numbers": "Booleans and Numbers", - "javascript-functions": "Functions", - "javascript-arrays": "Arrays", - "javascript-objects": "Objects", - "javascript-loops": "Loops", - "review-javascript-fundamentals": "JavaScript Fundamentals Review", - "higher-order-functions-and-callbacks": "Higher Order Functions and Callbacks", - "dom-manipulation-and-events": "DOM Manipulation and Events", - "js-a11y": "JavaScript and Accessibility", - "debugging-javascript": "Debugging", - "basic-regex": "Basic Regex", - "lab-markdown-to-html-converter": "Build a Markdown to HTML Converter", - "form-validation": "Form Validation", - "javascript-dates": "Dates", - "audio-and-video-events": "Audio and Video Events", - "lab-drum-machine": "Build a Drum Machine", - "maps-and-sets": "Maps and Sets", - "lab-voting-system": "Build a Voting System", - "localstorage-and-crud-operations": "localStorage and CRUD Operations", - "classes-and-the-this-keyword": "Classes", - "lab-bank-account-manager": "Build a Bank Account Management Program", - "recursion": "Recursion", - "functional-programming": "Functional Programming", - "asynchronous-javascript": "Asynchronous JavaScript", - "lab-weather-app": "Build a Weather App", - "review-javascript": "JavaScript Review", - "javascript-certification-exam": "JavaScript Certification Exam" + "javascript-variables-and-strings": "Variables y Cadenas", + "javascript-booleans-and-numbers": "Booleanos y Números", + "javascript-functions": "Funciones", + "javascript-arrays": "Arreglos", + "javascript-objects": "Objetos", + "javascript-loops": "Bucles", + "review-javascript-fundamentals": "Revisión de Fundamentos de JavaScript", + "higher-order-functions-and-callbacks": "Funciones de Orden Superior y Devoluciones de Llamadas", + "dom-manipulation-and-events": "Manipulación del DOM y Eventos", + "js-a11y": "JavaScript y Accesibilidad", + "debugging-javascript": "Depuración", + "basic-regex": "Regex Básico", + "lab-markdown-to-html-converter": "Construir un Convertidor de Markdown a HTML", + "form-validation": "Validación de Formularios", + "javascript-dates": "Fechas", + "audio-and-video-events": "Eventos de Audio y Video", + "lab-drum-machine": "Construir una Caja de Ritmos", + "maps-and-sets": "Mapas y Conjuntos", + "lab-voting-system": "Construir un Sistema de Votación", + "localstorage-and-crud-operations": "operaciones CRUD y de almacenamiento local", + "classes-and-the-this-keyword": "Clases", + "lab-bank-account-manager": "Desarrollar un Programa de Gestión de Cuentas Bancarias", + "recursion": "Recursión", + "functional-programming": "Programación funcional", + "asynchronous-javascript": "JavaScript asincrónico", + "lab-weather-app": "Desarrolla una aplicación del tiempo", + "review-javascript": "Revisión de JavaScript", + "javascript-certification-exam": "Examen de certificación de JavaScript" }, "blocks": { "lecture-introduction-to-javascript": { - "title": "Introduction to JavaScript", + "title": "Introducción a JavaScript", "intro": [ - "In these lectures, you will learn the fundamentals of JavaScript. Topics covered include, but are not limited to, variables, data types, how JavaScript interacts with HTML and CSS, strings, and much more." + "En estas lecciones, aprenderás los fundamentos de JavaScript. Los temas cubiertos incluyen, pero no están limitados a, variables, tipos de datos, cómo interactúa JavaScript con HTML y CSS, cadenas y mucho más." ] }, "lecture-introduction-to-strings": { - "title": "Introduction to Strings", + "title": "Introducción a Cadenas", "intro": [ - "In these lessons, you will learn how to work with strings and string concatenation." + "En estas lecciones, aprenderá a trabajar con cadenas y concatenación de cadenas." ] }, "lecture-understanding-code-clarity": { - "title": "Understanding Code Clarity", + "title": "Entender la Claridad del Código", "intro": [ - "In these lessons, you will learn about comments in JavaScript and the role of semicolons in programming." + "En estas lecciones, aprenderá sobre los comentarios en JavaScript y el papel de los puntos y comas en la programación." ] }, "workshop-greeting-bot": { - "title": "Build a Greeting Bot", + "title": "Construye un Bot de Saludos", "intro": [ - "In this workshop, you will learn JavaScript fundamentals by building a greeting bot.", - "You will learn about variables, let, const, console.log and basic string usage." + "En este taller, aprenderás los fundamentos de JavaScript construyendo un bot de saludos.", + "Aprenderás sobre variables, let, const, console.log y el uso básico de cadenas." ] }, "lab-javascript-trivia-bot": { - "title": "Build a JavaScript Trivia Bot", + "title": "Construir un Bot de Trivia en JavaScript", "intro": [ - "In this lab, you'll practice working with JavaScript variables and strings by building a trivia bot." + "En este laboratorio, practicarás trabajando con variables y cadenas en JavaScript construyendo un bot de trivia." ] }, "lab-sentence-maker": { - "title": "Build a Sentence Maker", + "title": "Construir un Creador de Oraciones", "intro": [ - "In this lab, you will continue practicing with strings and concatenation by creating and customizing various stories." + "En este laboratorio, continuarás practicando con cadenas y concatenación creando y personalizando varias historias." ] }, "lecture-working-with-data-types": { - "title": "Working with Data Types", + "title": "Trabajando con Tipos de Datos", "intro": [ - "In the following lectures, you will learn how to work with data types in JavaScript. You will also learn how dynamic typing differs from static typing, the typeof operator, and the typeof null bug." + "En las siguientes lecciones, aprenderás a trabajar con tipos de datos en JavaScript. También aprenderás en qué difiere la tipificación dinámica de la tipificación estática, el operador typeof y el error typeof null." ] }, "review-javascript-variables-and-data-types": { - "title": "JavaScript Variables and Data Types Review", + "title": "Revisión de Variables y Tipos de Datos en JavaScript", "intro": [ - "Before you are quizzed on JavaScript variables and data types you first need to review the concepts.", - "Open up this page to review variables, data types, logging and commenting." + "Antes de que se te evalúe sobre variables y tipos de datos en JavaScript, primero necesitas revisar los conceptos.", + "Abre esta página para revisar variables, tipos de datos, registro y comentarios." ] }, "quiz-javascript-variables-and-data-types": { - "title": "JavaScript Variables and Data Types Quiz", + "title": "Cuestionario sobre Variables y Tipos de Datos de JavaScript", "intro": [ - "Test your knowledge of JavaScript variables and data types with this quiz." + "Pon a prueba tus conocimientos sobre variables y tipos de datos en JavaScript con este cuestionario." ] }, "lecture-working-with-strings-in-javascript": { - "title": "Working with Strings in JavaScript", + "title": "Trabajando con Cadenas en JavaScript", "intro": [ - "In these lectures, you will learn how to work with strings in JavaScript. You will learn how to access characters from a string, how to use template literals and interpolation, how to create a new line in strings, and much more." + "En estas lecciones, aprenderás a trabajar con cadenas en JavaScript. Aprenderás a acceder a los caracteres de una cadena, cómo usar literales de plantilla e interpolación, cómo crear una nueva línea en cadenas y mucho más." ] }, "workshop-teacher-chatbot": { - "title": "Build a Teacher Chatbot", + "title": "Construir un Chatbot de Profesor", "intro": [ - "In this workshop, you will continue to learn more about JavaScript strings by building a chatbot.", - "You will learn how to work with template literals, and the indexOf method." + "En este taller, continuarás aprendiendo más acerca de las cadenas de JavaScript construyendo un chatbot.", + "Aprenderás a trabajar con literales de plantilla y el método indexOf." ] }, "lecture-working-with-string-character-methods": { - "title": "Working with String Character Methods", + "title": "Trabajando con Métodos de Caracteres en Cadenas", "intro": [ - "In this lecture you will learn about ASCII character encoding and how to use JavaScript's charCodeAt() and fromCharCode() methods to convert between characters and their numerical ASCII values." + "En esta lección aprenderás sobre la codificación de caracteres ASCII y cómo usar los métodos charCodeAt() y fromCharCode() en JavaScript para convertir entre caracteres y sus valores numéricos ASCII." ] }, "lecture-working-with-string-search-and-slice-methods": { - "title": "Working with String Search and Slice Methods", + "title": "Trabajando con Métodos de Búsqueda y Corte en Cadenas", "intro": [ - "In this lecture you will learn how to search for substrings using the includes() method and how to extract portions of strings using the slice() method." + "En esta lección aprenderás cómo buscar subcadenas usando el método includes() y cómo extraer porciones de cadenas usando el método slice()." ] }, "workshop-string-inspector": { - "title": "Build a String Inspector", + "title": "Construir un Inspector de Cadenas.", "intro": [ - "In this workshop, you will practice working with the includes() and slice() methods by building a string inspector." + "En este taller, practicarás trabajar con los métodos includes() y slice() construyendo un inspector de cadenas." ] }, "lecture-working-with-string-formatting-methods": { - "title": "Working with String Formatting Methods", + "title": "Trabajando con Métodos de Formateo de Cadenas", "intro": [ - "In this lecture you will learn how to format strings by changing their case using toUpperCase() and toLowerCase() methods, and how to remove whitespace using trim(), trimStart(), and trimEnd() methods." + "En esta lección aprenderás cómo formatear cadenas cambiando su caso usando los métodos toUpperCase() y toLowerCase(), y cómo eliminar espacios en blanco usando los métodos trim(), trimStart() y trimEnd()." ] }, "workshop-string-formatter": { - "title": "Build a String Formatter", + "title": "Crear un Formateador de Cadenas.", "intro": [ - "In this workshop, you will practice working with various string methods including trim(), toUpperCase() and toLowerCase()." + "En este taller, practicarás trabajando con varios métodos de cadenas, incluyendo trim(), toUpperCase() y toLowerCase()." ] }, "lecture-working-with-string-modification-methods": { - "title": "Working with String Modification Methods", + "title": "Trabajando con Métodos de Modificación de Cadenas", "intro": [ - "In this lecture you will learn how to modify strings by replacing parts of them using the replace() method and how to repeat strings multiple times using the repeat() method." + "En esta lección aprenderás cómo modificar las cadenas reemplazando partes de ellas usando el método replace() y cómo repetir cadenas varias veces usando el método repeat()." ] }, "workshop-string-transformer": { - "title": "Build a String Transformer", + "title": "Construye un Transformador de Cadenas", "intro": [ - "In this workshop, you will practice working with the replace(), replaceAll() and repeat() methods." + "En este taller, practicarás trabajar con los métodos replace(), replaceAll() y repeat()." ] }, "review-javascript-strings": { - "title": "JavaScript Strings Review", + "title": "Revisión de Cadenas de JavaScript", "intro": [ - "Before you are quizzed on working with JavaScript strings, you first need to review.", - "Open up this page to review how to work with template literals, the slice method, the includes method, the trim method and more." + "Antes de ser evaluado con respecto a trabajar con cadenas de JavaScript, primero necesitas repasar los conceptos.", + "Abre esta página para revisar cómo trabajar con literales de plantilla, el método slice, el método includes, el método trim y más." ] }, "quiz-javascript-strings": { - "title": "JavaScript Strings Quiz", - "intro": ["Test your knowledge of JavaScript strings with this quiz."] + "title": "Cuestionario de Cadenas de JavaScript", + "intro": [ + "Pon a prueba tus conocimientos sobre cadenas de JavaScript con este cuestionario." + ] }, "lecture-working-with-numbers-and-arithmetic-operators": { - "title": "Working with Numbers and Arithmetic Operators", + "title": "Trabajando con Números y Operadores Aritméticos", "intro": [ - "In these lectures you will learn about the number type, arithmetic operators, and using them with numbers and strings." + "En estas lecciones aprenderás sobre el tipo de datos numérico, operadores aritméticos, y su uso con números y cadenas." ] }, "lab-debug-type-coercion-errors": { - "title": "Debug Type Coercion Errors in a Buggy App", + "title": "Depurar Errores de Conversión de Tipos en una Aplicación Defectuosa.", "intro": [ - "In this lab, you will be working with a buggy app that contains several type coercion errors.", - "Your task is to identify and fix these errors to ensure the app functions correctly." + "En este laboratorio, estarás trabajando con una aplicación defectuosa que contiene varios errores de conversión de tipos.", + "Tu tarea es identificar y corregir estos errores para asegurar que la aplicación funcione correctamente." ] }, "lecture-working-with-operator-behavior": { - "title": "Working with Operator Behavior", + "title": "Trabajando con el Comportamiento del Operador", "intro": [ - "In these lectures you will learn about operator precedence, the increment and decrement operators, and compound assignment operators." + "En estas lecciones, aprenderás sobre la precedencia de operadores, operadores de incremento y decremento, y operadores de asignación compuesta." ] }, "lab-debug-increment-and-decrement-operator-errors": { - "title": "Debug Increment and Decrement Operator Errors in a Buggy App", + "title": "Depurar Errores de Operadores de Incremento y Decremento en una Aplicación Errónea.", "intro": [ - "In this lab, you'll debug an app that has several errors related to the increment and decrement operators.", - "Your task is to identify and fix the errors so that the app works as intended." + "En este laboratorio, depurarás una aplicación que tiene varios errores relacionados con los operadores de incremento y decremento.", + "Tu tarea es identificar y corregir los errores para que la aplicación funcione como se espera." ] }, "lecture-working-with-comparison-and-boolean-operators": { - "title": "Working with Comparison and Boolean Operators", + "title": "Trabajando con Operadores de Comparación y Booleanos", "intro": [ - "In these lectures you will learn about booleans, and equality and inequality operators, and other comparison operators." + "En estas lecciones aprenderás sobre booleanos, operadores de igualdad y desigualdad, y otros operadores de comparación." ] }, "workshop-logic-checker-app": { - "title": "Build a Logic Checker App", + "title": "Construir una Aplicación Comprobadora de Lógica.", "intro": [ - "In this workshop, you'll practice working with conditional statements and comparison operators by building a logic checker app." + "En este taller, practicarás el trabajo con declaraciones condicionales y operadores de comparación mediante la construcción de una aplicación comprobadora de lógica." ] }, "lecture-working-with-unary-and-bitwise-operators": { - "title": "Working with Unary and Bitwise Operators", + "title": "Trabajando con Operadores Unarios y Bit a Bit", "intro": [ - "In these lectures, you will learn about unary and bitwise operators." + "En estas lecciones, aprenderás sobre operadores unarios y bit a bit." ] }, "lecture-working-with-conditional-logic-and-math-methods": { - "title": "Working with Conditional Logic and Math Methods", + "title": "Trabajando con Lógica Condicional y Métodos Matemáticos", "intro": [ - "In these lectures, you will learn about conditional statements, binary logical operators, and the Math object." + "En estas lecciones, aprenderás sobre declaraciones condicionales, operadores lógicos binarios, y el objeto Math." ] }, "workshop-mathbot": { - "title": "Build a Mathbot", + "title": "Construir un Mathbot", "intro": [ - "In this workshop, you will review how to work with the different Math object methods by building a Mathbot." + "En este taller, revisarás cómo trabajar con los distintos métodos del objeto Math construyendo un Mathbot." ] }, "lab-fortune-teller": { - "title": "Build a Fortune Teller", + "title": "Construir un Adivinador de Fortuna", "intro": [ - "In this lab, you'll build a fortune teller by randomly selecting a fortune from the available fortunes.", - "You'll practice how to work with the Math.random() method and the Math.floor() method to generate random numbers." + "En este laboratorio, construirás un adivinador de fortuna seleccionando al azar una fortuna entre las disponibles.", + "Practicarás cómo trabajar con el método Math.random() y el método Math.floor() para generar números aleatorios." ] }, "lecture-working-with-numbers-and-common-number-methods": { - "title": "Working with Numbers and Common Number Methods", + "title": "Trabajando con Números y Métodos Comunes de Números", "intro": [ - "In these lectures, you will learn about numbers and common number methods. These include isNaN(), parseInt(), parseFloat(), and toFixed()." + "En estas lecciones, aprenderás sobre números y métodos comunes de números. Estos incluyen isNaN(), parseInt(), parseFloat() y toFixed()." ] }, "review-javascript-math": { - "title": "JavaScript Math Review", + "title": "Revisión de Matemáticas en JavaScript", "intro": [ - "Before you're quizzed on working with the Math object, you should review what you've learned.", - "Open up this page to review how to work with the Math.random() method, the Math.floor() method and more." + "Antes de que se te evalúe sobre cómo trabajar con el objeto Math, deberías repasar lo que has aprendido.", + "Abre esta página para revisar cómo trabajar con el método Math.random(), el método Math.floor() y más." ] }, "quiz-javascript-math": { - "title": "JavaScript Math Quiz", + "title": "Cuestionario de Matemáticas de JavaScript", "intro": [ - "Test your knowledge of the JavaScript Math object with this quiz." + "Pon a prueba tus conocimientos sobre el objeto Math de JavaScript con este cuestionario." ] }, "lecture-understanding-comparisons-and-conditionals": { - "title": "Understanding Comparisons and Conditionals", + "title": "Comprensión de comparaciones y condicionales.", "intro": [ - "In these lectures, you will learn about comparison operators and conditionals. You will learn how the various conditionals differ from one another, and how comparisons work with null and undefined." + "En estas lecciones, aprenderás sobre los operadores de comparación y los condicionales. Aprenderás cómo se diferencian los condicionales entre sí y cómo las comparaciones funcionan con null y undefined." ] }, "review-javascript-comparisons-and-conditionals": { - "title": "JavaScript Comparisons and Conditionals Review", + "title": "Revisión de Comparaciones y Condicionales de JavaScript.", "intro": [ - "Before you're quizzed on working with conditionals, you should review what you've learned about them.", - "Open up this page to review how to work with switch statements, other types of conditionals and more." + "Antes de que te pregunten sobre trabajar con condicionales, debes repasar lo que has aprendido sobre ellos.", + "Abre esta página para repasar cómo trabajar con sentencias switch, otros tipos de condicionales y más." ] }, "quiz-javascript-comparisons-and-conditionals": { - "title": "JavaScript Comparisons and Conditionals Quiz", + "title": "Cuestionario sobre Comparaciones y Condicionales de JavaScript.", "intro": [ - "Test your knowledge of JavaScript Comparisons and Conditionals with this quiz." + "Pon a prueba tus conocimientos sobre Comparaciones y Condicionales de JavaScript con este cuestionario." ] }, "lecture-working-with-functions": { - "title": "Working with Functions", + "title": "Trabajando con Funciones.", "intro": [ - "In these lectures, you will learn how to reuse a block of code with functions. You will learn what the purpose of a function is and how they work, and how scope works in programming. " + "En estas lecciones, aprenderás cómo reutilizar un bloque de código con funciones. Aprenderás qué es una función y cómo funcionan, y cómo gestionar el ámbito en la programación." ] }, "workshop-calculator": { - "title": "Build a Calculator", + "title": "Construir una Calculadora.", "intro": [ - "In this workshop, you will review your knowledge of functions by building a calculator." + "En este taller, revisarás tus conocimientos sobre funciones construyendo una calculadora." ] }, "lab-boolean-check": { - "title": "Build a Boolean Check Function", + "title": "Construir una Función de Comprobación de Booleanos.", "intro": [ - "In this lab, you'll implement a function that checks if a value is a boolean." + "En este laboratorio, implementarás una función que verifica si un valor es booleano." ] }, "lab-email-masker": { - "title": "Build an Email Masker", + "title": "Construir un Enmascarador de Correos Electrónicos.", "intro": [ - "In this lab, you'll build an email masker that will take an email address and obscure it.", - "You'll practice string slicing, concatenation, and using functions." + "En este laboratorio, construirás un enmascarador de correos electrónicos que tomará una dirección de correo electrónico y la ocultará.", + "Practicarás la segmentación de cadenas, la concatenación y el uso de funciones." ] }, "workshop-loan-qualification-checker": { - "title": "Build a Loan Qualification Checker", + "title": "Construir un Verificador de Calificaciones de Préstamo.", "intro": [ - "In this workshop, you will continue to learn how to work with conditionals by building a loan qualification checker app.", - "You will learn more about if statements, and how to use comparison operators and multiple conditions in an if statement." + "En este taller, aprenderás cómo trabajar con condicionales construyendo una aplicación para verificar calificaciones de préstamos.", + "Aprenderás más sobre las sentencias if y cómo utilizar operadores de comparación y múltiples condiciones en una sentencia if." ] }, "lab-celsius-to-fahrenheit-converter": { - "title": "Build a Celsius to Fahrenheit Converter", + "title": "Construir un Convertidor de Celsius a Fahrenheit.", "intro": [ - "In this lab you will implement a function that converts the temperature from Celsius to Fahrenheit." + "En este laboratorio, implementarás una función que convierte la temperatura de Celsius a Fahrenheit." ] }, "lab-counting-cards": { - "title": "Build a Card Counting Assistant", - "intro": ["In this lab you will use JavaScript to count dealt cards."] + "title": "Construir un Asistente de Conteo de Cartas.", + "intro": [ + "En este laboratorio, usarás JavaScript para contar cartas repartidas." + ] }, "lab-leap-year-calculator": { - "title": "Build a Leap Year Calculator ", + "title": "Construir una Calculadora de Años Bisiestos.", "intro": [ - "In this lab you'll use conditional statements and loops to determine if a year is a leap year." + "En este laboratorio, usarás declaraciones condicionales y bucles para determinar si un año es bisiesto." ] }, "lab-truncate-string": { - "title": "Implement the Truncate String Algorithm", + "title": "Implementar el Algoritmo de Truncamiento de Cadenas.", "intro": [ - "In this lab, you will practice truncating a string at a certain length." + "En este laboratorio, practicarás truncar una cadena a una cierta longitud." ] }, "lab-string-ending-checker": { - "title": "Build a Confirm the Ending Tool", + "title": "Construir una Herramienta para Confirmar el Final.", "intro": [ - "In this lab, you will implement a function that checks if a given string ends with a specified target string." + "En este laboratorio, implementarás una función que verifica si una cadena dada termina con una cadena de destino especificada." ] }, "review-javascript-functions": { - "title": "JavaScript Functions Review", + "title": "Revisión de Funciones de JavaScript.", "intro": [ - "Before you're quizzed on JavaScript functions, you should review what you've learned about them.", - "Open up this page to review functions, arrow functions and scope." + "Antes de que te pregunten sobre funciones en JavaScript, debes repasar lo que has aprendido sobre ellas.", + "Abre esta página para repasar funciones, funciones de flecha y ámbito." ] }, "quiz-javascript-functions": { - "title": "JavaScript Functions Quiz", - "intro": ["Test your knowledge of JavaScript functions with this quiz."] + "title": "Cuestionario de Funciones de JavaScript.", + "intro": [ + "Pon a prueba tus conocimientos de funciones de JavaScript con este cuestionario." + ] }, "lecture-working-with-arrays": { - "title": "Working with Arrays", + "title": "Trabajar con Arreglos.", "intro": [ - "In these lectures, you will learn how to work with JavaScript arrays. You will learn about what makes an array, one-dimensional and two-dimensional arrays, how to access and update the elements in an array, and much more." + "En estas lecciones, aprenderás a trabajar con arreglos en JavaScript. Aprenderás qué constituye un arreglo, arreglos unidimensionales y bidimensionales, cómo acceder y actualizar los elementos de un arreglo, y mucho más." ] }, "workshop-shopping-list": { - "title": "Build a Shopping List", + "title": "Crea una lista de compras.", "intro": [ - "In this workshop, you will practice how to work with arrays by building a shopping list.", - "You will review how to add and remove elements from an array using methods like push, pop, shift, and unshift." + "En este taller, practicarás cómo trabajar con arreglos construyendo una lista de compras.", + "Revisarás cómo agregar y eliminar elementos de un arreglo usando métodos como push, pop, shift, y unshift." ] }, "lab-lunch-picker-program": { - "title": "Build a Lunch Picker Program", + "title": "Construir un Programa Selector de Almuerzo.", "intro": [ - "In this lab, you'll review working with arrays and random numbers by building a lunch picker program." + "En este laboratorio, revisarás trabajar con arreglos y números aleatorios construyendo un programa selector de almuerzos." ] }, "lab-golf-score-translator": { - "title": "Build a Golf Score Translator", + "title": "Construir un Traductor de Puntuaciones de Golf.", "intro": [ - "For this lab, you will use array methods to translate golf scores into their nickname." + "Para este laboratorio, utilizarás métodos de arreglos para traducir puntuaciones de golf en sus apodos." ] }, "lab-reverse-a-string": { - "title": "Build a String Inverter", + "title": "Construir un Inversor de Cadenas.", "intro": [ - "In this lab, you create a function that reverses a given string." + "En este laboratorio, crearás una función que invierte una cadena dada." ] }, "lecture-working-with-common-array-methods": { - "title": "Working with Common Array Methods", + "title": "Trabajar con Métodos Comunes de Arreglos.", "intro": [ - "In these lectures, you will learn about the array methods for performing more advanced operations like getting the position of an item in an array, checking if an array contains a certain element, copying an array, and lots more." + "En estas lecciones, aprenderás sobre los métodos de arreglos para realizar operaciones más avanzadas como obtener la posición de un elemento en un arreglo, verificar si un arreglo contiene un cierto elemento, copiar un arreglo y mucho más." ] }, "review-javascript-arrays": { - "title": "JavaScript Arrays Review", + "title": "Revisión de Arreglos de JavaScript.", "intro": [ - "Before you're quizzed on JavaScript arrays, you should review what you've learned about them.", - "Open up this page to review concepts like array destructuring, how to add and remove elements from an array, and more." + "Antes de que te pregunten sobre arreglos en JavaScript, debes repasar lo que has aprendido sobre ellos.", + "Abre esta página para repasar conceptos como desestructuración de arreglos, cómo agregar y eliminar elementos de un arreglo, y más." ] }, "quiz-javascript-arrays": { - "title": "JavaScript Arrays Quiz", - "intro": ["Test your knowledge of JavaScript arrays with this quiz."] + "title": "Cuestionario de Arreglos de JavaScript.", + "intro": [ + "Pon a prueba tus conocimientos de arreglos en JavaScript con este cuestionario." + ] }, "lecture-introduction-to-javascript-objects-and-their-properties": { - "title": "Introduction to JavaScript Objects and Their Properties", + "title": "Introducción a los Objetos de JavaScript y sus Propiedades.", "intro": [ - "In these lectures, you will learn the fundamentals of JavaScript objects, including how to create them, access their properties, and understand the difference between primitive and non-primitive data types." + "En estas lecciones, aprenderás los fundamentos de los objetos en JavaScript, incluyendo cómo crearlos, acceder a sus propiedades y comprender la diferencia entre los tipos de datos primitivos y no primitivos." ] }, "lecture-working-with-optional-chaining-and-object-destructuring": { - "title": "Working with Optional Chaining and Object Destructuring", + "title": "Trabajar con Encadenamiento Opcional y Desestructuración de Objetos.", "intro": [ - "In these lectures, you will learn about advanced object manipulation techniques in JavaScript, including the optional chaining operator and object destructuring syntax." + "En estas lecciones, aprenderás sobre técnicas avanzadas de manipulación de objetos en JavaScript, incluyendo el operador de encadenamiento opcional y la sintaxis de desestructuración de objetos." ] }, "lecture-working-with-json": { - "title": "Working with JSON", + "title": "Trabajando con JSON.", "intro": [ - "In these lectures, you will learn about JavaScript Object Notation (JSON), including how to access JSON data and use the JSON.parse() and JSON.stringify() methods." + "En estas lecciones, aprenderás sobre la Notación de Objetos de JavaScript (JSON), incluyendo cómo acceder a los datos JSON y usar los métodos JSON.parse() y JSON.stringify()." ] }, "workshop-recipe-tracker": { - "title": "Build a Recipe Tracker", + "title": "Crea un rastreador de recetas.", "intro": [ - "In this workshop, you will review working with JavaScript objects by building a recipe tracker." + "En este taller, revisarás cómo trabajar con objetos en JavaScript construyendo un rastreador de recetas." ] }, "lab-quiz-game": { - "title": "Build a Quiz Game", + "title": "Construir un Juego de Preguntas y Respuestas.", "intro": [ - "In this lab, you'll build a quiz game using JavaScript arrays and objects.", - "You'll also practice using functions to randomly select a question and an answer from an array and compare them." + "En este laboratorio, crearás un juego de preguntas y respuestas usando arreglos y objetos de JavaScript.", + "También practicarás usando funciones para seleccionar aleatoriamente una pregunta y una respuesta de un arreglo y compararlas." ] }, "lab-record-collection": { - "title": "Build a Record Collection", + "title": "Construir una Colección de Discos.", "intro": [ - "In this lab you will build a function to manage a record collection." + "En este laboratorio, construirás una función para gestionar una colección de discos." ] }, "review-javascript-objects": { - "title": "JavaScript Objects Review", + "title": "Revisión de Objetos de JavaScript.", "intro": [ - "Before you're quizzed on JavaScript objects, you should review what you've learned about them.", - "Open up this page to review concepts including how to access information from objects, object destructuring, working with JSON, and more." + "Antes de que te pregunten sobre objetos en JavaScript, debes repasar lo que has aprendido sobre ellos.", + "Abre esta página para repasar conceptos incluyendo cómo acceder a la información de los objetos, desestructuración de objetos, trabajar con JSON, y más." ] }, "quiz-javascript-objects": { - "title": "JavaScript Objects Quiz", - "intro": ["Test your knowledge of JavaScript objects with this quiz."] + "title": "Cuestionario de Objetos de JavaScript.", + "intro": [ + "Pon a prueba tus conocimientos de objetos en JavaScript con este cuestionario." + ] }, "lecture-working-with-loops": { - "title": "Working with Loops", + "title": "Trabajar con Bucles.", "intro": [ - "Loops are an essential part of JavaScript. That's why the following lectures have been prepared for you to learn about the different types of loops and how they work, and also how iteration works." + "Los bucles son una parte esencial de JavaScript. Por eso, se han preparado las siguientes lecciones para que aprendas sobre los diferentes tipos de bucles y cómo funcionan, así como cómo funciona la iteración." ] }, "workshop-sentence-analyzer": { - "title": "Build a Sentence Analyzer", + "title": "Construir un Analizador de Oraciones.", "intro": [ - "In this workshop, you'll review how to work with JavaScript loops by building a sentence analyzer app." + "En este taller, revisarás cómo trabajar con bucles de JavaScript construyendo una aplicación analizador de oraciones." ] }, "lab-longest-word-in-a-string": { - "title": "Build a Longest Word Finder App", + "title": "Construir una Aplicación Buscadora de la Palabra Más Larga.", "intro": [ - "In this lab, you will use JavaScript loops to find the length of the longest word in the given sentence." + "En este laboratorio, usarás bucles de JavaScript para encontrar la longitud de la palabra más larga en la oración dada." ] }, "lab-factorial-calculator": { - "title": "Build a Factorial Calculator ", + "title": "Construir una Calculadora de Factoriales.", "intro": [ - "In this lab, you'll build a factorial calculator.", - "You'll practice using loops and conditionals to calculate the factorial of a number." + "En este laboratorio, construirás una calculadora de factoriales.", + "Practicarás utilizando bucles y condicionales para calcular el factorial de un número." ] }, "lab-mutations": { - "title": "Implement the Mutations Algorithm", + "title": "Implementar el Algoritmo de Mutaciones.", "intro": [ - "In this lab, you will practice iterating over two different strings to compare their characters." + "En este laboratorio, practicarás iterando sobre dos cadenas diferentes para comparar sus caracteres." ] }, "lab-chunky-monkey": { - "title": "Implement the Chunky Monkey Algorithm", + "title": "Implementar el Algoritmo Chunky Monkey.", "intro": [ - "In this lab, you will practice dividing an array into smaller arrays with the technique of your choice." + "En este laboratorio, practicarás dividiendo un arreglo en arreglos más pequeños con la técnica de tu elección." ] }, "lab-profile-lookup": { - "title": "Build a Profile Lookup", + "title": "Construir una Búsqueda de Perfiles.", "intro": [ - "In this lab, you'll create a function that looks up profile information." + "En este laboratorio, crearás una función que busca información de perfil." ] }, "lab-repeat-a-string": { - "title": "Build a String Repeating Function", + "title": "Construir una Función de Repetición de Cadenas.", "intro": [ - "In this lab, you will implement loops to repeat a string a specified number of times." + "En este laboratorio, implementarás bucles para repetir una cadena un número especificado de veces." ] }, "lab-missing-letter-detector": { - "title": "Build a Missing Letter Detector", + "title": "Construir un Detector de Letras Faltantes", "intro": [ - "In this lab, you will build a function that finds the missing letter in a given range of consecutive letters and returns it." + "En este laboratorio, crearás una función que encuentre la letra que falta en un rango dado de letras consecutivas y la devuelva." ] }, "review-javascript-loops": { - "title": "JavaScript Loops Review", + "title": "Revisión de Bucles en JavaScript.", "intro": [ - "Before you're quizzed on the different JavaScript loops, you should review them.", - "Open up this page to review the for...of loop, while loop, break and continue statements and more." + "Antes de que te pregunten sobre los diferentes bucles de JavaScript, deberías revisarlos.", + "Abre esta página para revisar el bucle for...of, el bucle while, las sentencias break y continue y más." ] }, "quiz-javascript-loops": { - "title": "JavaScript Loops Quiz", - "intro": ["Test your knowledge of JavaScript loops with this quiz."] + "title": "Cuestionario de Bucles de JavaScript.", + "intro": [ + "Pon a prueba tus conocimientos sobre los bucles de JavaScript con este cuestionario." + ] }, "lecture-working-with-types-and-objects": { - "title": "Working with Types and Objects", + "title": "Trabajando con Tipos y Objetos.", "intro": [ - "In these lectures you will learn about string objects, the toString() method, the Number constructor and more." + "En estas lecciones aprenderás sobre los objetos de cadena, el método toString(), el constructor Number y más." ] }, "lecture-working-with-arrays-variables-and-naming-practices": { - "title": "Working with Arrays, Variables, and Naming Practices", + "title": "Trabajar con Arreglos, Variables y Prácticas de Nomenclatura.", "intro": [ - "In these lectures you will learn about common practices for naming variables and functions, and how to work with arrays." + "En estas lecciones aprenderás sobre prácticas comunes para nombrar variables y funciones, y cómo trabajar con arreglos." ] }, "lecture-working-with-code-quality-and-execution-concepts": { - "title": "Working with Code Quality and Execution Concepts", + "title": "Trabajando con Calidad del Código y Conceptos de Ejecución.", "intro": [ - "In these lectures you will learn what are linters and formatters, what is memory management, and closures." + "En estas lecciones aprenderás qué son los linters y los formateadores, qué es la gestión de memoria y los cierres." ] }, "lab-largest-number-finder": { - "title": "Build the Largest Number Finder", + "title": "Construir el Buscador de Números Más Grade.", "intro": [ - "In this lab, you will use JavaScript fundamentals to create a function that finds the largest number in each sub-array of a given array." + "En este laboratorio, utilizarás los fundamentos de JavaScript para crear una función que encuentre el número más grande en cada sub-arreglo de un arreglo dado." ] }, "lab-first-element-finder": { - "title": "Build a First Element Finder", + "title": "Construir un Buscador del Primer Elemento.", "intro": [ - "In this lab, you will create a function that looks through an array and returns the first element in it that passes a \"truth test\"." + "En este laboratorio, crearás una función que mire a través de un arreglo y devuelva el primer elemento que pasa una \"prueba de verdad\"." ] }, "lab-slice-and-splice": { - "title": "Implement the Slice and Splice Algorithm", + "title": "Implementar el Algoritmo Slice and Splice.", "intro": [ - "In this lab, you will practice merging an array with another." + "En este laboratorio, practicarás fusionar un arreglo con otro." ] }, "lab-pyramid-generator": { - "title": "Build a Pyramid Generator", + "title": "Construir un Generador de Pirámides.", "intro": [ - "In this lab you'll build a pyramid generator.", - "You'll take a number as input and generate a pyramid with that many levels using a loop." + "En este laboratorio construirás un generador de pirámides.", + "Tomarás un número como entrada y generarás una pirámide con esa cantidad de niveles usando un bucle." ] }, "lab-gradebook-app": { - "title": "Build a Gradebook App", + "title": "Construir una Aplicación de Boleta de Calificaciones.", "intro": [ - "For this lab, you'll create a gradebook app.", - "You'll practice conditionals to determine the student's grade based on their score." + "Para este laboratorio, crearás una aplicación de boleta de calificaciones.", + "Practicarás condicionales para determinar la calificación del estudiante en función de su puntaje." ] }, "lecture-the-var-keyword-and-hoisting": { - "title": "The var Keyword and Hoisting", + "title": "La palabra clave var y la elevación.", "intro": [ - "In these lectures, you will learn about the var keyword and why it is not recommended for use anymore. You will also learn about hoisting in JavaScript so you can avoid subtle bugs in your code." + "En estas lecciones, aprenderás sobre la palabra clave var y por qué ya no se recomienda su uso. También aprenderás sobre la elevación en JavaScript para evitar errores sutiles en tu código." ] }, "lab-title-case-converter": { - "title": "Build a Title Case Converter", + "title": "Construir un Convertidor de Mayúsculas en Títulos", "intro": [ - "In this lab, you will build a function that converts a string to title case." + "En este laboratorio, crearás una función que convierte una cadena a mayúsculas de título." ] }, "lab-falsy-remover": { - "title": "Implement a Falsy Remover", + "title": "Implementar un Eliminador de Falsos.", "intro": [ - "In this lab, you will create a function that removes all falsy values from an array." + "En este laboratorio, crearás una función que elimina todos los valores falsos de un arreglo." ] }, "lab-inventory-management-program": { - "title": "Build an Inventory Management Program", + "title": "Construir un Programa de Gestión de Inventario.", "intro": [ - "For this lab, you'll build an inventory management program using JavaScript.", - "You'll use JavaScript array of objects to manage the inventory." + "Para este laboratorio, construirás un programa de gestión de inventario usando JavaScript.", + "Usarás arreglos de objetos de JavaScript para manejar el inventario." ] }, "lecture-understanding-modules-imports-and-exports": { - "title": "Understanding Modules, Imports, and Exports", + "title": "Comprensión de Módulos, Importaciones y Exportaciones.", "intro": [ - "In this lecture, you will learn about modules, imports, and exports in JavaScript." + "En esta lección, aprenderás sobre módulos, importaciones y exportaciones en JavaScript." ] }, "lecture-working-with-the-arguments-object-and-rest-parameters": { - "title": "Working With the Arguments Object and Rest Parameters", + "title": "Trabajar con el Objeto de Argumentos y Parámetros Rest", "intro": [ - "In these lessons, you will learn how to work with the arguments object and rest parameter syntax." + "En estas lecciones, aprenderá a trabajar con el objeto arguments y la sintaxis de parámetros Rest." ] }, "lab-unique-sorted-union": { - "title": "Implement a Unique Sorted Union", + "title": "Implementar una Unión de Conjuntos Únicos Ordenados", "intro": [ - "In this lab, you will create a function that takes two or more arrays and returns a new array of unique values in the order of the original provided arrays." + "En este laboratorio, crearás una función que tome dos o más arreglos y devuelva un nuevo arreglo de valores únicos en el orden de los arreglos proporcionados originales." ] }, "lab-password-generator": { - "title": "Build a Password Generator App", + "title": "Construir una aplicación generadora de contraseñas.", "intro": [ - "In this lab, you'll build a password generator app based on the user's input." + "En este laboratorio, construirás una aplicación generadora de contraseñas basada en la entrada del usuario." ] }, "lab-sum-all-numbers-algorithm": { - "title": "Design a Sum All Numbers Algorithm", + "title": "Diseñar un Algoritmo para Sumar Todos los Números.", "intro": [ - "In this lab, you will design a sum all numbers algorithm. This algorithm takes an array of two numbers and returns the sum of those two numbers plus the sum of all the numbers between them." + "En este laboratorio, diseñarás un algoritmo para sumar todos los números. Este algoritmo toma un arreglo de dos números y devuelve la suma de esos dos números más la suma de todos los números entre ellos." ] }, "lab-dna-pair-generator": { - "title": "Implement a DNA Pair Generator", + "title": "Implementar un Generador de Pares de ADN", "intro": [ - "In this lab you will implement a DNA base pairing algorithm that converts a single DNA strand into complementary base pairs." + "En este laboratorio, implementarás un algoritmo de emparejamiento de bases de ADN que convierte una sola hebra de ADN en pares de bases complementarias." ] }, "lab-html-entitiy-converter": { - "title": "Implement an HTML Entity Converter", + "title": "Implementar un Convertidor de Entidades HTML.", "intro": [ - "In this lab, you will convert special characters in a string to their corresponding HTML entities." + "En este laboratorio, convertirás caracteres especiales en una cadena a sus entidades HTML correspondientes." ] }, "lab-odd-fibonacci-sum-calculator": { - "title": "Build an Odd Fibonacci Sum Calculator", + "title": "Construir una Calculadora de Sumas de Fibonacci Impares", "intro": [ - "In this lab you will build an odd Fibonacci sum calculator that takes a number and returns the sum of all odd Fibonacci numbers that are less than or equal to that number." + "En este laboratorio, crearás una calculadora de sumas de Fibonacci impares que tome un número y devuelva la suma de todos los números de Fibonacci impares que sean menores o iguales a ese número." ] }, "lab-element-skipper": { - "title": "Implement an Element Skipper", + "title": "Implementar un Ocriptor de Elementos", "intro": [ - "In this lab you will create a function that skips elements in an array based on a specified step value." + "En este laboratorio crearás una función que omita elementos en un arreglo basado en un valor de paso especificado." ] }, "lab-optional-arguments-sum-function": { - "title": "Build an Optional Arguments Sum Function", + "title": "Construir una Función de Suma de Argumentos Opcionales.", "intro": [ - "In this lab you will build a function that accepts up to two arguments, and sum them, but if there is only one argument returns a function that waits for the second number to sum." + "En este laboratorio, construirás una función que acepte hasta dos argumentos, y los sume, pero si solo hay un argumento, devolverá una función que espere el segundo número para sumar." ] }, "review-javascript-fundamentals": { - "title": "JavaScript Fundamentals Review", + "title": "Revisión de Fundamentos de JavaScript.", "intro": [ - "Before you are quizzed on JavaScript fundamentals, you first need to review the concepts.", - "Open up this page to review concepts like closures, memory management, and more." + "Antes de que te cuestionen sobre los fundamentos de JavaScript, primero debes repasar los conceptos.", + "Abre esta página para repasar conceptos como closures, gestión de memoria y más." ] }, "quiz-javascript-fundamentals": { - "title": "JavaScript Fundamentals Quiz", + "title": "Cuestionario de Fundamentos de JavaScript", "intro": [ - "Test your knowledge of JavaScript fundamentals with this quiz." + "Pon a prueba tus conocimientos sobre los fundamentos de JavaScript con este cuestionario." ] }, "lecture-working-with-higher-order-functions-and-callbacks": { - "title": "Working with Higher Order Functions and Callbacks", + "title": "Trabajando con funciones de orden superior y devoluciones de llamada", "intro": [ - "In these lectures, you will learn how to work with higher order functions and callbacks. The higher order functions you will learn include map(), filter(), reduce(), sort(), every(), and some(). You will also learn how to chain these methods together to achieve your desired results." + "En estas lecciones, aprenderás cómo trabajar con funciones de orden superior y devoluciones de llamada. Las funciones de orden superior que aprenderás incluyen map(), filter(), reduce(), sort(), every() y some(). También aprenderás a encadenar estos métodos para lograr los resultados deseados." ] }, "workshop-library-manager": { - "title": "Build a Library Manager", + "title": "Construir un Administrador de Biblioteca", "intro": [ - "In this workshop, you will learn higher order array methods by building a library manager." + "En este taller, aprenderás métodos de arreglo de orden superior al construir un administrador de bibliotecas." ] }, "lab-book-organizer": { - "title": "Build a Book Organizer", + "title": "Construir un Organizador de Libros", "intro": [ - "In this lab, you'll build a book organizer using higher order functions in JavaScript." + "En este laboratorio, crearás un organizador de libros utilizando funciones de orden superior en JavaScript." ] }, "lab-sorted-index-finder": { - "title": "Implement a Sorted Index Finder", + "title": "Implementar un Buscador de Índices Ordenado", "intro": [ - "In this lab, you will create a function that finds the index at which a given number should be inserted into a sorted array to maintain the array's sorted order." + "En este laboratorio, crearás una función que encuentre el índice en el cual un número dado debería insertarse en un arreglo ordenado para mantener el orden de dicho arreglo." ] }, "lab-symmetric-difference": { - "title": "Build a Symmetric Difference Function", + "title": "Construir una Función de Diferencia Simétrica", "intro": [ - "In this lab, you will practice using higher order functions to find the symmetric difference between two arrays." + "En este laboratorio, practicarás el uso de funciones de orden superior para encontrar la diferencia simétrica entre dos arreglos." ] }, "lab-value-remover-function": { - "title": "Implement a Value Remover Function", + "title": "Implementar una Función de Eliminación de Valores", "intro": [ - "In this lab, you will create a function that removes all instances of a specified value from an array." + "En este laboratorio, crearás una función que elimine todas las instancias de un valor especificado de un arreglo." ] }, "lab-matching-object-filter": { - "title": "Implement a Matching Object Filter", + "title": "Implementar un Filtro de Objetos Coincidentes", "intro": [ - "In this lab, you will create a function that looks through an array of objects and returns an array of all objects that have matching property and value pairs." + "En este laboratorio, crearás una función que recorra un arreglo de objetos y devuelva un arreglo de todos los objetos que tienen pares de propiedad y valor coincidentes." ] }, "lab-prime-number-sum-calculator": { - "title": "Build a Prime Number Sum Calculator", + "title": "Construir una Calculadora de Suma de Números Primos", "intro": [ - "In this lab you will build a prime number sum calculator that takes a number and returns the sum of all prime numbers that are less than or equal to that number." + "En este laboratorio, crearás una calculadora de suma de números primos que tome un número y devuelva la suma de todos los números primos que sean menores o iguales a ese número." ] }, "lab-range-based-lcm-calculator": { - "title": "Implement a Range-Based LCM Calculator", + "title": "Implementar una Calculadora de MCM Basada en Rango", "intro": [ - "In this lab, you will create a function that takes an array of two numbers and returns the least common multiple (LCM) of those two numbers and all the numbers between them." + "En este laboratorio, crearás una función que tome un arreglo de dos números y devuelva el mínimo común múltiplo (MCM) de esos dos números y todos los números entre ellos." ] }, "lab-deep-flattening-tool": { - "title": "Create a Deep Flattening Tool", + "title": "Crea una Herramienta de Aplanamiento Profundo", "intro": [ - "In this lab you will create a function that can flatten deeply nested arrays, handling any level of nesting without using built-in flat methods." + "En este laboratorio crearás una función que pueda aplanar arreglos profundamente anidados, manejando cualquier nivel de anidación sin usar métodos planos incorporados." ] }, "lab-all-true-property-validator": { - "title": "Build an All-True Property Validator", + "title": "Construir un Validador de Propiedad Todo Verdadero", "intro": [ - "In this lab you will build a function that checks if all objects in an array have a truthy value for a specific property." + "En este laboratorio crearás una función que verifica si todos los objetos en un arreglo tienen un valor verdadero para una propiedad específica." ] }, "review-javascript-higher-order-functions": { - "title": "JavaScript Higher Order Functions Review", + "title": "Revisión de Funciones de Orden Superior de JavaScript", "intro": [ - "Before you're quizzed on JavaScript higher order functions, you should review them.", - "Open up this page to review concepts including how to work with the map(), filter(), and reduce() methods." + "Antes de ser cuestionado sobre las funciones de orden superior de JavaScript, deberías repasar.", + "Abre esta página para repasar conceptos que incluyen cómo trabajar con los métodos map(), filter() y reduce()." ] }, "quiz-javascript-higher-order-functions": { - "title": "JavaScript Higher Order Functions Quiz", + "title": "Cuestionario de Funciones de Orden Superior de JavaScript", "intro": [ - "Test what you've learned about JavaScript higher order functions with this quiz." + "Pon a prueba lo que has aprendido sobre funciones de orden superior en JavaScript con este cuestionario." ] }, "lecture-working-with-the-dom-click-events-and-web-apis": { - "title": "Working with the DOM, Click Events, and Web APIs", + "title": "Trabajando con el DOM, Eventos de Clic y API Web", "intro": [ - "In these lectures, you will learn how to work with the Document Object Model (DOM), the addEventListener() method and events, and web APIs." + "En estas lecciones, aprenderás cómo trabajar con el Modelo de Objetos del Documento (DOM), el método addEventListener() y eventos, y las API web." ] }, "workshop-storytelling-app": { - "title": "Build a Storytelling App", + "title": "Construir una Aplicación para Contar Historias", "intro": [ - "In this workshop, you will build a storytelling app that will allow you to list different stories based on genre." + "En este taller, crearás una aplicación de narración de historias que te permitirá enumerar diferentes historias según el género." ] }, "workshop-emoji-reactor": { - "title": "Build an Emoji Reactor", + "title": "Construir Reactores de Emojis", "intro": [ - "In this workshop, you will build an emoji reactor to practice querySelector and querySelectorAll." + "En este taller, construirás un reactor de emoji para practicar querySelector y querySelectorAll." ] }, "lab-favorite-icon-toggler": { - "title": "Build a Favorite Icon Toggler", + "title": "Construir un Conmutador de Íconos Favoritos", "intro": [ - "In this lab, you'll build a favorite icon toggler by utilizing JavaScript click events." + "En este laboratorio, crearás un conmutador de íconos favoritos utilizando eventos de clic de JavaScript." ] }, "lecture-understanding-the-event-object-and-event-delegation": { - "title": "Understanding the Event Object and Event Delegation", + "title": "Comprendiendo el Objeto de Evento y la Delegación de Eventos", "intro": [ - "In these lectures, you will learn about the event object, the change event, event bubbling, and event delegation." + "En estas lecciones, aprenderás sobre el objeto de evento, el evento de cambio, la burbuja de eventos y la delegación de eventos." ] }, "workshop-music-instrument-filter": { - "title": "Build a Music Instrument Filter", + "title": "Construir un Filtro de Instrumentos Musicales", "intro": [ - "In this workshop, you will build a music instrument filter with JavaScript." + "En este taller, construirás un filtro de instrumentos musicales utilizando JavaScript." ] }, "lab-real-time-counter": { - "title": "Build a Real Time Counter", + "title": "Construir un Contador en Tiempo Real", "intro": [ - "In this lab, you'll build a real-time character counter", - "You'll practice how to work with the input event when the user types in the input field." + "En este laboratorio, construirás un contador de caracteres en tiempo real.", + "Practicarás cómo trabajar con el evento input cuando el usuario escribe en el campo de entrada." ] }, "lab-lightbox-viewer": { - "title": "Build a Lightbox Viewer", + "title": "Construir un Visor de Caja de Luz", "intro": [ - "In this lab, you'll build a lightbox viewer for viewing images in a focused mode.", - "You'll practice click events and toggling classes." + "En este laboratorio, construirás un visor de caja de luz para ver imágenes en un modo enfocado.", + "Practicarás eventos de clic y alternancia de clases." ] }, "workshop-rps-game": { - "title": "Build a Rock, Paper, Scissors Game", + "title": "Construir un Juego de Piedra, Papel y Tijera", "intro": [ - "In this workshop, you will review DOM manipulation and events by building a Rock, Paper, Scissors Game." + "En este taller, revisarás la manipulación del DOM y eventos construyendo un juego de Piedra, Papel y Tijera." ] }, "lab-football-team-cards": { - "title": "Build a Set of Football Team Cards", + "title": "Construir un Conjunto de Tarjetas de Equipo de Fútbol", "intro": [ - "In this lab, you'll use DOM manipulation, object destructuring, event handling, and data filtering to build a set of football team cards." + "En este laboratorio, utilizarás manipulación del DOM, desestructuración de objetos, manejo de eventos y filtrado de datos para crear un conjunto de tarjetas de equipo de fútbol." ] }, "review-dom-manipulation-and-click-events-with-javascript": { - "title": "DOM Manipulation and Click Events with JavaScript Review", + "title": "Revisión de Manipulación del DOM y Eventos de Clic con JavaScript", "intro": [ - "Before you're quizzed on the DOM, you should review what you've learned about it.", - "Open up this page to review concepts including how to work with the DOM, Web APIs, the addEventListener() method, change events, event bubbling and more." + "Antes de que te pregunten sobre el DOM, debes repasar lo que has aprendido sobre él.", + "Abre esta página para repasar conceptos como cómo trabajar con el DOM, Web APIs, el método addEventListener(), eventos de cambio, burbuja de eventos y más." ] }, "quiz-dom-manipulation-and-click-event-with-javascript": { - "title": "DOM Manipulation and Click Events with JavaScript Quiz", + "title": "Cuestionario de Manipulación del DOM y Eventos de Clic con JavaScript", "intro": [ - "Test your knowledge of DOM manipulation and click events in JavaScript with this quiz." + "Pon a prueba tus conocimientos sobre la manipulación del DOM y los eventos de clic en JavaScript con este cuestionario." ] }, "lecture-understanding-aria-expanded-aria-live-and-common-aria-states": { - "title": "Understanding aria-expanded, aria-live, and Common ARIA States", + "title": "Comprendiendo aria-expanded, aria-live y Estados ARIA Comunes", "intro": [ - "In these lectures you will learn more about ARIA attributes like aria-expanded, aria-live, and common ARIA states." + "En estas lecciones, aprenderás más sobre atributos ARIA como aria-expanded, aria-live y estados ARIA comunes." ] }, "workshop-planets-tablist": { - "title": "Build a Planets Tablist", + "title": "Construir una Lista de Pestañas de Planetas", "intro": [ - "In this workshop, you will build a dynamic tabbed interface that showcases facts about the planets in the solar system." + "En este taller, construirás una interfaz dinámica con pestañas que muestra datos sobre los planetas del sistema solar." ] }, "workshop-note-taking-app": { - "title": "Build a Note Taking App", + "title": "Construir una Aplicación de Notas", "intro": [ - "In this workshop, you are going to build an accessible note taking app.", - "This will provide you with the opportunity to practice working with aria-live attribute." + "En este taller, construirás una aplicación accesible para tomar notas.", + "Esto te brindará la oportunidad de practicar el trabajo con el atributo aria-live." ] }, "lab-theme-switcher": { - "title": "Build a Theme Switcher", + "title": "Construir un Cambiador de Tema", "intro": [ - "In this lab, you will build a theme switcher and practice working with the aria-haspopup, aria-expanded, and aria-controls attributes." + "En este laboratorio, construirás un cambiador de tema y practicarás el trabajo con los atributos aria-haspopup, aria-expanded y aria-controls." ] }, "review-js-a11y": { - "title": "JavaScript and Accessibility Review", + "title": "Revisión de JavaScript y Accesibilidad", "intro": [ - "Before you're quizzed on JavaScript and accessibility, you should review what you've learned about it.", - "Open up this page to review concepts including how to work with the aria-expanded, aria-live, and aria-controls attributes." + "Antes de que te pregunten sobre JavaScript y accesibilidad, debes repasar lo que has aprendido sobre ellos.", + "Abre esta página para repasar conceptos como cómo trabajar con los atributos aria-expanded, aria-live y aria-controls." ] }, "quiz-js-a11y": { - "title": "JavaScript and Accessibility Quiz", + "title": "Cuestionario de JavaScript y Accesibilidad", "intro": [ - "Test your knowledge of JavaScript and accessibility best practices with this quiz." + "Pon a prueba tus conocimientos de JavaScript y las mejores prácticas de accesibilidad con este cuestionario." ] }, "lecture-debugging-techniques": { - "title": "Debugging Techniques", + "title": "Técnicas de Depuración", "intro": [ - "In these lectures, you will learn about the common errors in JavaScript and the techniques you can use to fix them – a process called debugging." + "En estas lecciones, aprenderás sobre los errores comunes en JavaScript y las técnicas que puedes usar para corregirlos: un proceso llamado depuración." ] }, "lab-random-background-color-changer": { - "title": "Debug a Random Background Color Changer", + "title": "Depurar un Cambiador Aleatorio de Color de Fondo", "intro": [ - "In this lab, you'll debug a random background color changer and fix the errors to make it work properly." + "En este laboratorio, depurarás un cambiador aleatorio de color de fondo y corregirás los errores para que funcione correctamente." ] }, "review-debugging-javascript": { - "title": "Debugging JavaScript Review", + "title": "Revisión de Depuración de JavaScript", "intro": [ - "Before you're quizzed on common debugging techniques, you should review what you've learned.", - "Open up this page to review concepts including how to work with the throw statement, try...catch...finally and more." + "Antes de ser cuestionado sobre las técnicas de depuración comunes, deberías repasar lo que has aprendido.", + "Abre esta página para repasar conceptos como cómo trabajar con la declaración throw, try...catch...finally y más." ] }, "quiz-debugging-javascript": { - "title": "Debugging JavaScript Quiz", - "intro": ["Test your knowledge of JavaScript debugging with this quiz."] + "title": "Cuestionario de Depuración de JavaScript", + "intro": [ + "Pon a prueba tus conocimientos de depuración de JavaScript con este cuestionario." + ] }, "lecture-working-with-regular-expressions": { - "title": "Working with Regular Expressions", + "title": "Trabajando con Expresiones Regulares", "intro": [ - "In these lectures, you will learn about regular expressions in JavaScript. You will learn about the methods for working with regular expressions, modifiers, character classes, lookaheads, lookbehinds, back-references, quantifiers, and more." + "En estas lecciones, aprenderás sobre expresiones regulares en JavaScript. Aprenderás sobre los métodos para trabajar con expresiones regulares, modificadores, clases de caracteres, anticipaciones, retroacciones, referencias inversas, cuantificadores y más." ] }, "workshop-spam-filter": { - "title": "Build a Spam Filter", + "title": "Construir un Filtro Anti-Spam", "intro": [ - "Regular expressions, often shortened to \"regex\" or \"regexp\", are patterns that help programmers match, search, and replace text. Regular expressions are powerful, but can be difficult to understand because they use so many special characters.", - "In this workshop, you'll use capture groups, positive lookaheads, negative lookaheads, and other techniques to match any text you want." + "Las expresiones regulares, a menudo abreviadas como \"regex\" o \"regexp\", son patrones que ayudan a los programadores a hacer coincidir, buscar y reemplazar texto. Las expresiones regulares son poderosas, pero pueden ser difíciles de entender porque utilizan muchos caracteres especiales.", + "En este taller, utilizarás grupos de captura, anticipaciones positivas, anticipaciones negativas y otras técnicas para hacer coincidir cualquier texto que desees." ] }, "lab-palindrome-checker": { - "title": "Build a Palindrome Checker", + "title": "Construir un Comprobador de Palíndromos", "intro": [ - "For this lab, you'll build an application that checks whether a given word is a palindrome." + "Para este laboratorio, crearás una aplicación que verifica si una palabra dada es un palíndromo." ] }, "lab-markdown-to-html-converter": { - "title": "Build a Markdown to HTML Converter", + "title": "Construir un Convertidor de Markdown a HTML", "intro": [ - "For this lab, you'll build a Markdown to HTML converter using JavaScript.", - "You'll practice regular expressions, string manipulation, and more." + "Para este laboratorio, crearás un convertidor de Markdown a HTML utilizando JavaScript.", + "Practicarás expresiones regulares, manipulación de cadenas y más." ] }, "lab-regex-sandbox": { - "title": "Build a RegEx Sandbox", - "intro": ["In this lab you'll build a regex sandbox."] + "title": "Construir un Sandbox de RegEx", + "intro": ["En este laboratorio construirás un sandbox de regex."] }, "lab-spinal-case-converter": { - "title": "Implement a Spinal Case Converter", + "title": "Implementar un Convertidor de Casos Espinales", "intro": [ - "In this lab, you will create a function that converts a given string to spinal case which is a style of writing where all letters are lowercase and separated by hyphens." + "En este laboratorio, crearás una función que convierte una cadena dada a un caso espinal, que es un estilo de escritura donde todas las letras están en minúsculas y separadas por guiones." ] }, "lab-pig-latin": { - "title": "Implement a Pig Latin Translator", + "title": "Implementar un Traductor de Latín de Cerdo", "intro": [ - "In this lab, you'll implement a Pig Latin translator using JavaScript.", - "You'll practice string manipulation, conditional logic, and regular expressions." + "En este laboratorio, implementarás un traductor de Pig Latin usando JavaScript.", + "Practicarás la manipulación de cadenas, la lógica condicional y las expresiones regulares." ] }, "lab-smart-word-replacement": { - "title": "Build a Smart Word Replacement Function", + "title": "Construir una Función de Reemplazo de Palabras Inteligente", "intro": [ - "In this lab, you will use regex to create a function that performs a search and replace operation on a given string." + "En este laboratorio, usarás expresiones regulares para crear una función que realice una operación de búsqueda y reemplazo en una cadena dada." ] }, "review-javascript-regular-expressions": { - "title": "JavaScript Regular Expressions Review", + "title": "Revisión de Expresiones Regulares de JavaScript", "intro": [ - "Before you're quizzed on Regular Expressions, you should review what you've learned.", - "Open up this page to review concepts like lookaheads, lookbehinds, common regex modifiers and more." + "Antes de ser cuestionado sobre Expresiones Regulares, deberías repasar lo que has aprendido.", + "Abre esta página para repasar conceptos como anticipaciones, retroacciones, modificadores de regex comunes y más." ] }, "quiz-javascript-regular-expressions": { - "title": "JavaScript Regular Expressions Quiz", + "title": "Cuestionario de Expresiones Regulares de JavaScript", "intro": [ - "Test your knowledge of JavaScript Regular Expressions with this quiz." + "Pon a prueba tus conocimientos de Expresiones Regulares de JavaScript con este cuestionario." ] }, "lecture-understanding-form-validation": { - "title": "Understanding Form Validation", + "title": "Comprendiendo la Validación de Formularios", "intro": [ - "In these lectures, you will learn about form validation in JavaScript. You will learn about the various ways to validate forms, how the preventDefault() method works, and how the submit event works." + "En estas lecciones, aprenderás sobre la validación de formularios en JavaScript. Aprenderás sobre las diversas formas de validar formularios, cómo funciona el método preventDefault() y cómo funciona el evento de envío." ] }, "workshop-calorie-counter": { - "title": "Build a Calorie Counter", + "title": "Construir un Contador de Calorías", "intro": [ - "Sometimes when you're coding a web application, you'll need to be able to accept input from a user. In this calorie counter workshop, you'll practice how to validate user input, perform calculations based on that input, and dynamically update your interface to display the results.", - "You'll also practice basic regular expressions, template literals, the addEventListener() method, and more." + "A veces cuando estás codificando una aplicación web, necesitarás poder aceptar la entrada de un usuario. En este taller de contador de calorías, practicarás cómo validar la entrada del usuario, realizar cálculos basados en esa entrada y actualizar dinámicamente tu interfaz para mostrar los resultados.", + "También practicarás expresiones regulares básicas, literales de plantilla y el método addEventListener(), y más." ] }, "lab-customer-complaint-form": { - "title": "Build a Customer Complaint Form", + "title": "Construir un Formulario de Quejas de Clientes", "intro": [ - "For this lab, you'll use JavaScript to validate a customer complaint form.", - "You'll practice how to validate form inputs, display error messages, and prevent the form from submitting if there are errors." + "Para este laboratorio, utilizarás JavaScript para validar un formulario de queja de cliente.", + "Practicarás cómo validar los inputs del formulario, mostrar mensajes de error y evitar que el formulario se envíe si hay errores." ] }, "review-form-validation-with-javascript": { - "title": "Form Validation with JavaScript Review", + "title": "Revisión de Validación de Formularios con JavaScript", "intro": [ - "Before you're quizzed on form validation, you should review what you've learned.", - "Open up this page to review concepts including the preventDefault() method, the submit event and more." + "Antes de que te pregunten sobre la validación de formularios, debes repasar lo que has aprendido.", + "Abre esta página para repasar conceptos como el método preventDefault(), el evento de envío y más." ] }, "quiz-form-validation-with-javascript": { - "title": "Form Validation with JavaScript Quiz", + "title": "Cuestionario de Validación de Formularios con JavaScript", "intro": [ - "Test what you've learned about JavaScript form validation with this quiz." + "Pon a prueba lo que has aprendido sobre validación de formularios con JavaScript con este cuestionario." ] }, "lecture-working-with-dates": { - "title": "Working with Dates", + "title": "Trabajando con Fechas", "intro": [ - "In these lectures, you will learn about the JavaScript date object. You will learn about the methods for working with dates and how to format dates." + "En estas lecciones, aprenderás sobre el objeto de fecha de JavaScript. Aprenderás sobre los métodos para trabajar con fechas y cómo formatearlas." ] }, "lab-date-conversion": { - "title": "Build a Date Conversion Program", + "title": "Construir un Programa de Conversión de Fechas", "intro": [ - "In this lab, you'll build a program to convert a date from one format to another." + "En este laboratorio crearás un programa para convertir una fecha de un formato a otro." ] }, "review-javascript-dates": { - "title": "JavaScript Dates Review", + "title": "Revisión de Fechas en JavaScript", "intro": [ - "Before you're quizzed on working with dates, you should review what you've learned.", - "Open up this page to review the Date() object and common methods." + "Antes de que te pregunten cómo trabajar con fechas, debes repasar lo que has aprendido.", + "Abre esta página para revisar el objeto Date() y métodos comunes." ] }, "quiz-javascript-dates": { - "title": "JavaScript Dates Quiz", + "title": "Cuestionario de Fechas en JavaScript", "intro": [ - "Test what you've learned about JavaScript Dates with this quiz." + "Pon a prueba tus conocimientos sobre Fechas en JavaScript con este cuestionario." ] }, "lecture-working-with-audio-and-video": { - "title": "Working with Audio and Video", + "title": "Trabajando con Audio y Video", "intro": [ - "In these lectures, you will learn how to work with audio and video files using JavaScript. You will learn about the Audio and Video constructors, their methods and properties, audio and video formats, codecs, the HTMLMediaElement API, and much more." + "En estas lecciones, aprenderás cómo trabajar con archivos de audio y video utilizando JavaScript. Aprenderás sobre los constructores Audio y Video, sus métodos y propiedades, formatos de audio y video, códecs, la API HTMLMediaElement y mucho más." ] }, "workshop-music-player": { - "title": "Build a Music Player", + "title": "Construir un Reproductor de Música", "intro": [ - "In this workshop, you'll code a basic MP3 player using HTML, CSS, and JavaScript.", - "The project covers fundamental concepts such as handling audio playback, managing a playlist, implementing play, pause, next, and previous functionalities and dynamically update your user interface based on the current song." + "En este taller, codificarás un reproductor básico de MP3 usando HTML, CSS y JavaScript.", + "El proyecto abarca conceptos fundamentales como el manejo de la reproducción de audio, la gestión de una lista de reproducción, la implementación de funcionalidades de reproducción, pausa, siguiente y anterior, y actualiza dinámicamente tu interfaz de usuario en función de la canción actual." ] }, "lab-drum-machine": { - "title": "Build a Drum Machine", + "title": "Construir una Caja de Ritmos", "intro": [ - "For this lab you will use the audio element to build a drum machine." + "Para este laboratorio, usarás el elemento audio para construir una caja de ritmos." ] }, "review-javascript-audio-and-video": { - "title": "JavaScript Audio and Video Review", + "title": "Revisión de Audio y Video en JavaScript", "intro": [ - "Before you're quizzed on working with audio and video in JavaScript, you should review what you've learned about them.", - "Open up this page to review concepts including the Audio constructor, the HTMLMediaElement API and more." + "Antes de que te pregunten sobre cómo trabajar con audio y video en JavaScript, debes repasar lo que has aprendido sobre ellos.", + "Abre esta página para repasar conceptos como el constructor Audio, la API HTMLMediaElement y más." ] }, "quiz-javascript-audio-and-video": { - "title": "JavaScript Audio and Video Quiz", + "title": "Cuestionario de Audio y Video en JavaScript", "intro": [ - "Test what you've learned about JavaScript audio and video with this quiz." + "Pon a prueba lo que has aprendido sobre audio y video en JavaScript con este cuestionario." ] }, "lecture-working-with-maps-and-sets": { - "title": "Working with Maps and Sets", + "title": "Trabajando con Mapas y Conjuntos", "intro": [ - "In these lectures, you will learn about JavaScript Map and Set. You will also learn how they both differ from WeakSets and WeakMaps." + "En estas lecciones, aprenderás sobre Map y Set en JavaScript. También aprenderás cómo ambos difieren de WeakSets y WeakMaps." ] }, "workshop-plant-nursery-catalog": { - "title": "Build a Plant Nursery Catalog", + "title": "Construir un Catálogo de Vivero de Plantas", "intro": [ - "In this workshop, you will practice using Maps and Sets by building a plant nursery catalog." + "En este taller, practicarás el uso de Mapas y Conjuntos al crear un catálogo de vivero de plantas." ] }, "lab-voting-system": { - "title": "Build a Voting System", + "title": "Construir un Sistema de Votación", "intro": [ - "In this lab, you'll build a voting system using Maps and Sets.", - "You'll practice how to use the Map object to store key-value pairs and the Set object to store unique values." + "En este laboratorio, crearás un sistema de votación usando Mapas y Conjuntos.", + "Practicarás cómo usar el objeto Map para almacenar pares clave-valor y el objeto Set para almacenar valores únicos." ] }, "review-javascript-maps-and-sets": { - "title": "JavaScript Maps and Sets Review", + "title": "Revisión de Mapas y Conjuntos en JavaScript", "intro": [ - "Before you're quizzed on JavaScript Maps and Sets, you should review what you've learned about them.", - "Open up this page to review concepts such as the Map and Set objects, as well as WeakSet and WeakMap." + "Antes de que te pregunten sobre Mapas y Conjuntos de JavaScript, debes repasar lo que has aprendido sobre ellos.", + "Abre esta página para revisar conceptos como los objetos Map y Set, así como WeakSet y WeakMap." ] }, "quiz-javascript-maps-and-sets": { - "title": "JavaScript Maps and Sets Quiz", + "title": "Cuestionario de Mapas y Conjuntos de JavaScript", "intro": [ - "Test what you've learned about JavaScript Maps and Sets with this quiz." + "Pon a prueba lo que has aprendido sobre Mapas y Conjuntos de JavaScript con este cuestionario." ] }, "lecture-working-with-client-side-storage-and-crud-operations": { - "title": "Working with Client-Side Storage and CRUD Operations", + "title": "Trabajando con Almacenamiento del Lado del Cliente y Operaciones CRUD", "intro": [ - "In these lectures, you will learn about client-side storage and CRUD operations in JavaScript. You will learn about localStorage and sessionStorage alongside their methods and properties, cookies, the Cache API, IndexDB, and much more." + "En estas conferencias, aprenderás sobre el almacenamiento del lado del cliente y las operaciones CRUD en JavaScript. Aprenderás sobre localStorage y sessionStorage junto con sus métodos y propiedades, cookies, la API de Caché, IndexDB y mucho más." ] }, "workshop-todo-app": { - "title": "Build a Todo App using Local Storage", + "title": "Crear una App de Tareas usando Almacenamiento Local", "intro": [ - "Local storage is a web browser feature that lets web applications store key-value pairs persistently within a user's browser. This allows web apps to save data during one session, then retrieve it in a later page session.", - "In this workshop, you'll learn how to handle form inputs, manage local storage, perform CRUD (Create, Read, Update, Delete) operations on tasks, implement event listeners, and toggle UI elements." + "El almacenamiento local es una función del navegador web que permite que las aplicaciones web almacenen pares clave-valor de forma persistente dentro del navegador de un usuario. Esto permite que las aplicaciones web guarden datos durante una sesión y luego los recuperen en una sesión de página posterior.", + "En este taller, aprenderás cómo manejar las entradas de un formulario, gestionar el almacenamiento local, realizar operaciones CRUD (Crear, Leer, Actualizar, Eliminar) en tareas, implementar escuchas de eventos, y alternar elementos de la IU." ] }, "lab-bookmark-manager-app": { - "title": "Build a Bookmark Manager App", + "title": "Construir una App de Administrador de Marcadores", "intro": [ - "For this lab, you'll build a bookmark manager app.", - "You'll utilize local storage to store bookmarks, and practice how to add, remove, and display bookmarks." + "Para este laboratorio, construirás una aplicación de administrador de marcadores.", + "Utilizarás el almacenamiento local para almacenar marcadores, y practicarás cómo agregar, eliminar y mostrar marcadores." ] }, "review-local-storage-and-crud": { - "title": "Local Storage and CRUD Review", + "title": "Revisión de Almacenamiento Local y CRUD", "intro": [ - "Before you are quizzed on working with localStorage, you first need to review the concepts.", - "Open up this page to review the localStorage property, sessionStorage property and more." + "Antes de que te pregunten sobre cómo trabajar con localStorage, primero debes repasar los conceptos.", + "Abre esta página para revisar la propiedad localStorage, la propiedad sessionStorage y más." ] }, "quiz-local-storage-and-crud": { - "title": "Local Storage and CRUD Quiz", + "title": "Cuestionario de Almacenamiento Local y CRUD", "intro": [ - "Test what you've learned about local storage and CRUD with this quiz." + "Pon a prueba lo que has aprendido sobre almacenamiento local y CRUD con este cuestionario." ] }, "lecture-understanding-how-to-work-with-classes-in-javascript": { - "title": "Understanding How to Work with Classes in JavaScript", + "title": "Entendiendo cómo Trabajar con Clases en JavaScript", "intro": [ - "In these lectures, you will learn about classes in JavaScript. You will learn about inheritance, the this keyword, static properties and methods, and more." + "En estas conferencias, aprenderás sobre clases en JavaScript. Aprenderás sobre herencia, la palabra clave this, propiedades y métodos estáticos, y más." ] }, "workshop-shopping-cart": { - "title": "Build a Shopping Cart", + "title": "Crear un Carrito de Compras", "intro": [ - "In this workshop you'll create a shopping cart using JavaScript classes.", - "You will practice how to use the this keyword, create class instances, implement methods for data manipulation and more." + "En este taller crearás un carrito de compras utilizando clases de JavaScript.", + "Practicarás cómo usar la palabra clave this, crear instancias de clase, implementar métodos para la manipulación de datos y más." ] }, "lab-project-idea-board": { - "title": "Build a Project Idea Board", + "title": "Construir un Tablero de Ideas de Proyecto", "intro": [ - "In this lab, you'll build a project idea board using OOP in JavaScript.", - "You'll practice how to create classes, add methods to classes, and create instances of classes." + "En este laboratorio, construirás un tablero de ideas de proyecto usando OOP en JavaScript.", + "Practicarás cómo crear clases, añadir métodos a clases, y crear instancias de clases." ] }, "lab-bank-account-manager": { - "title": "Build a Bank Account Management Program", + "title": "Desarrollar un Programa de Gestión de Cuentas Bancarias", "intro": [ - "In this lab, you'll build a simple transaction management system for a bank account." + "En este laboratorio, construirás un sistema simple de gestión de transacciones para una cuenta bancaria." ] }, "review-javascript-classes": { - "title": "JavaScript Classes Review", + "title": "Revisión de Clases de JavaScript", "intro": [ - "Before you're quizzed on how to work with classes, you should review what you've learned about them.", - "Open up this page to review concepts including the this keyword, class inheritance and more." + "Antes de que te pregunten cómo trabajar con clases, debes repasar lo que has aprendido sobre ellas.", + "Abre esta página para revisar conceptos que incluyen la palabra clave this, herencia de clases y más." ] }, "quiz-javascript-classes": { - "title": "JavaScript Classes Quiz", + "title": "Cuestionario sobre clases de JavaScript", "intro": [ - "Test what you've learned about JavaScript classes with this quiz." + "Pon a prueba lo que has aprendido sobre las clases de JavaScript con este cuestionario." ] }, "lecture-understanding-recursion-and-the-call-stack": { - "title": "Understanding Recursion and the Call Stack", + "title": "Comprender la Recursión y la Pila de Llamadas", "intro": [ - "In this lecture, you will learn about recursion and the call stack." + "En esta conferencia, aprenderás sobre la recursión y la pila de llamadas." ] }, "workshop-decimal-to-binary-converter": { - "title": "Build a Decimal to Binary Converter", + "title": "Construir un Convertidor de Decimal a Binario", "intro": [ - "Recursion is a programming concept where a function calls itself. This can reduce a complex problem into simpler sub-problems, until they become straightforward to solve.", - "In this workshop, you'll build a decimal-to-binary converter using JavaScript. You'll practice the fundamental concepts of recursion, explore the call stack, and build out a visual representation of the recursion process through an animation." + "La recursión es un concepto de programación donde una función se llama a sí misma. Esto puede reducir un problema complejo a subproblemas más simples, hasta que se vuelven fáciles de resolver.", + "En este taller, crearás un conversor de decimal a binario usando JavaScript. Practicarás los conceptos fundamentales de la recursión, explorarás la pila de llamadas y crearás una representación visual del proceso de recursión a través de una animación." ] }, "lab-permutation-generator": { - "title": "Build a Permutation Generator", + "title": "Construir un Generador de Permutaciones", "intro": [ - "For this lab, you'll build a permutation generator that produces all possible permutations of a given string." + "Para este laboratorio, construirás un generador de permutaciones que produce todas las permutaciones posibles de una cadena dada." ] }, "review-recursion": { - "title": "Recursion Review", + "title": "Revisión de Recursión", "intro": [ - "Before you're quizzed on recursion, you should review what you've learned.", - "Open up this page to review what is recursion and what is it used for." + "Antes de que te pregunten sobre la recursión, debes repasar lo que has aprendido.", + "Abre esta página para revisar qué es la recursión y para qué se utiliza." ] }, "quiz-recursion": { - "title": "Recursion Quiz", - "intro": ["Test your knowledge of Recursion with this quiz."] + "title": "Cuestionario de Recursión", + "intro": [ + "Pon a prueba tus conocimientos de recursión con este cuestionario." + ] }, "lecture-understanding-functional-programming": { - "title": "Understanding Functional Programming", + "title": "Entender la Programación Funcional", "intro": [ - "In these lectures, you will learn about functional programming and how to nest functions using a technique called currying." + "En estas conferencias, aprenderás sobre la programación funcional y cómo anidar funciones usando una técnica llamada currying." ] }, "workshop-recipe-ingredient-converter": { - "title": "Build a Recipe Ingredient Converter", + "title": "Construir un Convertidor de Ingredientes de Recetas", "intro": [ - "In the previous lectures, you learned the core concepts behind functional programming and currying.", - "Now you will be able to apply what you have learned about currying and functional programming by building a recipe ingredient converter application." + "En las conferencias anteriores, aprendiste los conceptos clave detrás de la programación funcional y el currying.", + "Ahora podrás aplicar lo que has aprendido sobre currying y programación funcional construyendo una aplicación para convertir ingredientes de recetas." ] }, "lab-sorting-visualizer": { - "title": "Build a Sorting Visualizer", + "title": "Construir un Visualizador de Ordenamiento", "intro": [ - "For this lab, you'll use JavaScript to visualize the steps that the Bubble Sort algorithm takes to reorder an array of integers." + "Para este laboratorio, utilizarás JavaScript para visualizar los pasos que el algoritmo de ordenamiento burbuja toma para reordenar un arreglo de números enteros." ] }, "review-javascript-functional-programming": { - "title": "JavaScript Functional Programming Review", + "title": "Revisión de Programación Funcional en JavaScript", "intro": [ - "Before you're quizzed on functional programming, you should review what you've learned.", - "Open up this page to review concepts on functional programming, currying and more." + "Antes de que te pregunten sobre programación funcional, debes repasar lo que has aprendido.", + "Abre esta página para revisar conceptos sobre programación funcional, currying y más." ] }, "quiz-javascript-functional-programming": { - "title": "JavaScript Functional Programming Quiz", + "title": "Cuestionario de Programación Funcional de JavaScript", "intro": [ - "Test what you've learned about JavaScript functional programming with this quiz." + "Pon a prueba lo que has aprendido sobre programación funcional de JavaScript con este cuestionario." ] }, "lecture-understanding-asynchronous-programming": { - "title": "Understanding Asynchronous Programming", + "title": "Entendiendo la Programación Asíncrona", "intro": [ - "In these lectures, you will learn about asynchronous programming in JavaScript. You will learn about the differences between synchronous and asynchronous programming, how the async keyword works, the Fetch API, promises, async/await, the Geolocation API, and much more." + "En estas conferencias, aprenderás sobre programación asíncrona en JavaScript. Aprenderás sobre las diferencias entre la programación síncrona y asíncrona, cómo funciona la palabra clave async, la API Fetch, promesas, async/await, la API de Geolocation, y mucho más." ] }, "workshop-fcc-authors-page": { - "title": "Build an fCC Authors Page", + "title": "Crea una Página de Autores de fCC", "intro": [ - "One common aspect of web development is learning how to fetch data from an external API, then work with asynchronous JavaScript.", - "In this workshop you will practice how to use the fetch method, dynamically update the DOM to display the fetched data and paginate your data so you can load results in batches." + "Un aspecto común del desarrollo web es aprender a obtener datos de una API externa y luego trabajar con JavaScript asíncrono.", + "En este taller, practicarás cómo usar el método fetch, actualizar dinámicamente el DOM para mostrar los datos obtenidos y paginar tus datos para poder cargar resultados en lotes." ] }, "lab-fcc-forum-leaderboard": { - "title": "Build an fCC Forum Leaderboard", + "title": "Construir una Clasificación del Foro de fCC", "intro": [ - "For this lab you'll practice asynchronous JavaScript by coding your own freeCodeCamp forum leaderboard." + "Para este laboratorio, practicarás JavaScript asíncrono codificando tu propia tabla de clasificación del foro freeCodeCamp." ] }, "lab-weather-app": { - "title": "Build a Weather App", + "title": "Desarrolla una aplicación del tiempo", "intro": [ - "In this lab you'll build a Weather App using an API", - "You'll practice how to fetch data from the API, store and display it on your app." + "En este laboratorio, crearás una aplicación meteorológica usando una API", + "Practicarás cómo obtener datos de la API, almacenarlos y mostrarlos en tu aplicación." ] }, "review-asynchronous-javascript": { - "title": "Asynchronous JavaScript Review", + "title": "Revisión de JavaScript Asíncrono", "intro": [ - "Review asynchronous JavaScript concepts to prepare for the upcoming quiz." + "Revise los conceptos de JavaScript asincrónico para prepararse para el próximo examen." ] }, "quiz-asynchronous-javascript": { - "title": "Asynchronous JavaScript Quiz", + "title": "Cuestionario de JavaScript Asíncrono", "intro": [ - "Test what you've learned about asynchronous JavaScript with this quiz." + "Pon a prueba lo que has aprendido sobre JavaScript asíncrono con este cuestionario." ] }, "review-javascript": { - "title": "JavaScript Review", + "title": "Revisión de JavaScript", "intro": [ - "Before you take the JavaScript prep exam, you should review everything you've learned about JavaScript.", - "Open up this page to review all of the concepts taught including variables, strings, booleans, functions, objects, arrays, debugging, working with the DOM and more." + "Antes de tomar el examen de preparación de JavaScript, debes repasar todo lo que has aprendido sobre JavaScript.", + "Abre esta página para repasar todos los conceptos enseñados, incluidas variables, cadenas, valores booleanos, funciones, objetos, arreglos, depuración, trabajo con el DOM y más." ] }, "exam-javascript-certification": { - "title": "JavaScript Certification Exam", - "intro": ["Pass this exam to earn your JavaScript Certification."] + "title": "Examen de Certificación JavaScript", + "intro": [ + "Aprueba este examen para obtener tu Certificación JavaScript." + ] } } }, "front-end-development-libraries-v9": { - "title": "Front End Development Libraries Certification", - "note": "This certification is currently in development and will be available soon. We recommend completing the available courses below to prepare for the certification exam once it is released.", + "title": "Certificación de Bibliotecas de Desarrollo de Front-End", + "note": "Esta certificación está actualmente en desarrollo y estará disponible pronto. Recomendamos completar los cursos disponibles a continuación para prepararte para el examen de certificación una vez que sea lanzado.", "intro": [ - "This course teaches you the libraries that developers use to build webpages: React, TypeScript, and more.", - "To earn your Front End Development Libraries Certification:", - "- Complete the five required projects to qualify for the certification exam.", - "- Pass the Front End Development Libraries Certification exam." + "Este curso te enseña las bibliotecas que los desarrolladores usan para construir páginas web: React, TypeScript, y más.", + "Para obtener tu Certificación de Bibliotecas de Desarrollo Front-End:", + "- Completa los cinco proyectos requeridos para calificar para el examen de certificación.", + "- Aproba el examen de Certificación de Bibliotecas de Desarrollo Front-End." ], "chapters": { - "front-end-development-libraries": "Front End Development Libraries", - "front-end-development-libraries-certification-exam": "Front End Development Libraries Certification Exam" + "front-end-development-libraries": "Bibliotecas de Desarrollo de Front-End", + "front-end-development-libraries-certification-exam": "Examen de certificación de librerías de desarrollo front-end" }, "modules": { - "react-fundamentals": "React Fundamentals", - "react-state-hooks-and-routing": "React State, Hooks, and Routing", - "lab-currency-converter": "Build a Currency Converter", - "lab-tic-tac-toe": "Build a Tic-Tac-Toe Game", - "performance": "Performance", - "testing": "Testing", - "css-libraries-and-frameworks": "CSS Libraries and Frameworks", - "data-visualization": "Data Visualization and D3", - "typescript-fundamentals": "TypeScript Fundamentals", - "review-front-end-libraries": "Front End Libraries Review", - "front-end-development-libraries-certification-exam": "Front End Development Libraries Certification Exam" + "react-fundamentals": "Fundamentos de React", + "react-state-hooks-and-routing": "Estado, Hooks y Enrutamiento de React", + "lab-currency-converter": "Construir un Convertidor de Monedas.", + "lab-tic-tac-toe": "Construir un Juego de Tic-Tac-Toe.", + "performance": "Rendimiento", + "testing": "Pruebas", + "css-libraries-and-frameworks": "Bibliotecas y Frameworks CSS", + "data-visualization": "Visualización de Datos y D3", + "typescript-fundamentals": "Fundamentos de TypeScript ", + "review-front-end-libraries": "Revisión de Bibliotecas de Interfaz de Usuario", + "front-end-development-libraries-certification-exam": "Examen de Certificación de Bibliotecas de Desarrollo Frontal" }, "module-intros": { "data-visualization": { - "note": "Coming 2026", + "note": "Próximamente en 2026.", "intro": [ "En este módulo, serás introducido a la visualización de datos y aprenderás a trabajar con la biblioteca D3." ] }, "typescript-fundamentals": { - "note": "Coming 2026", + "note": "Próximamente en 2026.", "intro": [ "En este módulo, serás introducido a TypeScript, que es un superconjunto de JavaScript que te permite agregar tipado estático a tu código JavaScript. Construirás varios talleres y laboratorios que te darán práctica en trabajar con genéricos, estrechamiento de tipos, TSX, y más. Luego pondrás a prueba tus conocimientos de los fundamentos de TypeScript con un breve cuestionario." ] }, "front-end-development-libraries-certification-exam": { - "note": "Coming 2026", + "note": "Próximamente en 2026.", "intro": [ - "Pass this exam to earn your Front End Development Libraries Certification." + "Aprueba este examen para obtener tu Certificación de Bibliotecas de Desarrollo de la Interfaz de Usuario." ] } }, "blocks": { "lecture-introduction-to-javascript-libraries-and-frameworks": { - "title": "Introduction to JavaScript Libraries and Frameworks", + "title": "Introducción a las Bibliotecas y Frameworks JavaScript", "intro": [ - "In these lessons, you will get an introduction to JavaScript libraries and frameworks. You will learn about the roles of JavaScript libraries and frameworks, single page applications (SPAs) and the issue surrounding them, and React, the most popular frontend JavaScript library." + "En estas lecciones, recibirás una introducción a las bibliotecas y los marcos de JavaScript. Aprenderás sobre las funciones de las bibliotecas y los marcos de JavaScript, las aplicaciones de página única (SPA) y los problemas que las rodean, y React, la biblioteca de interfaz de JavaScript más popular." ] }, "workshop-reusable-mega-navbar": { - "title": "Build a Reusable Mega Navbar", + "title": "Construya una Mega Barra de Navegación Reutilizable", "intro": [ - "In the previous lessons, you learned how to work with components in React.", - "In this workshop, you will build a reusable Navbar component using React." + "En las lecciones anteriores, aprendiste cómo trabajar con componentes en React.", + "En este workshop, construirás un componente Navbar reutilizable usando React." ] }, "lab-reusable-footer": { - "title": "Build a Reusable Footer", - "intro": ["In this lab, you'll use React to build a reusable footer."] + "title": "Construir un Pie de Página Reutilizable", + "intro": [ + "En este laboratorio, usarás React para construir un pie de página reutilizable." + ] }, "lecture-working-with-data-in-react": { - "title": "Working with Data in React", + "title": "Trabajar con Datos en React", "intro": [ - "In these lessons, you will learn how to work with data in React. You will learn about props and how to pass them around, conditional rendering, how to render lists, and how to use inline styles." + "En estas lecciones, aprenderás a trabajar con datos en React. Aprenderás sobre props y cómo pasarlas, renderizado condicional, cómo renderizar listas y cómo usar estilos en línea." ] }, "workshop-reusable-profile-card-component": { - "title": "Build a Reusable Profile Card Component", + "title": "Construir un Componente de Tarjeta de Perfil Reutilizable", "intro": [ - "In this workshop, you will learn how to work with props by building a reusable profile card component." + "En este workshop, aprenderás cómo trabajar con accesorios construyendo un componente de tarjeta de perfil reutilizable." ] }, "lab-mood-board": { - "title": "Build a Mood Board", + "title": "Construir un Tablero de Estado de Ánimo", "intro": [ - "In this lab, you'll create a mood board using React.", - "You'll practice how to pass data from a parent component to a child component using props." + "En este laboratorio, crearás un tablero de estado de ánimo usando React.", + "Practicarás cómo pasar datos de un componente principal a un componente secundario usando propiedades." ] }, "review-react-basics": { - "title": "React Basics Review", + "title": "Revisión de Conceptos Básicos de React", "intro": [ - "Review basic React concepts to prepare for the upcoming quiz." + "Revise los conceptos básicos de React para prepararse para el próximo cuestionario." ] }, "quiz-react-basics": { - "title": "React Basics Quiz", - "intro": ["Test your knowledge of React basics with this quiz."] + "title": "Cuestionario Básico de React", + "intro": [ + "Pon a prueba tus conocimientos de conceptos básicos de React con este cuestionario." + ] }, "lecture-working-with-state-and-responding-to-events-in-react": { - "title": "Working with State and Responding to Events in React", + "title": "Trabajando con Estado y Respondiendo a Eventos en React", "intro": [ - "In these lessons, you will learn about working with state and responding to events with React." + "En estas lecciones, aprenderás sobre trabajar con estado y responder a eventos con React." ] }, "workshop-toggle-text-app": { - "title": "Toggle Text App", + "title": "Aplicación de Texto Alternar", "intro": [ - "In this workshop, you will continue to learn about the useState() hook by building an application that hides and shows a piece of text on the screen." + "En este workshop, continuarás aprendiendo sobre el useState() hook construyendo una aplicación que oculta y muestra un fragmento de texto en la pantalla." ] }, "lab-color-picker": { - "title": "Build a Color Picker App", + "title": "Construir una Aplicación de Selector de Colores", "intro": [ - "In this lab you'll build a Color Picker.", - "You'll practice using state and hooks to manage the properties of an element." + "En este laboratorio construirás un Selector de Colores.", + "Practicarás utilizando estado y hooks para gestionar las propiedades de un elemento." ] }, "lecture-understanding-effects-and-referencing-values-in-react": { - "title": "Understanding Effects and Referencing Values in React", + "title": "Comprender los Efectos y Referencias de Valores en React", "intro": [ - "In these lessons, you will learn about effects and referencing values with React." + "En estas lecciones, aprenderás sobre efectos y referencias de valores con React." ] }, "workshop-fruit-search-app": { - "title": "Build a Fruit Search App", + "title": "Construir una Aplicación de Búsqueda de Frutas", "intro": [ - "In this workshop, you will continue to learn about the useEffect() hook by building an application that fetches fruit data from an API based on user input and displays the results dynamically." + "En este workshop, continuarás aprendiendo sobre el useEffect() hook, construyendo una aplicación que obtiene datos de frutas de una API basada en la entrada del usuario y muestra los resultados dinámicamente." ] }, "lab-one-time-password-generator": { - "title": "Build a One-Time Password Generator", + "title": "Construir un Generador de Contraseña de Un Solo Uso", "intro": [ - "In this lab you'll build a one-time password generator.", - "You'll practice using the useEffect hooks to create a timer and generate a random OTP." + "En este laboratorio construirás un generador de contraseñas de un solo uso.", + "Practicarás usando los hooks de useEffect para crear un temporizador y generar un OTP aleatorio." ] }, "review-react-state-and-hooks": { - "title": "React State and Hooks Review", + "title": "Revisión de Estado y Hooks de React", "intro": [ - "Before you're quizzed on React state and hooks, you should review what you've learned.", - "Open up this page to review working with state, custom hooks and more." + "Antes de que te examinen sobre estado y hooks de React, debes repasar lo que has aprendido.", + "Abra esta página para revisar cómo trabajar con estado, hooks personalizados y más." ] }, "quiz-react-state-and-hooks": { - "title": "React State and Hooks Quiz", + "title": "Cuestionario sobre Estado y Hooks de React", "intro": [ - "Test what you've learned about React's useState and useEffect hooks with this quiz." + "Pon a prueba lo que has aprendido sobre los hooks useState y useEffect de React con este cuestionario." ] }, "lecture-working-with-forms-in-react": { - "title": "Working with Forms in React", + "title": "Trabajar con Formularios en React", "intro": [ - "In these lessons, you will learn about working with forms in React." + "En estas lecciones, aprenderás sobre el trabajo con formularios en React." ] }, "workshop-superhero-application-form": { - "title": "Build a Superhero Application Form", + "title": "Construir un Formulario de Aplicación de Superhéroe", "intro": [ - "In this workshop, you will build a superhero application form." + "En este workshop, construirás un formulario de aplicación para superhéroes." ] }, "lab-event-rsvp": { - "title": "Build an Event RSVP", + "title": "Construir una confirmación de asistencia para un evento", "intro": [ - "In this lab, you'll build an Event RSVP form using React.", - "You'll practice using the useState hook to manage form input and display user responses." + "En este laboratorio, crearás un formulario de confirmación de asistencia para un evento usando React.", + "Practicará el uso del hook useState para gestionar la entrada del formulario y mostrar las respuestas de los usuarios." ] }, "lecture-working-with-data-fetching-and-memoization-in-react": { - "title": "Working with Data Fetching and Memoization in React", + "title": "Trabajando con obtención de datos y memorización en React", "intro": [ - "In these lessons, you will learn about data fetching and memoization in React." + "En estas lecciones, aprenderá sobre la obtención de datos y la memorización en React." ] }, "workshop-shopping-list-app": { - "title": "Build a Shopping List App", + "title": "Construir una aplicación de lista de compras", "intro": [ - "In this workshop, you'll use the useMemo() and useCallback() hooks in React to build a simple shopping list app. You'll learn more about state and the lifecycle of React components, and how to use memoization to reduce re-renders and make your apps more efficient." + "En este taller, utilizarás los hooks useMemo() y useCallback() en React para crear una sencilla aplicación de lista de compras. Aprenderás más sobre el estado y el ciclo de vida de los componentes de React, y cómo usar la memorización para reducir re-renderizados y hacer tus aplicaciones más eficientes." ] }, "lab-currency-converter": { - "title": "Build a Currency Converter", + "title": "Construir un Convertidor de Divisas", "intro": [ - "For this lab, you'll build a currency converter app.", - "You'll use React state, memoization, and controlled components to convert between currencies." + "Para este laboratorio, crearás una aplicación de conversión de divisas.", + "Usarás el estado de React, memorización y componentes controlados para convertir entre divisas." ] }, "lecture-routing-react-frameworks-and-dependency-management-tools": { - "title": "Routing, React Frameworks, and Dependency Management Tools", + "title": "Ruteo, marcos de React y herramientas de gestión de dependencias", "intro": [ - "In these lessons, you will learn about routing in React, React frameworks, and dependency management tools." + "En estas lecciones, aprenderá sobre el ruteo en React, marcos de React y herramientas de gestión de dependencias." ] }, "lab-tic-tac-toe": { - "title": "Build a Tic-Tac-Toe Game", + "title": "Construir un Juego de Tres en Raya", "intro": [ - "In this lab, you'll build a Tic-Tac-Toe game using React.", - "You'll practice managing state, handling user interactions, and updating the UI dynamically." + "En este laboratorio, crearás un juego de tres en raya usando React.", + "Practicarás la gestión del estado, el manejo de las interacciones con el usuario y la actualización dinámica de la interfaz de usuario." ] }, "lecture-react-strategies-and-debugging": { - "title": "React Strategies and Debugging", + "title": "Estrategias de React y depuración", "intro": [ - "In these lessons, you will learn about different strategies and debugging in React." + "En estas lecciones, aprenderá sobre diferentes estrategias y depuración en React." ] }, "review-react-forms-data-fetching-and-routing": { - "title": "React Forms, Data Fetching and Routing Review", + "title": "Revisión de formularios, obtención de datos y ruteo en React", "intro": [ - "Before you take the React forms, data fetching and routing quiz, you should review everything you've learned so far.", - "Open up this page, to review all of the concepts taught including routing, forms, state management, prop drilling, data fetching and more." + "Antes de que realices el cuestionario de formularios, obtención de datos y ruteo en React, debes repasar todo lo que has aprendido hasta ahora.", + "Abre esta página para repasar todos los conceptos enseñados, incluido el ruteo, formularios, gestión del estado, perforación de propiedades, obtención de datos y más." ] }, "quiz-react-forms-data-fetching-and-routing": { - "title": "React Forms, Data Fetching and Routing Quiz", + "title": "Cuestionario de formularios, obtención de datos y ruteo en React", "intro": [ - "Test what you've learned about routing, forms, and data fetching with this quiz." + "Pon a prueba lo que has aprendido sobre ruteo, formularios y obtención de datos con este cuestionario." ] }, "lecture-understanding-performance-in-web-applications": { - "title": "Understanding Performance in Web Applications", + "title": "Comprensión del rendimiento en aplicaciones web", "intro": [ - "In these lessons, you will learn performance in web applications." + "En estas lecciones, aprenderás sobre el rendimiento en aplicaciones web." ] }, "review-web-performance": { - "title": "Web Performance Review", + "title": "Revisión del Rendimiento Web", "intro": [ - "Before you take the web performance quiz, you should review everything you've learned so far.", - "Open up this page to review all of the concepts taught including INP, key metrics for measuring performance, Performance Web APIs and more." + "Antes de que realices el cuestionario de rendimiento web, debes repasar todo lo que has aprendido hasta ahora.", + "Abre esta página para repasar todos los conceptos enseñados, incluidos INP, métricas clave para medir rendimiento, APIs de rendimiento web y más." ] }, "quiz-web-performance": { - "title": "Web Performance Quiz", + "title": "Cuestionario de rendimiento web", "intro": [ - "Test what you've learned about Web Performance with this quiz." + "Pon a prueba lo que has aprendido sobre rendimiento web con este cuestionario." ] }, "lecture-understanding-the-different-types-of-testing": { - "title": "Understanding the Different Types of Testing", + "title": "Comprender los diferentes tipos de pruebas", "intro": [ - "In these lessons, you will learn about the different types of testing." + "En estas lecciones, aprenderás sobre los diferentes tipos de pruebas." ] }, "review-testing": { - "title": "Testing Review", + "title": "Revisión de pruebas", "intro": [ - "Before you take the testing quiz, you should review everything you've learned so far.", - "Open up this page to review all of the concepts taught including unit testing, end-to-end testing, functional testing and more." + "Antes de que realices el cuestionario de pruebas, debes repasar todo lo que has aprendido hasta ahora.", + "Abre esta página para repasar todos los conceptos enseñados, incluidos las pruebas unitarias, pruebas de extremo a extremo, pruebas funcionales y más." ] }, "quiz-testing": { - "title": "Testing Quiz", - "intro": ["Test what you've learned on testing with this quiz."] + "title": "Cuestionario de pruebas", + "intro": [ + "Pon a prueba lo que has aprendido sobre pruebas con este cuestionario." + ] }, "lecture-working-with-css-libraries-and-frameworks": { - "title": "Working with CSS Libraries and Frameworks", + "title": "Trabajando con librerías y marcos CSS", "intro": [ - "In these lessons, you will learn how to work with CSS libraries and frameworks." + "En estas lecciones, aprenderás cómo trabajar con librerías y marcos CSS." ] }, "workshop-error-message-component": { - "title": "Build an Error Message Component", + "title": "Crear un componente de mensaje de error", "intro": [ - "In this workshop, you will learn the basics of Tailwind CSS by building out an error message component." + "En este taller, aprenderás los conceptos básicos de Tailwind CSS al construir un componente de mensaje de error." ] }, "workshop-tailwind-cta-component": { - "title": "Build a CTA Component", + "title": "Construir un Componente CTA", "intro": [ - "In this workshop, you will build a call to action (CTA) component using Tailwind CSS." + "En este taller, crearás un componente de llamada a la acción (CTA) usando Tailwind CSS." ] }, "workshop-tailwind-pricing-component": { - "title": "Build a Pricing Component", + "title": "Crear un Componente de Precios", "intro": [ - "In this workshop, you will build a pricing component using Tailwind CSS.", - "You will practice working with Tailwind CSS grid utility classes." + "En este taller, construirás un componente de precios usando Tailwind CSS.", + "Practicará el uso de clases de utilidad de cuadrícula de Tailwind CSS." ] }, "lab-music-shopping-cart-page": { - "title": "Build a Music Shopping Cart Page", + "title": "Crear una página de carrito de compras de música", "intro": [ - "In this lab, you will build a music shopping cart page with Tailwind CSS.", - "You will practice working with Tailwind CSS utility classes for flexbox layouts, colors, breakpoints and more." + "En este laboratorio, crearás una página de carrito de compras de música con Tailwind CSS.", + "Practicarás trabajando con clases de utilidad de Tailwind CSS para diseños de flexbox, colores, interrupciones y más." ] }, "lab-photography-exhibit": { - "title": "Design a Photography Exhibit", + "title": "Diseñar una Exhibición Fotográfica", "intro": [ - "In this lab, you will practice working with Tailwind CSS by designing a photography exhibit webpage." + "En este laboratorio, practicarás trabajando con Tailwind CSS al diseñar una página web de exposición fotográfica." ] }, "review-css-libraries-and-frameworks": { - "title": "CSS Libraries and Frameworks Review", + "title": "Revisión de librerías y marcos CSS", "intro": [ - "Before you take the CSS libraries and frameworks quiz, you should review everything you've learned so far.", - "Open up this page to review all of the concepts taught including CSS frameworks, CSS preprocessors, Sass and more." + "Antes de que realices el cuestionario de librerías y marcos CSS, debes repasar todo lo que has aprendido hasta ahora.", + "Abre esta página para repasar todos los conceptos enseñados, incluidos los marcos CSS, preprocesadores CSS, Sass y más." ] }, "quiz-css-libraries-and-frameworks": { - "title": "CSS Libraries and Frameworks Quiz", + "title": "Cuestionario de librerías y marcos CSS", "intro": [ - "Test what you've learned about CSS Libraries and Frameworks with this quiz." + "Pon a prueba lo que has aprendido sobre librerías y marcos CSS con este cuestionario." ] }, "lecture-introduction-to-typescript": { - "title": "Introduction to TypeScript", + "title": "Introducción a TypeScript", "intro": [ - "In these lessons, you will learn what TypeScript is and how to use it." + "En estas lecciones, aprenderás qué es TypeScript y cómo usarlo." ] }, "lecture-working-with-generics-and-type-narrowing": { - "title": "Working with Generics and Type Narrowing", + "title": "Trabajando con genéricos y estrechamiento de tipo", "intro": [ - "In these lessons, you will learn about generics and type narrowing in TypeScript." + "En estas lecciones, aprenderás sobre genéricos y estrechamiento de tipo en TypeScript." ] }, "lecture-working-with-typescript-configuration-files": { - "title": "Working with TypeScript Configuration Files", + "title": "Trabajando con archivos de configuración de TypeScript", "intro": [ - "In this lesson, you will learn about TypeScript configuration files and how to use them." + "En esta lección, aprenderás sobre archivos de configuración de TypeScript y cómo usarlos." ] }, "review-typescript": { - "title": "Typescript Review", + "title": "Revisión de TypeScript", "intro": [ - "Before you take the TypeScript quiz, you should review everything you've learned so far.", - "Open up this page to review all of the concepts taught including data types in TypeScript, generics, type narrowing and more." + "Antes de que realices el cuestionario de TypeScript, debes repasar todo lo que has aprendido hasta ahora.", + "Abre esta página para repasar todos los conceptos enseñados, incluidos los tipos de datos en TypeScript, genéricos, estrechamiento de tipo y más." ] }, "quiz-typescript": { - "title": "TypeScript Quiz", - "intro": ["Test what you've learned on Typescript with this quiz."] + "title": "Cuestionario de TypeScript", + "intro": [ + "Pon a prueba lo que has aprendido sobre TypeScript con este cuestionario." + ] }, "review-front-end-libraries": { - "title": "Front End Libraries Review", + "title": "Revisión de Librerías de Front End", "intro": [ - "Review the Front End Libraries concepts to prepare for the upcoming quiz." + "Revisa los conceptos de librerías de Front End para prepararte para el próximo examen." ] }, "exam-front-end-development-libraries-certification": { - "title": "Front End Development Libraries Certification Exam", + "title": "Examen de Certificación de Bibliotecas de Desarrollo Frontal", "intro": [ - "Pass this exam to earn your Front End Development Libraries Certification" + "Aprueba este examen para obtener tu Certificación de Bibliotecas de Desarrollo Front-End" ] } } }, "python-v9": { - "title": "Python Certification", + "title": "Certificación de Python", "intro": [ - "This course teaches you the fundamentals of Python programming.", - "To earn your Python Certification:", - "- Complete the five required projects to qualify for the certification exam.", - "- Pass the Python Certification exam." + "Este curso te enseña los fundamentos de la programación en Python.", + "Para obtener tu Certificación de Python:", + "- Completa los cinco proyectos requeridos para calificar para el examen de certificación.", + "- Aprueba el examen de Certificación de Python." ], "chapters": { "python": "Python", - "python-certification-exam": "Python Certification Exam" + "python-certification-exam": "Examen de certificación de Python" }, "modules": { - "python-basics": "Python Basics", - "python-loops-and-sequences": "Loops and Sequences", - "python-dictionaries-and-sets": "Dictionaries and Sets", - "lab-user-configuration-manager": "Build a User Configuration Manager", - "python-error-handling": "Error Handling", - "python-classes-and-objects": "Classes and Objects", - "lab-budget-app": "Build a Budget App", - "python-object-oriented-programming": "Object-Oriented Programming (OOP)", - "lab-polygon-area-calculator": "Build a Polygon Area Calculator", - "python-linear-data-structures": "Linear Data Structures", - "lab-hash-table": "Build a Hash Table", - "python-algorithms": "Algorithms", - "lab-tower-of-hanoi": "Implement the Tower of Hanoi Algorithm", - "python-graphs-and-trees": "Graphs and Trees", - "python-dynamic-programming": "Dynamic Programming", - "review-python": "Python Review", - "python-certification-exam": "Python Certification Exam" + "python-basics": "Fundamentos de Python", + "python-loops-and-sequences": "Bucles y Secuencias", + "python-dictionaries-and-sets": "Diccionarios y Conjuntos", + "lab-user-configuration-manager": "Construir un Gestor de Configuración de Usuarios.", + "python-error-handling": "Manejo de Errores", + "python-classes-and-objects": "Clases y Objetos", + "lab-budget-app": "Construir una Aplicación de Presupuesto.", + "python-object-oriented-programming": "Programación Orientada a Objetos (OOP)", + "lab-polygon-area-calculator": "Construir un Calculador de Área de Polígono.", + "python-linear-data-structures": "Estructuras de Datos Lineales", + "lab-hash-table": "Construir una Tabla Hash.", + "python-algorithms": "Algoritmos", + "lab-tower-of-hanoi": "Implementar el Algoritmo de la Torre de Hanoi.", + "python-graphs-and-trees": "Grafos y Árboles", + "python-dynamic-programming": "Programación Dinámica", + "review-python": "Revisión de Python", + "python-certification-exam": "Examen de Certificación de Python" }, - "module-intros": { - "python-classes-and-objects": { - "note": "Coming Winter 2025", - "intro": [ - "En este módulo, aprenderás a trabajar con clases, métodos, atributos y propiedades. Luego, desarrollarás talleres y laboratorios para practicar estos conceptos y realizarás un breve cuestionario para evaluar tus conocimientos." - ] - }, - "python-object-oriented-programming": { - "note": "Coming Winter 2025", + "blocks": { + "lecture-introduction-to-python": { + "title": "Introducción a Python", "intro": [ - "En este módulo, aprenderás sobre conceptos de programación orientada a objetos como encapsulación, herencia, polimorfismo y más. Desarrollarás talleres y laboratorios para practicar estos conceptos y realizarás un breve cuestionario para evaluar tus conocimientos." + "En estas lecciones, aprenderás qué es Python y cómo establecer tu entorno de desarrollo." ] }, - "python-linear-data-structures": { - "note": "Coming Winter 2025", + "lecture-understanding-variables-and-data-types": { + "title": "Entendiendo Variables y Tipos de Datos", "intro": [ - "En este módulo, aprenderás sobre estructuras de datos, incluyendo pilas, colas, listas enlazadas y más. Desarrollarás un taller y un laboratorio para practicar estos conceptos y realizarás un breve cuestionario para evaluar tus conocimientos." + "En estas lecciones, aprenderás sobre variables y tipos de datos en Python." ] }, - "python-algorithms": { - "note": "Coming Winter 2025", - "intro": [ - "En este módulo, aprenderás sobre algoritmos comunes como la búsqueda binaria, orden por mezcla, ordenación por selección y más. Desarrollarás talleres y laboratorios para practicar estos conceptos y realizarás un breve cuestionario para evaluar tus conocimientos." - ] + "lecture-introduction-to-python-strings": { + "title": "Introducción a Cadenas", + "intro": ["En estas lecciones, aprenderás sobre cadenas en Python."] }, - "python-graphs-and-trees": { - "note": "Coming Winter 2025", + "lecture-numbers-and-mathematical-operations": { + "title": "Números y Operaciones Matemáticas", "intro": [ - "En este módulo, aprenderás sobre grafos en ciencias de la computación, así como listas de adyacencia, árboles, intentos y más. Desarrollarás talleres y laboratorios para practicar estos conceptos y realizarás un breve cuestionario para evaluar tus conocimientos." + "En estas lecciones, aprenderás sobre números y operaciones matemáticas en Python." ] }, - "python-dynamic-programming": { - "note": "Coming Winter 2025", + "lecture-booleans-and-conditionals": { + "title": "Booleans y Condicionales", "intro": [ - "En este módulo, aprenderás sobre programación dinámica y practicarás estos conceptos creando un laboratorio de secuencia de Fibonacci. Luego, realizarás un breve cuestionario para evaluar tus conocimientos." + "En estas lecciones, aprenderás sobre booleanos y condicionales en Python." ] }, - "python-certification-exam": { - "note": "Coming Winter 2025", - "intro": ["Pass this exam to earn your Python Certification."] - } - }, - "blocks": { - "lecture-introduction-to-python": { - "title": "Introduction to Python", + "lecture-understanding-functions-and-scope": { + "title": "Entendiendo Funciones y Ámbito", "intro": [ - "In these lessons, you will learn the fundamentals of Python. You'll learn about variables, data types, operators, control flow, functions, and more." + "En estas lecciones, aprenderás sobre funciones y ámbito en Python." ] }, "workshop-caesar-cipher": { - "title": "Build a Caesar Cipher", + "title": "Construir un Cifrado César", "intro": [ - "In this workshop, you'll build a Caesar cipher using basic Python concepts such as strings, conditionals, functions, and more." + "En este taller, crearás un cifrado César utilizando conceptos básicos de Python, como cadenas, condicionales, funciones y más." ] }, "lab-rpg-character": { - "title": "Build an RPG character", + "title": "Construir un Personaje de RPG", "intro": [ - "In this lab you will practice basic python by building an RPG character." + "En este laboratorio practicarás los conceptos básicos de Python construyendo un personaje de RPG." ] }, "review-python-basics": { - "title": "Python Basics Review", + "title": "Revisión de Fundamentos de Python", "intro": [ - "Before you're quizzed on Python basics, you should review what you've learned about it.", - "In this review page, you will review working with strings, functions, comparison operators and more." + "Antes de que te pregunten sobre los fundamentos de Python, debes repasar lo que has aprendido sobre ellos.", + "En esta página de revisión, revisarás cómo trabajar con cadenas, funciones, operadores de comparación y más." ] }, "quiz-python-basics": { - "title": "Python Basics Quiz", + "title": "Cuestionario de Fundamentos de Python", "intro": [ - "Test what you've learned about Python basics with this quiz." + "Pon a prueba lo que has aprendido sobre fundamentos de Python con este cuestionario." ] }, "lecture-working-with-loops-and-sequences": { - "title": "Working with Loops and Sequences", + "title": "Trabajar con Bucles y Secuencias", "intro": [ - "Learn about Working with Loops and Sequences in these lessons." + "Aprende sobre el trabajo con bucles y secuencias en estas lecciones." ] }, "workshop-pin-extractor": { - "title": "Build a Pin Extractor", + "title": "Construir un extractor de pines", "intro": [ - "In this workshop you will build a function to extract secret pins hidden in poems." + "En este taller construirás una función para extraer pines secretos ocultos en poemas." ] }, "lab-number-pattern-generator": { - "title": "Build a Number Pattern Generator", - "intro": ["In this lab you will build a number pattern generator."] + "title": "Construir un Generador de Patrones Numéricos", + "intro": [ + "En este laboratorio construirás un generador de patrones numéricos." + ] }, "review-loops-and-sequences": { - "title": "Loops and Sequences Review", + "title": "Revisión de Bucles y Secuencias", "intro": [ - "Before you're quizzed on loops and sequences, you should review what you've learned about them.", - "Open up this page to review concepts around loops, lists, tuples and some of their common methods." + "Antes de que te pregunten sobre bucles y secuencias, debes repasar lo que has aprendido sobre ellos.", + "Abre esta página para repasar conceptos alrededor de bucles, listas, tuplas y algunos de sus métodos comunes." ] }, "quiz-loops-and-sequences": { - "title": "Loops and Sequences Quiz", + "title": "Cuestionario de Bucles y Secuencias", "intro": [ - "Test what you've learned about loops and sequences in Python with this quiz." + "Pon a prueba lo que has aprendido sobre bucles y secuencias en Python con este cuestionario." ] }, "lecture-working-with-dictionaries-and-sets": { - "title": "Working with Dictionaries and Sets", + "title": "Trabajar con Diccionarios y Conjuntos", "intro": [ - "Learn about working with dictionaries and sets in these lessons." + "Aprende a trabajar con diccionarios y conjuntos en estas lecciones." ] }, "lecture-working-with-modules": { - "title": "Working with Modules", - "intro": ["Learn about working with modules in these lessons."] + "title": "Trabajando con Módulos", + "intro": ["Aprende a trabajar con módulos en estas lecciones."] }, "workshop-medical-data-validator": { - "title": "Build a Medical Data Validator", + "title": "Crear un Validador de Datos Médicos", "intro": [ - "In this workshop, you'll practice working with dictionaries and sets while validating a collection of medical data." + "En este taller, practicarás trabajando con diccionarios y conjuntos al validar una colección de datos médicos." ] }, "lab-user-configuration-manager": { - "title": "Build a User Configuration Manager", + "title": "Crear un Administrador de Configuración de Usuarios", "intro": [ - "In this lab, you will practice working with dictionaries in Python." + "En este laboratorio, practicarás trabajando con diccionarios en Python." ] }, "review-dictionaries-and-sets": { - "title": "Dictionaries and Sets review", + "title": "Revisión de Diccionarios y Conjuntos", "intro": [ - "Before you're quizzed on dictionaries and sets, you should review what you've learned about them.", - "Open up this page to review concepts around dictionaries, sets, and how to import modules." + "Antes de que te pregunten sobre diccionarios y conjuntos, debes repasar lo que has aprendido sobre ellos.", + "Abre esta página para repasar conceptos sobre diccionarios, conjuntos y cómo importar módulos." ] }, "quiz-dictionaries-and-sets": { - "title": "Dictionaries and Sets Quiz", + "title": "Cuestionario sobre Diccionarios y Conjuntos", "intro": [ - "Test what you've learned about dictionaries and sets in Python with this quiz." + "Pon a prueba lo que has aprendido sobre diccionarios y conjuntos en Python con este cuestionario." ] }, "lecture-understanding-error-handling": { - "title": "Understanding Error Handling", + "title": "Comprender el Manejo de Errores", "intro": [ - "In these lessons, you will learn about error handling in Python. You will learn about the different types of errors, some good debugging practices, what exceptions are, and how to handle them." + "En estas lecciones, aprenderás sobre el manejo de errores en Python. Aprenderás sobre los diferentes tipos de errores, algunas buenas prácticas de depuración, qué son las excepciones y cómo manejarlas." ] }, "lab-isbn-validator": { - "title": "Debug an ISBN Validator", + "title": "Depurar un Validador de ISBN", "intro": [ - "In this lab, you will start with a bugged app, and you will need to debug and fix the bugs until it is working properly." + "En este laboratorio, comenzarás con una aplicación con errores y necesitarás depurar y corregir los errores hasta que funcione correctamente." ] }, "review-error-handling": { - "title": "Error Handling Review", + "title": "Revisión de Manejo de Errores", "intro": [ - "Before you're quizzed on error handling, you should review what you've learned about it." + "Antes de que te pregunten sobre el manejo de errores, debes repasar lo que has aprendido al respecto." ] }, "quiz-error-handling": { - "title": "Error Handling Quiz", + "title": "Cuestionario sobre Manejo de Errores", "intro": [ - "Test what you've learned about Error Handling in Python with this quiz." + "Pon a prueba lo que has aprendido sobre el Manejo de Errores en Python con este cuestionario." ] }, "lecture-classes-and-objects": { - "title": "Classes and Objects", - "intro": ["Learn about Classes and Objects in these lessons."] + "title": "Clases y Objetos", + "intro": ["Aprende sobre Clases y Objetos en estas lecciones."] }, "workshop-musical-instrument-inventory": { - "title": "Build a Musical Instrument Inventory", + "title": "Construir un Inventario de Instrumentos Musicales", "intro": [ - "In this workshop, you will learn about classes, objects, and methods in Python by building a simple musical instrument inventory." + "En este taller, aprenderás sobre clases, objetos y métodos en Python al construir un simple inventario de instrumentos musicales." ] }, "lab-planet-class": { - "title": "Build a Planet Class", + "title": "Construir una clase de planeta.", "intro": [ - "In this lab you will create a class that represents a planet." + "En este laboratorio, crearás una clase que representa un planeta." ] }, "workshop-email-simulator": { - "title": "Build an Email Simulator", + "title": "Construir un Simulador de Correo Electrónico", "intro": [ - "In this workshop you will implement classes and objects by building an email simulator that simulates sending, receiving, and managing emails between different users." + "En este taller implementarás clases y objetos construyendo un simulador de correo electrónico que simula enviar, recibir y gestionar correos entre diferentes usuarios." ] }, "lab-budget-app": { - "title": "Build a Budget App", + "title": "Construir una Aplicación de Presupuesto", "intro": [ - "In this lab you will build a budget app and practice creating a class and methods for that class." + "En este laboratorio, construirás una aplicación de presupuesto y practicarás creando una clase y métodos para esa clase." ] }, "review-classes-and-objects": { - "title": "Classes and Objects Review", + "title": "Revisión de Clases y Objetos", "intro": [ - "Before you're quizzed on classes and objects, you should review what you've learned about them.", - "Open up this page to review concepts like how classes work, what are objects, methods, attributes, special methods and more." + "Antes de que te pregunten sobre clases y objetos, deberías repasar lo que has aprendido sobre ellos.", + "Abre esta página para repasar conceptos como cómo funcionan las clases, qué son los objetos, métodos, atributos, métodos especiales y más." ] }, "quiz-classes-and-objects": { - "title": "Classes and Objects Quiz", + "title": "Cuestionario de Clases y Objetos", "intro": [ - "Test what you've learned about classes and objects in Python with this quiz." + "Pon a prueba lo que has aprendido sobre clases y objetos en Python con este cuestionario." ] }, "lecture-understanding-object-oriented-programming-and-encapsulation": { - "title": "Understanding Object Oriented Programming and Encapsulation", + "title": "Comprender la Programación Orientada a Objetos y la Encapsulación", "intro": [ - "Learn about Understanding Object Oriented Programming and Encapsulation in these lessons." + "Aprende sobre Comprender la Programación Orientada a Objetos y la Encapsulación en estas lecciones." ] }, "workshop-salary-tracker": { - "title": "Build a Salary Tracker", + "title": "Construir un Rastreador de Salario", "intro": [ - "In this workshop, you'll practice encapsulation, properties, and other OOP concepts by building a salary tracking system for employees." + "En este taller, practicarás la encapsulación, propiedades y otros conceptos de POO construyendo un sistema de rastreo de salarios para empleados." ] }, "lab-game-character-stats": { - "title": "Build a Game Character Stats Tracker", + "title": "Construir un Rastreador de Estadísticas de Personajes de Juego", "intro": [ - "In this lab, you will build a game character with different stats using object-oriented programming." + "En este laboratorio, construirás un personaje de juego con diferentes estadísticas utilizando programación orientada a objetos." ] }, "lecture-understanding-inheritance-and-polymorphism": { - "title": "Understanding Inheritance and Polymorphism", + "title": "Comprensión de la Herencia y el Polimorfismo", "intro": [ - "Learn about Understanding Inheritance and Polymorphism in these lessons." + "Aprende sobre Comprensión de la Herencia y el Polimorfismo en estas lecciones." ] }, "workshop-media-catalogue": { - "title": "Build a Media Catalogue", + "title": "Construir un Catálogo de Medios", "intro": [ - "In this workshop, you will create a media catalogue application using object-oriented programming principles." + "En este taller, crearás una aplicación de catálogo de medios utilizando principios de programación orientada a objetos." ] }, "lab-polygon-area-calculator": { - "title": "Build a Polygon Area Calculator", + "title": "Construir un Calculador de Área de Polígonos", "intro": [ - "In this lab, you will use object-oriented programming to calculate the areas of different polygons like squares and rectangles." + "En este laboratorio, utilizarás programación orientada a objetos para calcular las áreas de diferentes polígonos como los cuadrados y rectángulos." ] }, "lecture-understanding-abstraction": { - "title": "Understanding Abstraction", - "intro": ["Learn about Understanding Abstraction in these lessons."] + "title": "Comprensión de la Abstracción", + "intro": [ + "Aprende sobre Comprensión de la Abstracción en estas lecciones." + ] }, "workshop-discount-calculator": { - "title": "Build a Discount Calculator", + "title": "Construir un Calculador de Descuentos.", "intro": [ - "In this workshop you will build a flexible discount pricing calculator through abstract base classes, allowing multiple discount algorithms to be applied interchangeably without modifying the core logic." + "En este taller crearás un calculador de precios flexibles de descuento a través de clases base abstractas, lo que permite aplicar múltiples algoritmos de descuento de manera intercambiable sin modificar la lógica principal." ] }, "lab-player-interface": { - "title": "Build a Player Interface", + "title": "Construir una Interfaz de Jugador.", "intro": [ "En este laboratorio, utilizarás el módulo abc para crear una interfaz de jugador." ] }, "review-object-oriented-programming": { - "title": "Object Oriented Programming Review", + "title": "Revisión de Programación Orientada a Objetos", "intro": [ - "Before you're quizzed on object oriented programming, you should review what you've learned about it." + "Antes de que te cuestionen sobre programación orientada a objetos, deberías repasar lo que has aprendido al respecto." ] }, "quiz-object-oriented-programming": { - "title": "Object Oriented Programming Quiz", + "title": "Cuestionario de Programación Orientada a Objetos", "intro": [ - "Test what you've learned about object oriented programming in python with this quiz." + "Pon a prueba lo que has aprendido sobre programación orientada a objetos en Python con este cuestionario." ] }, "lecture-working-with-common-data-structures": { - "title": "Working with Common Data Structures", + "title": "Trabajar con Estructuras de Datos Comunes", "intro": [ - "Learn about Working with Common Data Structures in these lessons." + "Aprende sobre Trabajar con Estructuras de Datos Comunes en estas lecciones." ] }, "workshop-linked-list-class": { - "title": "Build a Linked List", + "title": "Construir una Lista Enlazada", "intro": [ - "In this workshop, you'll practice working with data structures by building a linked list." + "En este taller, practicarás trabajando con estructuras de datos construyendo una lista enlazada." ] }, "lab-hash-table": { - "title": "Build a Hash Table", + "title": "Construir una Tabla Hash", "intro": [ - "A hash table is a data structure that is used to store key-value pairs and is optimized for quick lookups.", - "In this lab, you will use your knowledge about data structures to build a hash table." + "Una tabla hash es una estructura de datos que se utiliza para almacenar pares clave-valor y está optimizada para búsquedas rápidas.", + "En este laboratorio, utilizarás tus conocimientos sobre estructuras de datos para construir una tabla hash." ] }, "review-data-structures": { - "title": "Data Structures Review", + "title": "Revisión de Estructuras de Datos", "intro": [ - "Before you're quizzed on data structures, you should review what you've learned about them.", - "Open up this page to review concepts like the different data structures, algorithms, time and space complexity, and big O notation." + "Antes de que te pregunten sobre estructuras de datos, deberías repasar lo que has aprendido sobre ellas.", + "Abre esta página para repasar conceptos como las diferentes estructuras de datos, algoritmos, complejidad de tiempo y espacio, y notación big O." ] }, "quiz-data-structures": { - "title": "Data Structures Quiz", + "title": "Cuestionario de Estructuras de Datos", "intro": [ - "Test what you've learned about data structures in Python with this quiz." + "Pon a prueba lo que has aprendido sobre estructuras de datos en Python con este cuestionario." ] }, "lecture-searching-and-sorting-algorithms": { - "title": "Searching and Sorting Algorithms", + "title": "Algoritmos de Búsqueda y Ordenamiento", "intro": [ - "Learn about fundamental searching and sorting algorithms, including linear search, binary search, and merge sort.", - "These lessons cover algorithm implementations, time and space complexity analysis, and the divide and conquer programming paradigm." + "Aprende sobre los algoritmos fundamentales de búsqueda y ordenamiento, incluyendo la búsqueda lineal, la búsqueda binaria y el ordenamiento por fusión.", + "Estas lecciones cubren implementaciones de algoritmos, análisis de complejidad de tiempo y espacio, y el paradigma de programación de dividir y conquistar." ] }, "workshop-binary-search": { - "title": "Implement the Binary Search Algorithm", + "title": "Implementar el Algoritmo de Búsqueda Binaria", "intro": [ - "The binary search algorithm is a searching algorithm used to find a target item in a sorted list.", - "In this workshop, you'll implement the binary search algorithm and return the path it took to find the target or return 'Value not found'." + "El algoritmo de búsqueda binaria es un algoritmo de búsqueda utilizado para encontrar un elemento objetivo en una lista ordenada.", + "En este taller, implementarás el algoritmo de búsqueda binaria y devolverás el camino que tomó para encontrar el objetivo o devolverás 'Valor no encontrado'." ] }, "lab-bisection-method": { - "title": "Implement the Bisection Method", + "title": "Implementar el Método de Bisección", "intro": [ - "In this lab, you will implement the bisection method to find the square root of a number." + "En este laboratorio, implementarás el método de bisección para encontrar la raíz cuadrada de un número." ] }, "workshop-merge-sort": { - "title": "Implement the Merge Sort Algorithm", + "title": "Implementar el Algoritmo de Orden por Fusión", "intro": [ - "The merge sort algorithm is a sorting algorithm based on the divide and conquer principle.", - "In this workshop, you'll implement the merge sort algorithm to sort a list of random numbers." + "El algoritmo de orden por fusión es un algoritmo de ordenación basado en el principio de dividir y conquistar.", + "En este taller, implementarás el algoritmo de orden por fusión para ordenar una lista de números aleatorios." ] }, "lab-quicksort": { - "title": "Implement the Quicksort Algorithm", + "title": "Implementar el Algoritmo Quicksort", "intro": [ - "In this lab you will implement the quicksort algorithm to sort a list of integers." + "En este laboratorio, implementarás el algoritmo Quicksort para ordenar una lista de enteros." ] }, "lab-selection-sort": { - "title": "Implement the Selection Sort Algorithm", + "title": "Implementar el Algoritmo de Ordenación por Selección", "intro": [ - "In this lab you will implement the selection sort algorithm." + "En este laboratorio, implementarás el algoritmo de ordenación por selección." ] }, "lab-luhn-algorithm": { - "title": "Implement the Luhn Algorithm", + "title": "Implementar el Algoritmo de Luhn", "intro": [ - "In this lab, you will implement the Luhn algorithm to validate identification numbers such as credit card numbers." + "En este laboratorio, implementarás el algoritmo de Luhn para validar números de identificación como números de tarjetas de crédito." ] }, "lab-tower-of-hanoi": { - "title": "Implement the Tower of Hanoi Algorithm", + "title": "Implementar el Algoritmo de la Torre de Hanói", "intro": [ - "In this lab, you will implement an algorithm to solve the Tower of Hanoi puzzle." + "En este laboratorio, implementarás un algoritmo para resolver el puzzle de la Torre de Hanói." ] }, "review-searching-and-sorting-algorithms": { - "title": "Searching and Sorting Algorithms Review", + "title": "Revisión de Algoritmos de Búsqueda y Ordenamiento", "intro": [ - "Before you're quizzed on searching and sorting algorithms, you should review what you've learned about them." + "Antes de que te pregunten sobre algoritmos de búsqueda y ordenamiento, deberías repasar lo que has aprendido sobre ellos." ] }, "quiz-searching-and-sorting-algorithms": { - "title": "Searching and Sorting Algorithms Quiz", + "title": "Cuestionario de Algoritmos de Búsqueda y Ordenamiento", "intro": [ - "Test what you've learned about searching and sorting algorithms in Python with this quiz." + "Pon a prueba lo que has aprendido sobre algoritmos de búsqueda y ordenamiento en Python con este cuestionario." ] }, "lecture-understanding-graphs-and-trees": { - "title": "Understanding Graphs and Trees", + "title": "Comprender Gráficos y Árboles", "intro": [ - "In this lesson, you will learn about fundamental data structures like graphs, trees, and their practical applications in computer science." + "En esta lección, aprenderás sobre estructuras de datos fundamentales como gráficos, árboles y sus aplicaciones prácticas en ciencias de la computación." ] }, "workshop-shortest-path-algorithm": { - "title": "Implement the Shortest Path Algorithm", + "title": "Implementar el Algoritmo de Ruta más Corta.", "intro": [ - "In this workshop you will implement an algorithm to find the shortest path between two nodes in a graph." + "En este taller implementarás un algoritmo para encontrar la ruta más corta entre dos nodos en un grafo." ] }, "lab-adjacency-list-to-matrix-converter": { - "title": "Build an Adjacency List to Matrix Converter", + "title": "Construir un Convertidor de Lista de Adyacencia a Matriz", "intro": [ - "In this lab, you will implement a function that converts an adjacency list representation of a graph into an adjacency matrix representation." + "En este laboratorio, implementarás una función que convierte una representación de lista de adyacencia de un gráfico en una representación de matriz de adyacencia." ] }, "workshop-breadth-first-search": { - "title": "Implement the Breadth-First Search Algorithm", + "title": "Implementar el Algoritmo de Búsqueda en Amplitud", "intro": [ - "In this workshop, you will use the bread-first search algorithm to generate all valid combinations of parentheses." + "En este taller, utilizarás el algoritmo de búsqueda en amplitud para generar todas las combinaciones válidas de paréntesis." ] }, "lab-depth-first-search": { - "title": "Implement the Depth-First Search Algorithm", + "title": "Implementar el Algoritmo de Búsqueda en Profundidad", "intro": [ - "In this lab, you will implement the Depth-First Search Algorithm." + "En este laboratorio, implementarás el Algoritmo de Búsqueda en Profundidad." ] }, "lab-n-queens-problem": { - "title": "Implement the N-Queens Problem", + "title": "Implementar el Problema de las N Reinas", "intro": [ - "In this lab, you will implement a solution for the N-Queens problem." + "En este laboratorio, implementarás una solución para el problema de las N Reinas." ] }, "review-graphs-and-trees": { - "title": "Graphs and Trees Review", + "title": "Revisión de Gráficos y Árboles", "intro": [ - "Before you're quizzed on graphs and trees, you should review what you've learned about them." + "Antes de que te pregunten sobre gráficos y árboles, deberías repasar lo que has aprendido sobre ellos." ] }, "quiz-graphs-and-trees": { - "title": "Graphs and Trees Quiz", + "title": "Cuestionario de Gráficos y Árboles", "intro": [ - "Test what you've learned about graphs and trees in Python with this quiz." + "Pon a prueba lo que has aprendido sobre gráficos y árboles en Python con este cuestionario." ] }, "lecture-understanding-dynamic-programming": { - "title": "Understanding Dynamic Programming", + "title": "Comprender la Programación Dinámica", "intro": [ - "In this lesson, you will learn about dynamic programming, an algorithmic technique used to solve complex problems efficiently by breaking them down into simpler subproblems." + "En esta lección, aprenderás sobre la programación dinámica, una técnica algorítmica utilizada para resolver problemas complejos de manera eficiente dividiéndolos en subproblemas más simples." ] }, "lab-nth-fibonacci-number": { - "title": "Build an Nth Fibonacci Number Calculator", + "title": "Construir un Calculador del N-ésimo Número de Fibonacci", "intro": [ - "In this lab you will implement a Fibonacci sequence calculator using a dynamic programming approach." + "En este laboratorio, implementarás un calculador de secuencia de Fibonacci utilizando un enfoque de programación dinámica." ] }, "review-dynamic-programming": { - "title": "Dynamic Programming Review", + "title": "Revisión de Programación Dinámica", "intro": [ - "Before you're quizzed on dynamic programming, you should review what you've learned about it." + "Antes de que te pregunten sobre programación dinámica, deberías repasar lo que has aprendido al respecto." ] }, "quiz-dynamic-programming": { - "title": "Dynamic Programming Quiz", + "title": "Cuestionario de Programación Dinámica", "intro": [ - "Test what you've learned about dynamic programming in python with this quiz." + "Pon a prueba lo que has aprendido sobre programación dinámica en python con este cuestionario." ] }, "review-python": { - "title": "Python Review", - "intro": ["Review Python concepts to prepare for the upcoming exam."] + "title": "Revisión de Python", + "intro": [ + "Revisa los conceptos de Python para prepararte para el próximo examen." + ] }, "exam-python-certification": { - "title": "Python Certification Exam", - "intro": ["Pass this exam to earn your Python Certification"] + "title": "Examen de Certificación de Python", + "intro": ["Aprueba este examen para obtener tu Certificación de Python"] } } }, "relational-databases-v9": { - "title": "Relational Databases Certification", + "title": "Certificación en Bases de Datos Relacionales", "intro": [ - "This course teaches you the fundamentals of relational databases.", - "To earn your Relational Databases Certification:", - "- Complete the five required projects to qualify for the certification exam.", - "- Pass the Relational Databases Certification exam." + "Este curso te enseña los fundamentos de las bases de datos relacionales.", + "Para obtener tu Certificación en Bases de Datos Relacionales:", + "- Completa los cinco proyectos requeridos para calificar para el examen de certificación.", + "- Aprueba el examen de Certificación en Bases de Datos Relacionales." ], "chapters": { - "relational-databases": "Relational Databases", - "relational-databases-certification-exam": "Relational Databases Certification Exam" + "relational-databases": "Bases de Datos Relacionales", + "relational-databases-certification-exam": "Examen de certificación en bases de datos relacionales." }, "modules": { - "code-editors": "Code Editors", - "bash-fundamentals": "Bash Fundamentals", - "sql-and-postgresql": "SQL and PostgreSQL", - "bash-scripting": "Bash Scripting", - "sql-and-bash": "SQL and Bash", + "code-editors": "Editores de Código", + "bash-fundamentals": "Fundamentos de Bash", + "sql-and-postgresql": "SQL y PostgreSQL", + "bash-scripting": "Scripting Bash", + "sql-and-bash": "SQL y Bash", "git": "Git", - "review-relational-databases": "Relational Databases Review", - "lab-celestial-bodies-database": "Build a Celestial Bodies Database", - "lab-world-cup-database": "Build a World Cup Database", - "lab-salon-appointment-scheduler": "Build a Salon Appointment Scheduler", - "lab-periodic-table-database": "Build a Periodic Table Database", - "lab-number-guessing-game": "Build a Number Guessing Game", - "relational-databases-certification-exam": "Relational Databases Certification Exam" - }, - "module-intros": { - "relational-databases-certification-exam": { - "note": "Coming Winter 2025", - "intro": [ - "Pass this exam to earn your Relational Databases Certification." - ] - } + "review-relational-databases": "Revisión de Bases de Datos Relacionales", + "lab-celestial-bodies-database": "Construir una Base de Datos de Cuerpos Celestes", + "lab-world-cup-database": "Construir una Base de Datos de la Copa del Mundo", + "lab-salon-appointment-scheduler": "Construir un Programador de Citas para el Salón", + "lab-periodic-table-database": "Construir una Base de Datos de la Tabla Periódica", + "lab-number-guessing-game": "Construir un Juego de Adivinanzas Numéricas", + "relational-databases-certification-exam": "Examen de Certificación en Bases de Datos Relacionales" }, "blocks": { "lecture-working-with-code-editors-and-ides": { - "title": "Working with Code Editors and IDEs", + "title": "Trabajar con Editores de Código e IDEs", "intro": [ - "In these lessons, you will learn how to work with code editors and IDEs. You will learn various concepts about the most popular code editor, VS Code such as its installation, how to create a project in it, keyboard shortcuts, and extensions." + "En estas lecciones, aprenderás cómo trabajar con editores de código e IDEs. Aprenderás varios conceptos sobre el editor de código más popular, VS Code, como su instalación, cómo crear un proyecto en él, atajos de teclado y extensiones." ] }, "lecture-understanding-the-command-line-and-working-with-bash": { - "title": "Understanding the Command Line and Working with Bash", + "title": "Comprender la Línea de Comandos y Trabajar con Bash", "intro": [ - "Learn about the Command Line and Working with Bash in these lessons." + "Aprende sobre la Línea de Comandos y Trabajar con Bash en estas lecciones." ] }, "workshop-bash-boilerplate": { - "title": "Build a Boilerplate", + "title": "Construir un Boilerplate", "intro": [ - "The terminal allows you to send text commands to your computer that can manipulate the file system, run programs, automate tasks, and much more.", - "In this 170-lesson workshop, you will learn terminal commands by creating a website boilerplate using only the command line." + "La terminal te permite enviar comandos de texto a tu computadora que pueden manipular el sistema de archivos, ejecutar programas, automatizar tareas y mucho más.", + "En este taller de 170 lecciones, aprenderás comandos de terminal creando un boilerplate de sitio web utilizando solo la línea de comandos." ] }, "review-bash-commands": { - "title": "Bash Commands Review", + "title": "Revisión de Comandos Bash", "intro": [ - "Review the Bash Commands concepts to prepare for the upcoming quiz." + "Revisa los conceptos de Comandos Bash para prepararte para el próximo cuestionario." ] }, "quiz-bash-commands": { - "title": "Bash Commands Quiz", - "intro": ["Test what you've learned bash commands with this quiz."] + "title": "Cuestionario de Comandos Bash", + "intro": [ + "Pon a prueba lo que has aprendido sobre los comandos Bash con este cuestionario." + ] }, "lecture-working-with-relational-databases": { - "title": "Working with Relational Databases", + "title": "Trabajando con Bases de Datos Relacionales", "intro": [ - "Learn how to work with Relational Databases in these lessons." + "Aprende cómo trabajar con Bases de Datos Relacionales en estas lecciones." ] }, "workshop-database-of-video-game-characters": { - "title": "Build a Database of Video Game Characters", + "title": "Construir una Base de Datos de Personajes de Videojuegos", "intro": [ - "A relational database organizes data into tables that are linked together through relationships.", - "In this 165-lesson workshop, you will learn the basics of a relational database by creating a PostgreSQL database filled with video game characters." + "Una base de datos relacional organiza datos en tablas que están vinculadas entre sí a través de relaciones.", + "En este taller de 165 lecciones, aprenderás los fundamentos de una base de datos relacional creando una base de datos de PostgreSQL llenada con personajes de videojuegos." ] }, "lab-celestial-bodies-database": { - "title": "Build a Celestial Bodies Database", + "title": "Construir una Base de Datos de Cuerpos Celestes", "intro": [ - "For this project, you will build a database of celestial bodies using PostgreSQL." + "Para este proyecto, construirás una base de datos de cuerpos celestes utilizando PostgreSQL." ] }, "review-sql-and-postgresql": { - "title": "SQL and PostgreSQL Review", + "title": "Revisión de SQL y PostgreSQL", "intro": [ - "Review SQL and PostgreSQL concepts to prepare for the upcoming quiz." + "Revisar conceptos de SQL y PostgreSQL para prepararse para el próximo examen." ] }, "quiz-sql-and-postgresql": { - "title": "SQL and PostgreSQL Quiz", + "title": "Prueba de SQL y PostgreSQL", "intro": [ - "Test what you've learned about SQL and PostgreSQL with this quiz." + "Pon a prueba lo que has aprendido sobre SQL y PostgreSQL con esta prueba." ] }, "lecture-understanding-bash-scripting": { - "title": "Understanding Bash Scripting", - "intro": ["Learn about Bash Scripting in these lessons."] + "title": "Comprender el Scripting Bash", + "intro": ["Aprende sobre el scripting Bash en estas lecciones."] }, "workshop-bash-five-programs": { - "title": "Build Five Programs", + "title": "Construir Cinco Programas", "intro": [ - "Bash scripts combine terminal commands and logic into programs that can execute or automate tasks, and much more.", - "In this 220-lesson workshop, you will learn more terminal commands and how to use them within Bash scripts by creating five small programs." + "Los scripts Bash combinan comandos de terminal y lógica en programas que pueden ejecutar o automatizar tareas, y mucho más.", + "En este taller de 220 lecciones, aprenderás más comandos del terminal y cómo usarlos dentro de scripts Bash creando cinco pequeños programas." ] }, "review-bash-scripting": { - "title": "Bash Scripting Review", + "title": "Revisión de Scripting Bash", "intro": [ - "Review the bash scripting concepts you've learned to prepare for the upcoming quiz." + "Revisa los conceptos de scripting Bash que has aprendido para prepararte para el próximo examen." ] }, "quiz-bash-scripting": { - "title": "Bash Scripting Quiz", - "intro": ["Test what you've learned on bash scripting in this quiz."] + "title": "Prueba de Scripting Bash", + "intro": [ + "Pon a prueba lo que has aprendido sobre scripting Bash en esta prueba." + ] }, "lecture-working-with-sql": { - "title": "Working With SQL", + "title": "Trabajando Con SQL", "intro": [ - "In these lessons, you will learn about SQL injection, normalization, and the N+1 problem." + "En estas lecciones, aprenderás sobre inyección SQL, normalización y el problema N+1." ] }, "workshop-sql-student-database-part-1": { - "title": "Build a Student Database: Part 1", + "title": "Construir una Base de Datos de Estudiantes: Parte 1", "intro": [ - "SQL, or Structured Query Language, is the language for communicating with a relational database.", - "In this 140-lesson workshop, you will create a Bash script that uses SQL to enter information about your computer science students into PostgreSQL." + "SQL, o Lenguaje de Consulta Estructurado, es el lenguaje para comunicarse con una base de datos relacional.", + "En este taller de 140 lecciones, crearás un script Bash que usa SQL para ingresar información sobre tus estudiantes de ciencias de la computación en PostgreSQL." ] }, "workshop-sql-student-database-part-2": { - "title": "Build a Student Database: Part 2", + "title": "Construir una Base de Datos de Estudiantes: Parte 2", "intro": [ - "SQL join commands are used to combine information from multiple tables in a relational database", - "In this 140-lesson workshop, you will complete your student database while diving deeper into SQL commands." + "Los comandos de unión SQL se utilizan para combinar información de varias tablas en una base de datos relacional", + "En este taller de 140 lecciones, completarás tu base de datos de estudiantes mientras profundizas en los comandos SQL." ] }, "lab-world-cup-database": { - "title": "Build a World Cup Database", + "title": "Construir una Base de Datos de la Copa del Mundo", "intro": [ - "For this project, you will create a Bash script that enters information from World Cup games into PostgreSQL, then query the database for useful statistics." + "Para este proyecto, crearás un script Bash que ingresa información de los juegos de la Copa del Mundo en PostgreSQL, y luego consultará la base de datos para obtener estadísticas útiles." ] }, "workshop-kitty-ipsum-translator": { - "title": "Build a Kitty Ipsum Translator", + "title": "Construir un Traductor de Kitty Ipsum", "intro": [ - "There's more to Bash commands than you might think.", - "In this 140-lesson workshop, you will learn some more complex commands, and the details of how commands work." + "Hay más en los comandos Bash de lo que podrías pensar.", + "En este taller de 140 lecciones, aprenderás algunos comandos más complejos y los detalles de cómo funcionan los comandos." ] }, "workshop-bike-rental-shop": { - "title": "Build a Bike Rental Shop", + "title": "Construir una Tienda de Alquiler de Bicicletas", "intro": [ - "In this 210-lesson workshop, you will build an interactive Bash program that stores rental information for your bike rental shop using PostgreSQL." + "En este taller de 210 lecciones, construirás un programa interactivo de Bash que almacena información de alquiler para tu tienda de alquiler de bicicletas usando PostgreSQL." ] }, "lab-salon-appointment-scheduler": { - "title": "Build a Salon Appointment Scheduler", + "title": "Construir un Programador de Citas para Salones", "intro": [ - "For this lab, you will create an interactive Bash program that uses PostgreSQL to track the customers and appointments for your salon." + "Para este laboratorio, crearás un programa interactivo de Bash que utiliza PostgreSQL para rastrear a los clientes y citas de tu salón." ] }, "review-bash-and-sql": { - "title": "Bash and SQL Review", + "title": "Revisión de Bash y SQL", "intro": [ - "Review the Bash and SQL concepts to prepare for the upcoming quiz." + "Revisa los conceptos de Bash y SQL para prepararte para el próximo examen." ] }, "quiz-bash-and-sql": { - "title": "Bash and SQL Quiz", - "intro": ["Test what you've learned in this quiz on Bash and SQL."] + "title": "Prueba de Bash y SQL", + "intro": [ + "Pon a prueba lo que has aprendido en esta prueba sobre Bash y SQL." + ] }, "lecture-working-with-nano": { - "title": "Working With Nano", - "intro": ["Learn about Nano in this lesson."] + "title": "Trabajando Con Nano", + "intro": ["Aprende sobre Nano en esta lección."] }, "workshop-castle": { - "title": "Build a Castle", + "title": "Construir un Castillo", "intro": [ - "Nano is a program that allows you to edit files right in the terminal.", - "In this 40-lesson workshop, you will learn how to edit files in the terminal with Nano while building a castle." + "Nano es un programa que te permite editar archivos directamente en la terminal.", + "En este taller de 40 lecciones, aprenderás a editar archivos en el terminal con Nano mientras construyes un castillo." ] }, "lecture-introduction-to-git-and-github": { - "title": "Introduction to Git and GitHub", - "intro": ["Learn how to work with Git and GitHub in these lessons."] + "title": "Introducción a Git y GitHub", + "intro": ["Aprende cómo trabajar con Git y GitHub en estas lecciones."] }, "lecture-working-with-code-reviews-branching-deployment-and-ci-cd": { - "title": "Working With Code Reviews, Branching, Deployment, and CI/CD", + "title": "Trabajando Con Revisiones de Código, Ramas, Implementación y CI/CD", "intro": [ - "Learn about code reviews, branching, deployment, and CI/CD in these lessons." + "Aprende sobre revisiones de código, ramas, implementación y CI/CD en estas lecciones." ] }, "workshop-sql-reference-object": { - "title": "Build an SQL Reference Object", + "title": "Construir un Objeto de Referencia SQL", "intro": [ - "Git is a version control system that keeps track of all the changes you make to your codebase.", - "In this 240-lesson workshop, you will learn how Git keeps track of your code by creating an object containing commonly used SQL commands." + "Git es un sistema de control de versiones que realiza un seguimiento de todos los cambios que haces en tu base de código.", + "En este taller de 240 lecciones, aprenderás cómo Git realiza el seguimiento de tu código creando un objeto que contiene comandos SQL comúnmente utilizados." ] }, "lab-periodic-table-database": { - "title": "Build a Periodic Table Database", + "title": "Construir una Base de Datos de la Tabla Periódica", "intro": [ - "For this lab, you will create a Bash script to get information about chemical elements from a periodic table database." + "Para este laboratorio, crearás un script Bash para obtener información sobre elementos químicos de una base de datos de la tabla periódica." ] }, "lab-number-guessing-game": { - "title": "Build a Number Guessing Game", + "title": "Construir un Juego de Adivinanzas de Números", "intro": [ - "For this lab, you will use Bash scripting, PostgreSQL, and Git to create a number guessing game that runs in the terminal and saves user information." + "Para este laboratorio, utilizarás scripting Bash, PostgreSQL y Git para crear un juego de adivinanzas de números que se ejecuta en el terminal y guarda información del usuario." ] }, "review-git": { - "title": "Git Review", - "intro": ["Review Git concepts to prepare for the upcoming quiz."] + "title": "Revisión de Git", + "intro": [ + "Revisa los conceptos de Git para prepararte para el próximo examen." + ] }, "quiz-git": { - "title": "Git Quiz", - "intro": ["Test what you've learned on Git with this quiz."] + "title": "Prueba de Git", + "intro": [ + "Pon a prueba lo que has aprendido sobre Git con esta prueba." + ] }, "review-relational-databases": { - "title": "Relational Databases Review", + "title": "Revisión de Bases de Datos Relacionales", "intro": [ - "Review relational databases concepts to prepare for the exam." + "Revisa los conceptos de bases de datos relacionales para prepararte para el examen." + ] + }, + "quiz-node-js-core-modules": { + "title": "Cuestionário sobre los módulos principales de NodeJS", + "intro": [ + "Pon a prueba tus conocimientos sobre los módulos principales de Node.js con este cuestionario." ] }, "exam-relational-databases-certification": { - "title": "Relational Databases Certification Exam", + "title": "Examen de Certificación en Bases de Datos Relacionales", "intro": [ - "Pass this exam to earn your Relational Databases Certification" + "Aprueba este examen para obtener tu Certificación en Bases de Datos Relacionales" ] } } }, "back-end-development-and-apis-v9": { - "title": "Back End Development and APIs Certification", - "note": "This certification is currently in development and will be available soon.", + "title": "Certificación de Desarrollo Back-End y APIs", + "note": "Esta certificación está actualmente en desarrollo y estará disponible pronto.", "intro": [ - "This course teaches you the fundamentals of back end development and APIs.", - "To earn your Back End Development and APIs Certification:", - "- Complete the five required projects to qualify for the certification exam.", - "- Pass the Back End Development and APIs Certification exam." + "Este curso te enseña los fundamentos del desarrollo back-end y de las APIs.", + "Para obtener tu Certificación en Desarrollo Back-End y APIs:", + "- Completa los cinco proyectos requeridos para calificar para el examen de certificación.", + "- Aprueba el examen de Certificación en Desarrollo Back-End y APIs." ], "chapters": { - "back-end-development-and-apis": "Back End Development and APIs", - "back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam" + "back-end-development-and-apis": "Desarrollo Back-End y APIs", + "back-end-development-and-apis-certification-exam": "Examen de certificación de desarrollo y API de back-end." }, "modules": { - "nodejs-core-libraries": "Node.js Core Libraries", - "node-package-manager": "Node Package Manager", - "http-and-the-web-standards-model": "HTTP and the Web Standards Model", - "rest-api-and-web-services": "REST API and Web Services", - "introduction-to-express": "Introduction to Express", - "express-middleware": "Express Middleware", - "error-handling-in-express": "Error Handling in Express", + "introduction-to-nodejs": "Introducción a Node.js", + "nodejs-core-modules": "Módulos principales de Node.js", + "node-package-manager": "Gestor de Paquetes de Node", + "http-and-the-web-standards-model": "HTTP y el Modelo de Estándares Web", + "rest-api-and-web-services": "API REST y Servicios Web", + "introduction-to-express": "Introducción a Express", + "express-middleware": "Middleware de Express", + "error-handling-in-express": "Manejo de Errores en Express", "websockets": "WebSockets", - "node-and-sql": "Node and SQL", - "security-and-privacy": "Security and Privacy", - "authentication": "Authentication", - "tooling-and-deployment": "Tooling and Deployment", - "back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam" + "node-and-sql": "Node y SQL", + "security-and-privacy": "Seguridad y Privacidad", + "authentication": "Autenticación", + "tooling-and-deployment": "Herramientas e Implementación", + "back-end-development-and-apis-certification-exam": "Examen de Certificación en Desarrollo Back-End y APIs" }, "module-intros": { - "nodejs-core-libraries": { - "note": "Coming Late 2026", + "introduction-to-nodejs": { + "note": "Próximamente a finales de 2026", "intro": [ - "En este módulo, aprenderás sobre librerías core comunes de Node.js incluyendo fs, os, path y más. Luego, practicarás lo que has aprendido a través de talleres y laboratorios y pondrás a prueba tus conocimientos a través de un breve cuestionario." + "En este módulo, aprenderá lo básico del trabajo con Node.js." + ] + }, + "nodejs-core-modules": { + "note": "Próximamente a finales de 2026", + "intro": [ + "En este módulo, aprenderás sobre módulos principales y comunes de Node.js incluyendo fs, os, path y más. Luego podrás practicar lo que has aprendido a través de talleres y laboratorios y probar tus conocimientos a través de un breve cuestionario." ] }, "node-package-manager": { - "note": "Coming Late 2026", + "note": "Próximamente a finales de 2026", "intro": [ "En este módulo, se te presentará el Gestor de Paquetes de Node, que los desarrolladores utilizan para gestionar dependencias de proyectos y scripts. Luego, practicarás lo que has aprendido a través de talleres y laboratorios y pondrás a prueba tus conocimientos con un breve cuestionario." ] }, "http-and-the-web-standards-model": { - "note": "Coming Late 2026", + "note": "Próximamente a finales de 2026", "intro": [ "En este módulo, aprenderás sobre HTTP (Protocolo de Transferencia de Hipertexto) y otros conceptos importantes incluyendo el modelo de solicitud-respuesta, códigos de respuesta comunes, DNS, TCP/IP y más. Luego, practicarás lo que has aprendido a través de un taller de construir tu propio servidor web y pondrás a prueba tus conocimientos con un breve cuestionario." ] }, "rest-api-and-web-services": { - "note": "Coming Late 2026", + "note": "Próximamente a finales de 2026", "intro": [ "En este módulo, aprenderás sobre la API REST (Interface de Programación de Aplicaciones de Transferencia de Estado Representacional) y cómo funcionan los microservicios. Luego, realizarás un breve cuestionario para poner a prueba tus conocimientos." ] }, "introduction-to-express": { - "note": "Coming Late 2026", + "note": "Próximamente a finales de 2026", "intro": [ "En este módulo, se te presentará Express.js, que es un marco utilizado para construir APIs RESTful. Después practicarás tus habilidades a través de talleres y laboratorios y pondrás a prueba tus conocimientos con un breve cuestionario." ] }, "express-middleware": { - "note": "Coming Late 2026", + "note": "Próximamente a finales de 2026", "intro": [ "En este módulo, aprenderás sobre middleware en Express.js, que se usa para manejar solicitudes y respuestas entre el cliente y el servidor. Luego practicarás tus habilidades a través de un taller y laboratorio y pondrás a prueba tus conocimientos con un breve cuestionario." ] }, "error-handling-in-express": { - "note": "Coming Late 2026", + "note": "Próximamente a finales de 2026", "intro": [ "En este módulo, aprenderás sobre cómo funciona el manejo de errores, la depuración y las comprobaciones de salud en Express.js. Después practicarás lo que has aprendido en un laboratorio y pondrás a prueba tus conocimientos con un breve cuestionario." ] }, "websockets": { - "note": "Coming Late 2026", + "note": "Próximamente a finales de 2026", "intro": [ "En este módulo, se te presentará a WebSockets, que es un protocolo utilizado para la comunicación en tiempo real con el cliente y el servidor. Luego practicarás lo que has aprendido en laboratorios y talleres y pondrás a prueba tus conocimientos con un breve cuestionario." ] }, "node-and-sql": { - "note": "Coming Late 2026", + "note": "Próximamente a finales de 2026", "intro": [ "En este módulo, practicarás la construcción de aplicaciones con Node y SQL. Luego realizarás un breve cuestionario para poner a prueba tus conocimientos." ] }, "security-and-privacy": { - "note": "Coming Late 2026", + "note": "Próximamente a finales de 2026", "intro": [ "En este módulo, aprenderás sobre las diferencias entre seguridad y privacidad, así como otros conceptos incluyendo CSPs, Políticas de Permisos, PII, trabajar con CORS y más. Luego realizarás un breve cuestionario para poner a prueba tus conocimientos." ] }, "authentication": { - "note": "Coming Late 2026", + "note": "Próximamente a finales de 2026", "intro": [ "En este módulo, aprenderás sobre cómo funciona la autenticación en aplicaciones web junto con otros conceptos importantes incluyendo JWTs, CSRFs, Passport, Helmet, criptografía y cifrado, y más. Luego practicarás lo que has aprendido en laboratorios y talleres y pondrás a prueba tus conocimientos con un breve cuestionario." ] }, "tooling-and-deployment": { - "note": "Coming Late 2026", + "note": "Próximamente a finales de 2026", "intro": [ "En este módulo, aprenderás sobre herramientas comunes utilizadas en la industria para implementar tus aplicaciones full stack. Luego realizarás un breve cuestionario para poner a prueba tus conocimientos." ] }, "back-end-development-and-apis-certification-exam": { - "note": "Coming Late 2026", + "note": "Próximamente a finales de 2026", "intro": [ - "Pass this exam to earn your Back End Development and APIs Certification." + "Aprueba este examen para obtener tu certificación en Desarrollo Back End y APIs." ] } }, "blocks": { + "lecture-working-with-nodejs-and-event-driven-architecture": { + "title": "Trabajando con NodeJS y la arquitectura controlada por eventos", + "intro": [ + "Aprenda sobre las librerías principales de Node.js, cómo instalar Node.js en su computadora, y las ventajas y desventajas de usar Node.js en el backend." + ] + }, + "review-node-js-core-modules": { + "title": "Node JS Core Modules Review", + "intro": [ + "Review Node JS Core Modules concepts to prepare for the upcoming quiz." + ] + }, + "review-node-js-intro": { + "title": "Revisión de introducción de NodeJS", + "intro": [ + "Revise lo básico de NodeJS para prepararse para el próximo cuestionario." + ] + }, "quiz-node-js-intro": { - "title": "NodeJS Intro Quiz", - "intro": ["Test what you have learned about NodeJS in this quiz."] + "title": "Cuestionario de introducción a NodeJS", + "intro": [ + "Pon a prueba lo que has aprendido sobre NodeJS con este cuestionario." + ] }, "lecture-understanding-the-http-request-response-model": { - "title": "Understanding the HTTP Request-Response Model", + "title": "Entendiendo el Modelo de Solicitud-Respuesta HTTP", "intro": [ - "Learn the fundamentals of how web communication works through the HTTP request-response model, explore different types of web assets and responses, and understand how forms handle data submission using various HTTP methods." + "Aprende los fundamentos de cómo funciona la comunicación web a través del modelo de solicitud-respuesta HTTP, explora diferentes tipos de recursos web y respuestas, y comprende cómo los formularios manejan el envío de datos utilizando varios métodos HTTP." ] }, "lecture-working-with-npm-scripts": { - "title": "Working with npm Scripts", + "title": "Trabajando con npm Scripts", "intro": [ - "Learn about npm scripts, publishing packages to the npm registry, and working with CommonJS and ES modules. These lessons cover essential Node.js development tools and module systems." + "Aprende sobre scripts de npm, publicar paquetes en el registro de npm, y trabajar con CommonJS y módulos ES. Estas lecciones cubren herramientas esenciales de desarrollo de Node.js y sistemas de módulos." ] }, "exam-back-end-development-and-apis-certification": { - "title": "Back End Development and APIs Certification Exam", + "title": "Examen de Certificación en Desarrollo Backend y APIs.", "intro": [ - "Pass this exam to earn your Back End Development and APIs Certification" + "Pasa este examen para obtener tu Certificación en Desarrollo Backend y APIs." ] } } }, "full-stack-developer-v9": { - "title": "Certified Full Stack Developer Curriculum", - "note": "If you were previously working through our full stack curriculum, don't worry - your progress is saved. We split it into smaller certifications for you to earn along your journey. This certification is currently in development and will be available soon. Start earning the required certifications so you're ready when it launches.", + "title": "Plan de estudio de desarrollador certificado Full Stack", + "note": "Si previamente estabas trabajando en nuestro currículo completo de desarrollo full stack, no te preocupes: tu progreso está guardado. Lo dividimos en certificaciones más pequeñas para que las ganes a lo largo de tu camino. Esta certificación está actualmente en desarrollo y estará disponible pronto. Comienza a obtener las certificaciones requeridas para que estés listo cuando se lance.", "intro": [ - "This certification represents the culmination of your full stack developer journey. It demonstrates your ability to build complete, modern web applications from start to finish.", - "To qualify for the exam, you must earn the certifications below. Pass the exam to earn your Full Stack Developer Certification." + "Esta certificación representa la culminación de tu viaje como desarrollador full stack. Demuestra tu capacidad para construir aplicaciones web completas y modernas de principio a fin.", + "Para calificar para el examen, debes obtener las certificaciones a continuación. Pasa el examen para obtener tu Certificación Full Stack Developer." ], "chapters": { - "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" + "certified-full-stack-developer-exam": "Examen de desarrollador certificado Full Stack" }, "modules": { - "certified-full-stack-developer-exam": "Certified Full Stack Developer Exam" + "certified-full-stack-developer-exam": "Examen de desarrollador certificado Full Stack" }, "module-intros": { "certified-full-stack-developer-exam": { - "note": "Coming Late 2026", + "note": "Próximamente a finales de 2026", "intro": [ - "This exam will test what you have learned throughout the previous six certifications." + "Este examen evaluará lo que has aprendido a lo largo de las seis certificaciones previas." ] } }, "blocks": { "exam-certified-full-stack-developer": { - "title": "Certified Full Stack Developer Exam", - "intro": ["Pass this exam to become a Certified Full Stack Developer."] + "title": "Examen de desarrollador certificado Full Stack", + "intro": [ + "Pasa este examen para volverse en un desarrollador Full-Stack certificado." + ] } } }, "a1-professional-spanish": { - "title": "A1 Professional Spanish Certification (Beta)", - "note": "This certification is currently in active development. We are currently publishing the first three chapters, and future chapters will be released as they are developed by our instructional design team. Once all the chapters are available, we will release the certification exam.", + "title": "Certificación de Español Profesional A1 (Beta)", + "note": "Esta certificación está actualmente en desarrollo activo. Actualmente estamos publicando los tres primeros capítulos, y futuros capítulos se lanzarán conforme los desarrolle nuestro equipo de diseño instruccional. Una vez que todos los capítulos estén disponibles, publicaremos el examen de certificación.", "intro": [ "Este curso te enseña los fundamentos de español en el nivel A1 del Marco Común Europeo de Referencia (MCER), con lecciones enfocadas en entornos profesionales. Cada módulo está dividido en secciones:", - "- A Warm-up section for quick review.", - "- Learn sections with new vocabulary and grammar.", - "- Practice sections to check your comprehension and writing skills.", - "- A Review section with key grammar and vocabulary." + "- Una sección de calentamiento para una revisión rápida.", + "- Secciones de aprendizaje con nuevo vocabulario y gramática.", + "- Secciones de práctica para verificar tu comprensión y habilidades de escritura.", + "- Una sección de repaso con clave de gramática y vocabulario." ], "chapters": { - "es-a1-chapter-welcome-to-a1-professional-spanish": "Welcome to A1 Professional Spanish", - "es-a1-chapter-spanish-fundamentals": "Spanish Fundamentals", - "es-a1-chapter-greetings-and-introductions": "Greetings and Introductions", - "es-a1-chapter-basic-personal-details": "Basic Personal Details" + "es-a1-chapter-welcome-to-a1-professional-spanish": "Bienvenido a Español Profesional A1.", + "es-a1-chapter-spanish-fundamentals": "Fundamentos del Español.", + "es-a1-chapter-greetings-and-introductions": "Saludos e Introducciones.", + "es-a1-chapter-basic-personal-details": "Detalles Personales Básicos." }, "modules": { - "es-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview", - "es-a1-module-letters-sounds-and-first-numbers": "Letters, Sounds and First Numbers", - "es-a1-module-greetings-and-farewells": "Greetings and Farewells", - "es-a1-module-introducing-yourself": "Introducing Yourself", - "es-a1-module-first-questions": "First Questions", - "es-a1-module-numbers-10-to-29": "Numbers 10 to 29", - "es-a1-module-sharing-your-personal-details": "Sharing Your Personal Details" + "es-a1-module-introduction-and-certification-overview": "Introducción y Resumen de la Certificación.", + "es-a1-module-letters-sounds-and-first-numbers": "Letras, Sonidos y Primeros Números.", + "es-a1-module-greetings-and-farewells": "Saludos y Despedidas.", + "es-a1-module-introducing-yourself": "Presentándote", + "es-a1-module-first-questions": "Primeras Preguntas", + "es-a1-module-numbers-10-to-29": "Números del 10 al 29.", + "es-a1-module-sharing-your-personal-details": "Compartiendo Tus Detalles Personales." }, "module-intros": { "es-a1-module-sharing-your-personal-details": { - "note": "Coming 2026", + "note": "Disponible en 2026", "intro": [ "En este módulo, practicarás la comprensión de conversaciones cortas que solicitan datos personales como nombre, información de contacto, nacionalidad y edad." ] @@ -7621,541 +7681,541 @@ }, "blocks": { "es-a1-warm-up-greetings-and-farewells-basics": { - "title": "Greetings and Farewells Basics", + "title": "Fundamentos de Saludos y Despedidas.", "intro": ["", ""] }, "es-a1-learn-greetings-during-the-day": { - "title": "Greetings During the Day", + "title": "Saludos Durante el Día.", "intro": ["", ""] }, "es-a1-practice-greetings-and-farewells": { - "title": "Greetings and Farewells Practice", + "title": "Práctica de Saludos y Despedidas.", "intro": ["", ""] }, "es-a1-review-greetings-and-farewells": { - "title": "Greetings and Farewells Review", + "title": "Revisión de Saludos y Despedidas.", "intro": ["", ""] }, "es-a1-quiz-greetings-and-farewells": { - "title": "Greetings and Farewells Quiz", + "title": "Cuestionario de Saludos y Despedidas.", "intro": ["", ""] }, "es-a1-learn-certification-introduction": { - "title": "Certification Introduction", + "title": "Introducción a la Certificación.", "intro": ["", ""] }, "es-a1-learn-alphabet-and-accents": { - "title": "Alphabet and Accents", + "title": "Alfabeto y Acentos.", "intro": ["", ""] }, "es-a1-learn-punctuation": { - "title": "Punctuation", + "title": "Puntuación.", "intro": ["", ""] }, "es-a1-quiz-spanish-fundamentals": { - "title": "Spanish Fundamentals Quiz", + "title": "Cuestionario de Fundamentos del Español.", "intro": ["", ""] }, "es-a1-warm-up-introducing-yourself-basics": { - "title": "Introducing Yourself Basics", + "title": "Conceptos Básicos de Presentación Personal", "intro": ["", ""] }, "es-a1-learn-meet-luna": { - "title": "Meet Luna", + "title": "Conoce a Luna", "intro": ["", ""] }, "es-a1-learn-meet-mateo": { - "title": "Meet Mateo", + "title": "Conoce a Mateo", "intro": ["", ""] }, "es-a1-learn-meet-julieta": { - "title": "Meet Julieta", + "title": "Conoce a Julieta", "intro": ["", ""] }, "es-a1-practice-introducing-yourself": { - "title": "Introducing Yourself Practice", + "title": "Práctica de Presentación Personal", "intro": ["", ""] }, "es-a1-review-introducing-yourself": { - "title": "Introducing Yourself Review", + "title": "Revisión de Presentación Personal", "intro": ["", ""] }, "es-a1-quiz-introducing-yourself": { - "title": "Introducing Yourself Quiz", + "title": "Cuestionario de Presentación Personal", "intro": ["", ""] }, "es-a1-warm-up-first-questions-basics": { - "title": "First Questions Basics", + "title": "Conceptos Básicos de Primeras Preguntas", "intro": ["", ""] }, "es-a1-learn-meet-angela-and-basti": { - "title": "Meet Angela and Basti", + "title": "Conoce a Angela y Basti", "intro": ["", ""] }, "es-a1-practice-first-questions": { - "title": "First Questions Practice", + "title": "Práctica de Primeras Preguntas", "intro": ["", ""] }, "es-a1-review-first-questions": { - "title": "First Questions Review", + "title": "Revisión de Primeras Preguntas", "intro": ["", ""] }, "es-a1-quiz-first-questions": { - "title": "First Questions Quiz", + "title": "Cuestionario de Primeras Preguntas", "intro": ["", ""] }, "es-a1-learn-vowels": { - "title": "Vowels", + "title": "Vocales", "intro": ["", ""] }, "es-a1-learn-consonants-and-special-characters": { - "title": "Consonants and Special Characters", + "title": "Consonantes y caracteres especiales.", "intro": ["", ""] }, "es-a1-review-spanish-fundamentals": { - "title": "Spanish Fundamentals Review", + "title": "Revisión de Fundamentos del Español.", "intro": ["", ""] }, "es-a1-practice-the-alphabet": { - "title": "The Spanish Alphabet Practice", + "title": "La práctica del alfabeto español.", "intro": ["", ""] }, "es-a1-warm-up-remember-first-numbers": { - "title": "Remember First Numbers", + "title": "Recordar los Primeros Números.", "intro": ["", ""] }, "es-a1-learn-numbers-10-to-29": { - "title": "Numbers 10 to 29", + "title": "Números del 10 al 29.", "intro": ["", ""] }, "es-a1-practice-using-numbers-10-to-29": { - "title": "Using Numbers 10 to 29", + "title": "Usando los Números del 10 al 29.", "intro": ["", ""] }, "es-a1-review-numbers-10-to-29": { - "title": "Numbers 10 to 29 Review", + "title": "Revisión de Números del 10 al 29.", "intro": ["", ""] }, "es-a1-quiz-numbers-10-to-29": { - "title": "Numbers 10 to 29 Quiz", + "title": "Cuestionario de Números del 10 al 29.", "intro": ["", ""] }, "es-a1-warm-up-getting-ready-to-share-personal-details": { - "title": "Getting Ready to Share Personal Details", + "title": "Preparándose para Compartir Detalles Personales.", "intro": ["", ""] }, "es-a1-learn-basic-personal-information": { - "title": "Basic Personal Information", + "title": "Información Personal Básica.", "intro": ["", ""] }, "es-a1-learn-contact-information-and-spelling": { - "title": "Contact Information and Spelling", + "title": "Información de Contacto y Ortografía.", "intro": ["", ""] }, "es-a1-practice-personal-details-in-action": { - "title": "Personal Details in Action", + "title": "Detalles Personales en Acción.", "intro": ["", ""] }, "es-a1-review-sharing-your-personal-details": { - "title": "Sharing Your Personal Details Review", + "title": "Revisión de Compartir Tus Detalles Personales.", "intro": ["", ""] }, "es-a1-quiz-sharing-your-personal-details": { - "title": "Sharing Your Personal Details Quiz", + "title": "Cuestionario de Compartir Tus Detalles Personales.", "intro": ["", ""] }, "es-a1-learn-the-first-ten-numbers": { - "title": "The First Ten Numbers", + "title": "Los Primeros Diez Números.", "intro": ["", ""] }, "es-a1-practice-the-first-ten-numbers": { - "title": "The First Ten Numbers Practice", + "title": "Práctica de los Primeros Diez Números.", "intro": ["", ""] } } }, "responsive-web-design-v9": { - "title": "Responsive Web Design Certification", + "title": "Certificación en Diseño Web Adaptativo", "intro": [ - "This course teaches the fundamentals of HTML and CSS, including modern layout, design, accessibility, and responsive web development. You'll build practical projects and gain the skills to create professional, user-friendly webpages.", - "To earn your Responsive Web Design Certification:", - "- Complete the five required projects to qualify for the certification exam.", - "- Pass the Responsive Web Design Certification exam." + "Este curso enseña los fundamentos del HTML and CSS, incluyendo diseño moderno, accesibilidad y desarrollo web responsivo. Construirás proyectos prácticos y adquirirás las habilidades para crear páginas web profesionales y fáciles de usar.", + "Para obtener tu Certificación en Diseño Web Adaptativo:", + "- Completa los cinco proyectos requeridos para calificar para el examen de certificación.", + "- Aprueba el examen de certificación en Diseño Web Adaptativo." ], "chapters": { "html": "HTML", "css": "CSS", - "computers": "Computers", - "responsive-web-design-certification-exam": "Responsive Web Design Certification Exam" + "computers": "Computadoras.", + "responsive-web-design-certification-exam": "Examen de Certificación en Diseño Web Adaptativo" }, "modules": { - "basic-html": "Basic HTML", - "semantic-html": "Semantic HTML", - "html-forms-and-tables": "Forms and Tables", - "html-and-accessibility": "Accessibility", - "review-html": "HTML Review", - "computer-basics": "Computer Basics", - "basic-css": "Basic CSS", - "design-for-developers": "Design", - "absolute-and-relative-units": "Absolute and Relative Units", - "pseudo-classes-and-elements": "Pseudo Classes and Elements", - "css-colors": "Colors", - "styling-forms": "Styling Forms", - "css-box-model": "The Box Model", + "basic-html": "HTML Básico", + "semantic-html": "HTML Semántico", + "html-forms-and-tables": "Formularios y Tablas", + "html-and-accessibility": "Accesibilidad", + "review-html": "Revisión de HTML", + "computer-basics": "Conceptos Básicos de Computadora", + "basic-css": "CSS Básico", + "design-for-developers": "Diseño", + "absolute-and-relative-units": "Unidades Absolutas y Relativas", + "pseudo-classes-and-elements": "Pseudo Clases y Elementos", + "css-colors": "Colores", + "styling-forms": "Estilizar Formularios", + "css-box-model": "El Modelo de Caja", "css-flexbox": "Flexbox", - "css-typography": "Typography", - "css-and-accessibility": "Accessibility", - "attribute-selectors": "Attribute Selectors", - "css-positioning": "Positioning", - "responsive-design": "Responsive Design", + "css-typography": "Tipografía", + "css-and-accessibility": "Accesibilidad", + "attribute-selectors": "Selectores de Atributos", + "css-positioning": "Posicionamiento", + "responsive-design": "Diseño Responsivo", "css-variables": "Variables", - "css-grid": "Grid", - "css-animations": "Animations", - "review-css": "CSS Review", - "lab-survey-form": "Build a Survey Form", - "lab-page-of-playing-cards": "Build a Page of Playing Cards", - "lab-book-inventory-app": "Build a Book Inventory App", - "lab-technical-documentation-page": "Build a Technical Documentation Page", - "lab-product-landing-page": "Build a Product Landing Page", - "responsive-web-design-certification-exam": "Responsive Web Design Certification Exam" + "css-grid": "Cuadrícula", + "css-animations": "Animaciones", + "review-css": "Revisión de CSS", + "lab-survey-form": "Crea un Formulario de Encuesta", + "lab-page-of-playing-cards": "Construye una Página de Baraja de Cartas", + "lab-book-inventory-app": "Construir una Aplicación de Inventario de Libros", + "lab-technical-documentation-page": "Construir una Página de Documentación Técnica", + "lab-product-landing-page": "Cree una Página de Destino de Producto", + "responsive-web-design-certification-exam": "Examen de Certificación en Diseño Web Adaptativo" }, "blocks": { "workshop-curriculum-outline": { - "title": "Build a Curriculum Outline", + "title": "Construir un Esquema Curricular", "intro": [ - "Welcome to freeCodeCamp!", - "This workshop will serve as your introduction to HTML and coding in general. You will learn about headings and paragraph elements." + "¡Bienvenido a freeCodeCamp!", + "Este taller servirá como tu introducción a HTML y la codificación en general. Aprenderás sobre los elementos de títulos y párrafos." ] }, "lab-debug-camperbots-profile-page": { - "title": "Debug Camperbot's Profile Page", + "title": "Depurar la Página de Perfil de Camperbot", "intro": [ - "Camperbot is learning how to code too and needs some help with their HTML.", - "In this lab, you will help Camperbot find and fix the errors in their code." + "Camperbot también está aprendiendo a programar y necesita ayuda con su HTML.", + "En este laboratorio, ayudarás a Camperbot a encontrar y corregir los errores en su código." ] }, "lecture-understanding-html-attributes": { - "title": "Understanding HTML Attributes", + "title": "Entendiendo los Atributos HTML", "intro": [ - "In these lectures, you will learn more about HTML (HyperText Markup Language), a markup language for creating web pages.", - "You will learn about HTML's role on the web, and what HTML attributes are." + "En estas conferencias, aprenderás más sobre HTML (HyperText Markup Language), un lenguaje de marcado para crear páginas web.", + "Aprenderás sobre el papel de HTML en la web y qué son los atributos de HTML." ] }, "lab-debug-pet-adoption-page": { - "title": "Debug a Pet Adoption Page", + "title": "Depurar una Página de Adopción de Mascotas", "intro": [ - "In this lab, you will need to find and fix the errors in this pet adoption page." + "En este laboratorio, necesitarás encontrar y corregir los errores en esta página de adopción de mascotas." ] }, "lecture-understanding-the-html-boilerplate": { - "title": "Understanding the HTML Boilerplate", + "title": "Entendiendo el Código Básico de HTML", "intro": [ - "In these lectures, you will learn about the HTML boilerplate which is a ready-made template for your webpages.", - "You will learn how to work with the link element, meta element and more." + "En estas conferencias, aprenderás sobre el código HTML básico que es una plantilla prefabricada para tus páginas web.", + "Aprenderás cómo trabajar con el elemento link, el elemento meta y más." ] }, "workshop-cat-photo-app": { - "title": "Build a Cat Photo App", + "title": "Crear una Aplicación de Fotos de Gatos", "intro": [ - "HTML stands for HyperText Markup Language and it represents the content and structure of a web page.", - "In this workshop, you will learn how to work with basic HTML elements such as headings, paragraphs, images, links, and lists." + "HTML significa lenguaje de marcado de hipertexto y representa el contenido y la estructura de una página web.", + "En este taller, aprenderás cómo trabajar con elementos básicos de HTML, tales como títulos, párrafos, imágenes, enlaces y listas." ] }, "lab-recipe-page": { - "title": "Build a Recipe Page", + "title": "Construir una Página de Recetas", "intro": [ - "In this lab, you'll review HTML basics by creating a web page of your favorite recipe. You'll create an HTML boilerplate and work with headings, lists, images, and more." + "En este laboratorio, revisarás los conceptos básicos de HTML creando una página web de tu receta favorita. Crearás un código HTML estándar y trabajarás con títulos, listas, imágenes y más." ] }, "lecture-html-fundamentals": { - "title": "HTML Fundamentals", + "title": "Fundamentos de HTML", "intro": [ - "In these lectures, you will learn about HTML fundamentals like the div element, the id and class attributes, the HTML boilerplate, HTML entities, and more." + "En estas conferencias, aprenderás sobre los fundamentos de HTML como el elemento div, los atributos id y class, el código HTML, las entidades HTML y más." ] }, "workshop-bookstore-page": { - "title": "Build a Bookstore Page", + "title": "Construir una Página de Librería.", "intro": [ - "In this workshop, you will practice working with classes, ids and the div element by building a bookstore page." + "En este taller, practicarás trabajando con clases, identificadores y el elemento div mediante la construcción de una página de librería." ] }, "lecture-understanding-how-html-affects-seo": { - "title": "Understanding How HTML Affects SEO", + "title": "Entender cómo HTML Afecta a SEO", "intro": [ - "In these lectures, you will learn how your HTML code impacts search engine optimization." + "En estas conferencias, aprenderás cómo tu código HTML impacta en la optimización para motores de búsqueda." ] }, "lab-travel-agency-page": { - "title": "Build a Travel Agency Page", + "title": "Crear una Página de Agencia de Viajes", "intro": [ - "In this lab, you'll review working with HTML fundamentals by creating a web page for a travel agency. You'll work with images, the figure element, the figcaption element, the anchor element, and more." + "En este laboratorio, revisarás trabajando con los fundamentos de HTML creando una página web para una agencia de viajes. Trabajarás con imágenes, el elemento figure, el elemento figcaption, el elemento ancla, y más." ] }, "lecture-working-with-audio-and-video-elements": { - "title": "Working with Audio and Video Elements", + "title": "Trabajar con Elementos de Audio y Video", "intro": [ - "In these lectures, you will learn how to work with the audio and video elements." + "En estas conferencias, aprenderás a trabajar con los elementos audio y video." ] }, "lab-html-audio-and-video-player": { - "title": "Build an HTML Audio and Video Player", + "title": "Construir un Reproductor de Audio y Video HTML", "intro": [ - "In this lab, you will build an HTML audio and video player using the video and audio elements with controls and source attributes." + "En este laboratorio, construirás un reproductor de audio y video HTML usando los elementos video y audio con controles y atributos de origen." ] }, "lecture-working-with-images-and-svgs": { - "title": "Working with Images and SVGs", + "title": "Trabajando con Imágenes y SVGs", "intro": [ - "In these lectures, you will learn how to work with SVGs and learn about techniques for optimizing your images." + "En estas lecciones, aprenderás cómo trabajar con SVGs y sobre técnicas para optimizar tus imágenes." ] }, "workshop-build-a-heart-icon": { - "title": "Build a Heart Icon", + "title": "Construir un Ícono de Corazón", "intro": [ - "In this workshop, you will practice working with SVGs by building a heart icon" + "En este taller, practicarás trabajando con SVGs construyendo un ícono de corazón." ] }, "lecture-working-with-media": { - "title": "Working with the iframe Element", + "title": "Trabajando con el Elemento iframe", "intro": [ - "In these lectures, you will learn how to work with the iframe element which is used to embed an external site on your web page." + "En estas lecciones, aprenderás cómo trabajar con el elemento iframe, el cual se utiliza para incrustar un sitio externo en tu página web." ] }, "workshop-build-a-video-display-using-iframe": { - "title": "Build a Video Display Using iframe", + "title": "Construir una Pantalla de Video Usando iframe", "intro": [ - "In this workshop, you'll learn how to work with the iframe element by building a video display." + "En este taller, aprenderás a trabajar con el elemento iframe construyendo una pantalla de video." ] }, "lab-video-compilation-page": { - "title": "Build a Video Compilation Page", + "title": "Construir una Página de Compilación de Video", "intro": [ - "In this lab, you'll create a video compilation web page. You'll practice working with the iframe element." + "En este laboratorio, crearás una página web de compilación de videos. Practicarás trabajando con el elemento iframe." ] }, "lecture-working-with-links": { - "title": "Working with Links", + "title": "Trabajando con Enlaces", "intro": [ - "In these lectures, you will learn about links, the target attribute, different link states, absolute, and relative paths, and more." + "En estas lecciones, aprenderás sobre los enlaces, el atributo target, diferentes estados de enlace, rutas absolutas y relativas, y más." ] }, "review-basic-html": { - "title": "Basic HTML Review", + "title": "Revisión Básica de HTML", "intro": [ - "Before you are quizzed on the HTML knowledge you have gained so far, you first need to review the concepts.", - "Open up this page to review the HTML boilerplate, audio and video elements, the different target attribute values and more." + "Antes de que te evaluen sobre el conocimiento de HTML que has adquirido hasta ahora, primero debes repasar los conceptos.", + "Abre esta página para revisar el código básico de HTML, los elementos audio y video, los diferentes valores del atributo target y más." ] }, "quiz-basic-html": { - "title": "Basic HTML Quiz", + "title": "Cuestionario de HTML Básico", "intro": [ - "The following quiz will test your knowledge of the basic HTML concepts you have learned so far.", - "If you're getting ready for the exam, there are several quiz sets available for practice. After completing a quiz, you can revisit this page to access a new set of questions." + "El siguiente cuestionario pondrá a prueba tus conocimientos de los conceptos básicos de HTML que has aprendido hasta ahora.", + "Si estás preparándote para el examen, hay varios conjuntos de preguntas disponibles para práctica. Después de completar un cuestionario, puedes volver a revisar esta página para acceder a un nuevo conjunto de preguntas." ] }, "lecture-importance-of-semantic-html": { - "title": "Importance of Semantic HTML", + "title": "Importancia del HTML Semántico", "intro": [ - "In these lectures, you will learn about semantic HTML and why you should care about it, semantic elements, how semantic HTML differs from presentational HTML, and more." + "En estas lecciones, aprenderás sobre el HTML semántico y por qué debería ser importante, sobre los elementos semánticos, en qué se diferencia del HTML de presentación, y más." ] }, "lecture-understanding-nuanced-semantic-elements": { - "title": "Understanding Nuanced Semantic Elements", + "title": "Comprender Elementos Semánticos Matizados", "intro": [ - "In these lectures, you will learn when you should use certain semantic elements like the em element over the i element, description lists, and more." + "En estas lecciones, aprenderás cuándo deberías usar ciertos elementos semánticos como el elemento em sobre el elemento i, las listas de descripción, y más." ] }, "workshop-major-browsers-list": { - "title": "Build a List of Major Web Browsers", + "title": "Construir una Lista de Navegadores Web Principales.", "intro": [ - "In this workshop, you will build a description list and work with the dl, dt, and dd elements." + "En este taller, construirás una lista de descripciones y trabajarás con los elementos dl, dt y dd." ] }, "lecture-working-with-text-and-time-semantic-elements": { - "title": "Working with Text and Time Semantic Elements ", + "title": "Trabajando con Elementos Semánticos de Texto y Tiempo", "intro": [ - "In this lecture, you will learn about the importance of semantics in conveying meaning for text and time-related content including the time, blockquote elements and more." + "En esta lección, aprenderás sobre la importancia de la semántica en la transmisión de significado para contenido relacionado con texto y tiempo, incluyendo los elementos time, blockquote y más." ] }, "workshop-quincys-job-tips": { - "title": "Build Quincy's Job Tips Page", + "title": "Crea la página de consejos de empleo de Quincy.", "intro": [ - "In this workshop, you will practice working with semantic HTML by using the q, blockquote and cite elements." + "En este taller, practicarás trabajando con HTML semántico utilizando los elementos q, blockquote y cite." ] }, "lecture-working-with-specialized-semantic-elements": { - "title": "Working with Specialized Semantic Elements", + "title": "Trabajando con Elementos Semánticos Especializados", "intro": [ - "In this lecture, you will learn about specialized semantic elements like u, s, code elements and more." + "En esta lección, aprenderás sobre elementos semánticos especializados como los elementos u, s, code, y más." ] }, "workshop-blog-page": { - "title": "Build a Cat Blog Page", + "title": "Construir una Página de Blog de Gatos", "intro": [ - "In this workshop, you will build an HTML only blog page using semantic elements including the main, nav, article and footer elements." + "En este taller, construirás una página de blog utilizando solo HTML con elementos semánticos como los elementos main, nav, article y footer." ] }, "lab-event-hub": { - "title": "Build an Event Hub", + "title": "Construir un Centro de Eventos", "intro": [ - "In this lab, you'll build an event hub and review semantic elements like header, nav, article, and more." + "En este laboratorio, construirás un centro de eventos y revisarás elementos semánticos como header, nav, article, y más." ] }, "review-semantic-html": { - "title": "Semantic HTML Review", + "title": "Revisión de HTML Semántico", "intro": [ - "Before you are quizzed on semantic HTML, you first need to review the concepts.", - "Open up this page to review the em, strong, blockquote, address and more semantic HTML elements." + "Antes de que te evaluen sobre el HTML semántico, primero debes repasar los conceptos.", + "Abre esta página para revisar el em, strong, blockquote, address y más elementos de HTML semántico." ] }, "quiz-semantic-html": { - "title": "Semantic HTML Quiz", + "title": "Cuestionario de HTML Semántico", "intro": [ - "The following quiz will test your knowledge on semantic HTML concepts you have learned so far.", - "If you're getting ready for the exam, there are several quiz sets available for practice. After completing a quiz, you can revisit this page to access a new set of questions." + "El siguiente cuestionario pondrá a prueba tu conocimiento sobre los conceptos de HTML semántico que has aprendido hasta ahora.", + "Si estás preparándote para el examen, hay varios conjuntos de preguntas disponibles para práctica. Después de completar un cuestionario, puedes volver a revisar esta página para acceder a un nuevo conjunto de preguntas." ] }, "lecture-working-with-forms": { - "title": "Working with Forms", + "title": "Trabajando con Formularios", "intro": [ - "In these lectures, you will learn about forms, the role of labels, inputs and buttons in creating forms, client-side form validation, and form states." + "En estas lecciones, aprenderás sobre formularios, el papel de las etiquetas, las entradas y los botones en la creación de formularios, la validación de formularios del lado del cliente, y los estados de los formularios." ] }, "workshop-hotel-feedback-form": { - "title": "Build a Hotel Feedback Form", + "title": "Construir un Formulario de Retroalimentación Hotelera", "intro": [ - "In this workshop, you will build a Hotel Feedback Form.", - "You will practice working with labels, inputs, fieldsets, legends, textareas and buttons." + "En este taller, construirás un formulario de retroalimentación hotelera.", + "Practicarás trabajando con etiquetas, entradas, grupos de campos, leyendas, áreas de texto y botones." ] }, "lab-survey-form": { - "title": "Build a Survey Form", + "title": "Construir un Formulario de Encuesta", "intro": [ - "In this lab, you'll review HTML forms by creating a survey form.", - "You'll practice working with the label element, the different input elements, the required attribute, and more. " + "En este laboratorio, revisarás formularios HTML al crear un formulario de encuesta.", + "Practicarás trabajando con el elemento label, los diferentes elementos input, el atributo required y más." ] }, "lecture-working-with-tables": { - "title": "Working with Tables", + "title": "Trabajando con Tablas", "intro": [ - "In these lectures, you will learn about HTML tables, how to create them, and when to use them." + "En estas lecciones, aprenderás sobre tablas HTML, cómo crearlas y cuándo usarlas." ] }, "workshop-final-exams-table": { - "title": "Build a Final Exams Table", + "title": "Construir una Mesa de Exámenes Finales", "intro": [ - "In this workshop, you will practice working with HTML tables by building a table of final exams." + "En este taller, practicarás trabajando con tablas HTML construyendo una tabla de exámenes finales." ] }, "lab-book-catalog-table": { - "title": "Build a Book Catalog Table", + "title": "Construir una Tabla de Catálogo de Libros", "intro": [ - "In this lab, you'll review HTML tables by building a book information table.", - "You'll practice the different table components like the thead, tbody, th, tr, and td elements." + "En este laboratorio, revisarás tablas HTML construyendo una tabla de información de libros.", + "Practicarás los diferentes componentes de la tabla, como los elementos thead, tbody, th, tr y td." ] }, "lecture-working-with-html-tools": { - "title": "Working with HTML Tools", + "title": "Trabajando con Herramientas HTML", "intro": [ - "In these lectures, you will learn about HTML tools and how they let you write better code. These tools include HTML validators, DOM Inspector, and the browser developer tools." + "En estas lecciones, aprenderás sobre herramientas HTML y cómo te permiten escribir mejor código. Estas herramientas incluyen validadores HTML, el Inspector del DOM y las herramientas para desarrolladores del navegador." ] }, "review-html-tables-and-forms": { - "title": "HTML Tables and Forms Review", + "title": "Revisión de Tablas y Formularios HTML", "intro": [ - "Before you are quizzed on HTML forms, tables and tools, you first need to review the concepts.", - "Open up this page to review the table, input, and button elements as well as commonly used tools like the HTML validator and more." + "Antes de que te evaluen sobre formularios HTML, tablas y herramientas, primero debes repasar los conceptos.", + "Abre esta página para revisar los elementos table, input y button, así como herramientas de uso común como el validador HTML y más." ] }, "quiz-html-tables-and-forms": { - "title": "HTML Tables and Forms Quiz", + "title": "Cuestionario de Tablas y Formularios HTML", "intro": [ - "The following quiz will test your knowledge of HTML tables, forms and commonly used HTML tools.", - "If you're getting ready for the exam, there are several quiz sets available for practice. After completing a quiz, you can revisit this page to access a new set of questions." + "El siguiente cuestionario pondrá a prueba tus conocimientos sobre tablas HTML, formularios y herramientas HTML de uso común.", + "Si estás preparándote para el examen, hay varios conjuntos de preguntas disponibles para práctica. Después de completar un cuestionario, puedes volver a revisar esta página para acceder a un nuevo conjunto de preguntas." ] }, "lecture-importance-of-accessibility-and-good-html-structure": { - "title": "Importance of Accessibility and Good HTML Structure", + "title": "Importancia de la Accesibilidad y Buena Estructura HTML", "intro": [ - "In these lectures, you will learn about accessibility and its importance, assistive tools for people with disabilities, HTML attributes that let you create inclusive websites, accessibility best practices, and much more." + "En estas lecciones, aprenderás sobre la accesibilidad y su importancia, herramientas asistivas para personas con discapacidades, atributos HTML que te permiten crear sitios web inclusivos, mejores prácticas de accesibilidad y mucho más." ] }, "workshop-debug-coding-journey-blog-page": { - "title": "Debug a Coding Journey Blog Page", + "title": "Depurar una Página del Blog de Viajes de Codificación", "intro": [ - "In this workshop, you will debug and fix accessibility errors in a coding blog page." + "En este taller, depurarás y corregirás errores de accesibilidad en una página de blog de codificación." ] }, "lecture-accessible-tables-forms": { - "title": "Working with Accessible Tables and Forms", + "title": "Trabajando con Tablas y Formularios Accesibles", "intro": [ - "In these lectures, you will learn about how to create accessible tables and forms." + "En estas lecciones, aprenderás cómo crear tablas y formularios accesibles." ] }, "workshop-tech-conference-schedule": { - "title": "Build a Tech Conference Schedule Table", + "title": "Construir una Tabla de Horarios de Conferencias Tecnológicas", "intro": [ - "In this workshop, you will build an accessible tech conference schedule table." + "En este taller, construirás una tabla de horarios de conferencias tecnológicas accesible." ] }, "lecture-introduction-to-aria": { - "title": "Introduction to ARIA", + "title": "Introducción a ARIA", "intro": [ - "In these lectures, you will learn about working with ARIA roles." + "En estas lecciones, aprenderás cómo trabajar con roles ARIA." ] }, "workshop-accessible-audio-controller": { - "title": "Build an Accessible Audio Controller", + "title": "Cree un control de audio accesible.", "intro": [ - "In this workshop, you will practice accessible HTML by building an audio controller that uses the aria-labelledby attribute." + "En este taller, practicarás HTML accesible construyendo un control de audio que utilice el atributo aria-labelledby." ] }, "lecture-accessible-media-elements": { - "title": "Working with Accessible Media Elements", + "title": "Trabajando con Elementos de Medios Accesibles", "intro": [ - "In these lectures, you will learn about how to create accessible links, audio and video content." + "En estas lecciones, aprenderás cómo crear enlaces accesibles, contenidos de audio y video." ] }, "lab-checkout-page": { - "title": "Build a Checkout Page", + "title": "Construir una Página de Pago", "intro": [ - "In this lab, you'll create an accessible checkout page.", - "You'll practice concepts like alt attributes and ARIA roles." + "En este laboratorio, crearás una página de pago accesible.", + "Practicarás conceptos como atributos alt y roles ARIA." ] }, "lab-movie-review-page": { - "title": "Design a Movie Review Page", + "title": "Diseñar una Página de Reseña de Películas", "intro": [ - "In this lab, you'll create a movie review page.", - "You'll practice concepts like semantic HTML, alt attributes, accessible lists, and hiding decorative content from screen readers using aria-hidden." + "En este laboratorio, crearás una página de reseña de películas.", + "Practicarás conceptos como HTML semántico, atributos alt, listas accesibles, y ocultar contenido decorativo de los lectores de pantalla usando aria-hidden." ] }, "lab-multimedia-player": { - "title": "Build a Multimedia Player", + "title": "Construir un Reproductor Multimedia", "intro": [ - "In this lab, you'll build a multimedia player.", - "You will practice working with the audio and video elements, the controls attribute, and the aria-label attribute." + "En este laboratorio, construirás un reproductor multimedia.", + "Practicarás trabajando con los elementos audio y video, el atributo controls, y el atributo aria-label." ] }, "review-html-accessibility": { - "title": "HTML Accessibility Review", + "title": "Revisión de Accesibilidad HTML", "intro": [ - "Before you are quizzed on HTML and accessibility, you first need to review the concepts.", - "Open up this page to review concepts including the aria-hidden, aria-describedby, tabindex attributes and more." + "Antes de que te evaluen sobre HTML y accesibilidad, primero debes repasar los conceptos.", + "Abre esta página para revisar conceptos incluidos aria-hidden, aria-describedby, tabindex y más." ] }, "quiz-html-accessibility": { - "title": "HTML Accessibility Quiz", + "title": "Cuestionario de Accesibilidad HTML", "intro": [ - "The following quiz will test your knowledge on the accessibility concepts you have learned so far.", - "If you're getting ready for the exam, there are several quiz sets available for practice. After completing a quiz, you can revisit this page to access a new set of questions." + "El siguiente cuestionario pondrá a prueba tu conocimiento sobre los conceptos de accesibilidad que has aprendido hasta ahora.", + "Si estás preparándote para el examen, hay varios conjuntos de preguntas disponibles para práctica. Después de completar un cuestionario, puedes volver a revisar esta página para acceder a un nuevo conjunto de preguntas." ] }, "review-html": { - "title": "HTML Review", + "title": "Revisión de HTML", "intro": [ - "Before you take the HTML prep exam, you first need to review the concepts taught in the previous modules.", - "Open up this page to review concepts around the basics of HTML elements, semantic HTML, tables, forms and accessibility." + "Antes de que tomes el examen de preparación de HTML, primero debes revisar los conceptos enseñados en los módulos previos.", + "Abre esta página para revisar conceptos relacionados a los básicos de los elementos HTML, HTML semántico, tablas, formularios y accesibilidad." ] }, "qpra": { @@ -8163,968 +8223,991 @@ "intro": [] }, "lecture-understanding-computer-internet-and-tooling-basics": { - "title": "Understanding Computer, Internet, and Tooling Basics", + "title": "Comprendiendo los Conceptos Básicos de Computadoras, Internet y Herramientas", "intro": [ - "In these lectures, you will learn about the computer, its different parts, internet service providers (ISPs), and the tools professional developers use." + "En estas lecciones, aprenderás sobre la computadora, sus diferentes partes, los proveedores de servicios de Internet (ISPs), y las herramientas que utilizan los desarrolladores profesionales." ] }, "lecture-working-with-file-systems": { - "title": "Working with File Systems", + "title": "Trabajando con Sistemas de Archivos", "intro": [ - "In these lectures, you will learn how to work with file and folder systems on your computers. You will learn how to create, move, and delete files and folders, the best practices for naming and organizing files and folders, and more." + "En estas lecciones, aprenderás cómo trabajar con sistemas de archivos y carpetas en tus computadoras. Aprenderás a crear, mover y borrar archivos y carpetas, las mejores prácticas para nombrar y organizar archivos y carpetas, y más." ] }, "lecture-browsing-the-web-effectively": { - "title": "Browsing the Web Effectively", + "title": "Navegar por la Web de Forma Efectiva", "intro": [ - "In these lectures, you will learn about what websites, search engine, and web browsers are, the different browsers available, and how to get the best out of a search engine." + "En estas lecciones, aprenderás qué son los sitios web, los motores de búsqueda, y los navegadores web, los diferentes navegadores disponibles, y cómo sacar el mejor provecho de un motor de búsqueda." ] }, "review-computer-basics": { - "title": "Computer Basics Review", + "title": "Revisión de Conceptos Básicos de Computadora", "intro": [ - "Before you are quizzed on basic computer and internet concepts, you first need to review.", - "Open up this page to review concepts like RAM, Internet service providers, common web browsers, search engines and more." + "Antes de que te evaluen sobre conceptos básicos de computadoras e Internet, primero debes repasar.", + "Abre esta página para revisar conceptos como RAM, proveedores de servicios de Internet, navegadores web comunes, motores de búsqueda y más." ] }, "quiz-computer-basics": { - "title": "Computer Basics Quiz", + "title": "Cuestionario de Conceptos Básicos de Computadora", "intro": [ - "Test what you've learned in this quiz of basic computer knowledge." + "Pon a prueba lo que has aprendido en este cuestionario de conocimientos básicos de computación." ] }, "lecture-what-is-css": { - "title": "What Is CSS?", + "title": "¿Qué es CSS?", "intro": [ - "The following lectures are all about CSS. You will learn what CSS is and its role on the web, a CSS rule and its anatomy, the three ways to write CSS and when to use each, inline and block elements, and many more." + "Las siguientes lecciones tratan sobre CSS. Aprenderás qué es CSS y cuál es su rol en la web, una regla de CSS y su anatomía, las tres maneras de escribir CSS y cuándo utilizar cada una, elementos en línea y en bloque, y mucho más." ] }, "workshop-cafe-menu": { - "title": "Design a Cafe Menu", + "title": "Diseñar un Menú de Cafetería", "intro": [ - "CSS tells the browser how to display your webpage. You can use CSS to set the color, font, size, and other aspects of HTML elements.", - "In this workshop, you'll learn CSS by designing a menu page for a cafe webpage." + "CSS le dice al navegador cómo mostrar tu página web. Puedes usar CSS para establecer el color, fuente, tamaño, y otros aspectos de los elementos HTML.", + "En este taller, aprenderás CSS diseñando una página para un menú de cafetería." ] }, "lab-business-card": { - "title": "Design a Business Card", + "title": "Diseñar una Tarjeta de Presentación", "intro": [ - "In this lab, you'll create a business card and style it using CSS.", - "You'll practice style properties like color, font-size, text-align, and more." + "En este laboratorio, crearás una tarjeta de presentación y le darás estilo usando CSS.", + "Practicarás propiedades de estilo como color, font-size, text-align, y más." ] }, "lecture-css-specificity-the-cascade-algorithm-and-inheritance": { - "title": "CSS Specificity, the Cascade Algorithm, and Inheritance", + "title": "Especificidad de CSS, el Algoritmo en Cascada, y Herencia", "intro": [ - "In these lectures, you will learn about CSS specificity, the common selectors and their specificities, the cascade algorithm, inheritance, and more." + "En estas lecciones, aprenderás sobre la especificidad de CSS, los selectores comunes y sus especificidades, el algoritmo en cascada, la herencia, y más." ] }, "review-basic-css": { - "title": "CSS Fundamentals Review", + "title": "Revisión de fundamentos de CSS", "intro": [ - "Before you are quizzed on basic CSS concepts, you first need to review.", - "Open up this page to review concepts including margin, padding, CSS combinators, CSS specificity and more." + "Antes de que te evaluen sobre conceptos básicos de CSS, primero debes repasar.", + "Abre esta página para revisar conceptos incluidos margin, padding, combinadores CSS, especificidad CSS y más." ] }, "quiz-basic-css": { - "title": "CSS Fundamentals Quiz", + "title": "Cuestionario sobre fundamentos de CSS", "intro": [ - "Test what you've learned in this quiz of basic CSS knowledge." + "Pon a prueba lo que has aprendido en este cuestionario de conocimientos básicos de CSS." ] }, "lecture-styling-lists-and-links": { - "title": "Styling Lists and Links", + "title": "Estilizando Listas y Enlaces", "intro": [ - "In these lectures, you will learn the properties you need to know to effectively style lists and links, including link states like link, visited, hover, and active." + "En estas lecciones, aprenderás las propiedades que necesitas saber para estilizar listas y enlaces de manera efectiva, incluyendo estados de enlace como link, visited, hover, y active." ] }, "lab-stylized-to-do-list": { - "title": "Build a Stylized To-Do List", + "title": "Construir una Lista de Tareas Estilizada", "intro": [ - "In this lab, you'll build a To-Do list and apply different styles to the links", - "You'll practice style properties like text-decoration, list-style-type and how to change styles on hover or click." + "En este laboratorio, construirás una lista de tareas y aplicarás diferentes estilos a los enlaces.", + "Practicarás propiedades de estilo como text-decoration, list-style-type y cómo cambiar estilos al pasar el mouse o hacer clic." ] }, "lecture-working-with-backgrounds-and-borders": { - "title": "Working with Backgrounds and Borders", + "title": "Trabajando con Fondos y Bordes", "intro": [ - "In these lectures, you will learn about the properties and values you need to know to style backgrounds and borders of elements, alongside the accessibility considerations for backgrounds." + "En estas lecciones, aprenderás sobre las propiedades y los valores que necesitas saber para estilizar fondos y bordes de elementos, junto con las consideraciones de accesibilidad para los fondos." ] }, "lab-blog-post-card": { - "title": "Design a Blog Post Card", + "title": "Diseñar una Tarjeta de Publicación de Blog", "intro": [ - "In this lab, you'll design a blog post card using HTML and CSS", - "You'll practice concepts like background-color, border-radius, margins, paddings, and more." + "En este laboratorio, diseñarás una tarjeta de publicación de blog utilizando HTML y CSS.", + "Practicarás conceptos como background-color, border-radius, márgenes, rellenos y más." ] }, "review-css-backgrounds-and-borders": { - "title": "Lists, Links, CSS Background and Borders Review", + "title": "Revisión de Fondos de CSS, Enlaces y Bordes", "intro": [ - "Before you are quizzed on CSS backgrounds and borders, you first need to review.", - "Open up this page to review concepts including the background-image property, border property and more." + "Antes de que te pregunten sobre fondos y bordes de CSS, primero debes repasar.", + "Abra esta página para revisar conceptos que incluyen la propiedad background-image, la propiedad border y más." ] }, "quiz-css-backgrounds-and-borders": { - "title": "CSS Backgrounds and Borders Quiz", + "title": "Cuestionario de Fondos y Bordes de CSS", "intro": [ - "Test what you've learned in this quiz of backgrounds and borders in CSS." + "Pon a prueba lo que has aprendido en este cuestionario sobre fondos y bordes en CSS." ] }, "lecture-user-interface-design-fundamentals": { - "title": "User Interface Design Fundamentals", + "title": "Fundamentos del Diseño de Interfaces de Usuario", "intro": [ - "In these lectures, you will learn about the fundamentals of user interface (UI) design. You will learn about the terms you need to know to communicate with designers, visual hierarchy, scaling, alignment, whitespace, and much more." + "En estas lecciones, aprenderás sobre los fundamentos del diseño de interfaces de usuario (UI). Aprenderás los términos que necesitas conocer para comunicarte con los diseñadores, la jerarquía visual, el escalado, la alineación, los espacios en blanco y mucho más." ] }, "lecture-user-centered-design": { - "title": "User-Centered Design", + "title": "Diseño Centrado en el Usuario", "intro": [ - "In these lectures, you will learn about best practices for designing user-facing features like dark mode, breadcrumbs, modal dialogs, and much more. You will also learn how to conduct user research, user requirements and testing." + "En estas lecciones, aprenderás sobre las mejores prácticas para diseñar características orientadas al usuario como el modo oscuro, migas de pan, diálogos modales y mucho más. También aprenderás cómo realizar investigaciones de usuario, requisitos de usuario y pruebas." ] }, "lecture-common-design-tools": { - "title": "Common Design Tools", + "title": "Herramientas de Diseño Comunes", "intro": [ - "In these lectures, you will learn about the common design tools developers should know. You will also learn about design briefs and how developers work with them." + "En estas lecciones, aprenderás sobre las herramientas de diseño comunes que los desarrolladores deben conocer. También aprenderás sobre los briefings de diseño y cómo los desarrolladores trabajan con ellos." ] }, "review-design-fundamentals": { - "title": "Design Fundamentals Review", + "title": "Revisión de Fundamentos de Diseño", "intro": [ - "Before you are quizzed on the design fundamentals you have learned so far, you first need to review.", - "Open up this page to review concepts like user-centered design, scale, alignment, good visual hierarchy and more." + "Antes de que te pregunten sobre los fundamentos de diseño que has aprendido hasta ahora, primero debes repasar.", + "Abra esta página para revisar conceptos como el diseño centrado en el usuario, la escala, la alineación, una buena jerarquía visual y más." ] }, "quiz-design-fundamentals": { - "title": "Design Fundamentals Quiz", + "title": "Cuestionario de Fundamentos de Diseño", "intro": [ - "Test what you've learned in this quiz of UI design fundamentals." + "Pon a prueba lo que has aprendido en este cuestionario sobre los fundamentos del diseño de UI." ] }, "lecture-working-with-relative-and-absolute-units": { - "title": "Working with Relative and Absolute Units", + "title": "Trabajar con Unidades Relativas y Absolutas", "intro": [ - "In these lectures, you will learn about relative and absolute units, and how they both impact what you see in the browser." + "En estas lecciones, aprenderás sobre unidades relativas y absolutas, y cómo ambas impactan lo que ves en el navegador." ] }, "lab-event-flyer-page": { - "title": "Build an Event Flyer Page", + "title": "Crear una Página de Volante de Evento", "intro": [ - "In this lab, you'll create an event flyer page.", - "You will practice aligning elements using absolute and relative CSS." + "En este laboratorio, crearás una página de volante de evento.", + "Practicarás la alineación de elementos utilizando CSS absoluto y relativo." ] }, "review-css-relative-and-absolute-units": { - "title": "CSS Relative and Absolute Units Review", + "title": "Revisión de Unidades Relativas y Absolutas de CSS", "intro": [ - "Before you are quizzed on relative and absolute units, you first need to review.", - "Open up this page to review concepts like percentages, px, rem, em, and more." + "Antes de que te pregunten sobre unidades relativas y absolutas, primero debes repasar.", + "Abra esta página para revisar conceptos como porcentajes, px, rem, em y más." ] }, "quiz-css-relative-and-absolute-units": { - "title": "CSS Relative and Absolute Units Quiz", + "title": "Cuestionario de Unidades Relativas y Absolutas de CSS", "intro": [ - "Test what you've learned in this quiz of relative and absolute units in CSS." + "Pon a prueba lo que has aprendido en este cuestionario sobre unidades relativas y absolutas en CSS." ] }, "lecture-working-with-pseudo-classes-and-pseudo-elements-in-css": { - "title": "Working with Pseudo-Classes and Pseudo-Elements in CSS", + "title": "Trabajar con Pseudoclases y Pseudoelementos en CSS", "intro": [ - "In these lectures, you will learn about pseudo-classes and pseudo-elements, alongside their examples and how they work." + "En estas lecciones, aprenderás sobre pseudoclases y pseudoelementos, junto con sus ejemplos y cómo funcionan." ] }, "workshop-greeting-card": { - "title": "Design a Greeting Card", + "title": "Diseña una Tarjeta de Felicitación", "intro": [ - "In the previous lectures, you learned how to work with the different types of pseudo-classes.", - "In this workshop, you will have a chance to practice what you have learned by designing a greeting card." + "En las lecciones anteriores, aprendiste a trabajar con los diferentes tipos de pseudoclases.", + "En este taller, tendrás la oportunidad de practicar lo que has aprendido diseñando una tarjeta de felicitación." ] }, "workshop-parent-teacher-conference-form": { - "title": "Design a Parent Teacher Conference Form", + "title": "Diseñar un Formulario de Conferencia entre Padres y Profesores", "intro": [ - "In this workshop, you will practice how to style radio buttons with different types of pseudo-selectors by building a parent-teacher conference form.", - "You'll practice concepts including the ::before pseudo-element selector, the transform property, and more." + "En este taller, practicarás cómo estilizar los botones de radio con diferentes tipos de pseudo-selectores construyendo un formulario de conferencia entre padres y profesores.", + "Practicarás conceptos que incluyen el selector de pseudo-elemento ::before, la propiedad transform, y más." ] }, "lab-job-application-form": { - "title": "Build a Job Application Form", + "title": "Construye un Formulario de Solicitud de Empleo", "intro": [ - "In this lab you'll build a job application form and style it using pseudo-classes.", - "You'll practice concepts like :hover, :active, :focus, and more." + "En este laboratorio, construirás un formulario de solicitud de empleo y le darás estilo utilizando pseudoclases.", + "Practicarás conceptos como :hover, :active, :focus y más." ] }, "review-css-pseudo-classes": { - "title": "CSS Pseudo-classes Review", + "title": "Revisión de Pseudoclases de CSS", "intro": [ - "Before you're quizzed on CSS pseudo-classes and pseudo-elements, you should review what you've learned about them.", - "Open up this page to review concepts like the ::before and ::after pseudo-elements as well as the :hover, :active pseudo-classes and more." + "Antes de que te pregunten sobre las pseudoclases y pseudoelementos de CSS, debes repasar lo que has aprendido sobre ellos.", + "Abra esta página para revisar conceptos como los pseudoelementos ::before y ::after, así como las pseudoclases :hover, :active y más." ] }, "quiz-css-pseudo-classes": { - "title": "CSS Pseudo-classes Quiz", - "intro": ["Test your knowledge of CSS pseudo-classes with this quiz."] + "title": "Cuestionario de Pseudoclases de CSS", + "intro": [ + "Pon a prueba tus conocimientos sobre las pseudoclases CSS con este cuestionario." + ] }, "lecture-working-with-colors-in-css": { - "title": "Working with Colors in CSS", + "title": "Trabajar con Colores en CSS", "intro": [ - "In these lectures, you will learn about linear and radial gradients, the color theory, different kinds of colors like named, RGB, Hex, and HSL colors. You will learn how these colors work, and which to use in specific cases." + "En estas lecciones, aprenderás sobre gradientes lineales y radiales, la teoría del color, diferentes tipos de colores como los nombrados, RGB, Hex y HSL. Aprenderás cómo funcionan estos colores y cuáles usar en casos específicos." ] }, "workshop-colored-markers": { - "title": "Build a Set of Colored Markers", + "title": "Construir un Conjunto de Marcadores de Colores", "intro": [ - "In this workshop, you'll build a set of colored markers. You'll practice different ways to set color values and how to pair colors with each other." + "En este taller, crearás un conjunto de marcadores de colores. Practicarás diferentes formas de establecer valores de color y cómo emparejar colores entre sí." ] }, "lab-colored-boxes": { - "title": "Design a Set of Colored Boxes", + "title": "Diseñar un Conjunto de Cajas de Colores", "intro": [ - "In this lab, you'll create a color grid and practice adding background colors to the grid items using hex codes, RGB, and predefined color names." + "En este laboratorio, crearás una cuadrícula de color y practicarás agregando colores de fondo a los elementos de la cuadrícula usando códigos hexadecimales, RGB y nombres de colores predefinidos." ] }, "review-css-colors": { - "title": "CSS Colors Review", + "title": "Revisión de Colores CSS", "intro": [ - "Before you're quizzed on CSS colors, you should review what you've learned about them.", - "Open up this page to review concepts like the rgb() function, hsl() function, hex codes, and more." + "Antes de que te pregunten sobre los colores CSS, debes repasar lo que has aprendido sobre ellos.", + "Abra esta página para revisar conceptos como la función rgb(), la función hsl(), los códigos hexadecimales y más." ] }, "quiz-css-colors": { - "title": "CSS Colors Quiz", - "intro": ["Test your knowledge of CSS colors with this quiz."] + "title": "Cuestionario de Colores CSS", + "intro": [ + "Pon a prueba tus conocimientos sobre los colores CSS con este cuestionario." + ] }, "lecture-best-practices-for-styling-forms": { - "title": "Best Practices for Styling Forms", + "title": "Mejores Prácticas para Aplicar Estilos a Formularios", "intro": [ - "In these lectures, you will learn about the best practices for styling forms and issues you can encounter while styling special inputs like color and datetime-local." + "En estas lecciones, aprenderás sobre las mejores prácticas para diseñar formularios y los problemas que puedes encontrar al diseñar entradas especiales como color y datetime-local." ] }, "workshop-registration-form": { - "title": "Design a Registration Form", + "title": "Diseña un Formulario de Registro", "intro": [ - "In this workshop, you'll learn how to design HTML forms by designing a signup page. You'll learn how to control what types of data people can type into your form, and some new CSS tools for styling your page." + "En este taller, aprenderás a diseñar formularios HTML creando una página de registro. Aprenderás a controlar qué tipos de datos pueden ingresar las personas en tu formulario y algunas herramientas CSS nuevas para diseñar tu página." ] }, "lab-contact-form": { - "title": "Design a Contact Form", + "title": "Diseñar un Formulario de Contacto", "intro": [ - "In this lab, you'll design a contact form in HTML and style it using CSS." + "En este laboratorio, diseñarás un formulario de contacto en HTML y le darás estilo usando CSS." ] }, "workshop-game-settings-panel": { - "title": "Build a Game Settings Panel", + "title": "Construir un Panel de Configuración de Juego", "intro": [ - "In this workshop, you will practice styling checkboxes by building a game settings panel." + "En este taller, practicarás el estilo de las cajas de verificación mediante la construcción de un panel de configuración del juego." ] }, "lab-feature-selection": { - "title": "Design a Feature Selection Page", + "title": "Diseñar una Página de Selección de Características", "intro": [ - "In this lab, you'll build a feature selection page with custom-styled checkboxes.", - "You'll create feature cards with labels and checkboxes, then give custom styling to the checkboxes." + "En este laboratorio, construirás una página de selección de características con casillas de verificación con estilo personalizado.", + "Crearás tarjetas de características con etiquetas y casillas de verificación, luego darás estilo personalizado a las casillas de verificación." ] }, "review-styling-forms": { - "title": "Styling Forms Review", + "title": "Revisión de Estilos de Formularios", "intro": [ - "Before you're quizzed on styling forms, you should review what you've learned.", - "Open up this page to review how to style form inputs, working with appearance: none and more." + "Antes de que te pregunten sobre cómo diseñar formularios, debes repasar lo que has aprendido.", + "Abra esta página para revisar cómo diseñar entradas de formulario, trabajar con appearance: none y más." ] }, "quiz-styling-forms": { - "title": "Styling Forms Quiz", + "title": "Cuestionario de Estilo para Formularios", "intro": [ - "In this quiz, you will test your knowledge of how to style forms." + "En este cuestionario, pondrás a prueba tu conocimiento de cómo estilizar formularios." ] }, "lecture-working-with-css-transforms-overflow-and-filters": { - "title": "Working with CSS Transforms, Overflow, and Filters", + "title": "Trabajando con Transformaciones CSS, Overflow, y Filtros", "intro": [ - "In these lectures, you will learn about working with CSS transforms, overflow, and filters. You will also learn about the box model and how it works." + "En estas lecciones, aprenderás a trabajar con transformaciones, desbordamientos y filtros CSS. También aprenderás sobre el modelo de caja y cómo funciona." ] }, "workshop-rothko-painting": { - "title": "Design a Rothko Painting", + "title": "Diseña un Cuadro de Rothko", "intro": [ - "Every HTML element is its own box – with its own spacing and a border. This is called the Box Model.", - "In this workshop, you'll use CSS and the Box Model to create your own Rothko-style rectangular art pieces." + "Cada elemento HTML es su propio cuadro, con su propio espacio y borde. Esto se conoce como el modelo de cuadro.", + "En este taller, utilizarás CSS y el modelo de caja para crear tus propias piezas de arte rectangulares estilo Rothko." ] }, "lab-confidential-email-page": { - "title": "Build a Confidential Email Page", + "title": "Construye una Página de Correo Electrónico Confidencial", "intro": [ - "In this lab, you'll create a web page using HTML and mask the content using CSS properties." + "En este laboratorio, crearás una página web utilizando HTML y enmascararás el contenido mediante propiedades CSS." ] }, "review-css-layout-and-effects": { - "title": "CSS Layouts and Effects Review", + "title": "Revisión de Diseños y Efectos CSS", "intro": [ - "Before you are quizzed on CSS Layouts and Effects, you first need to review.", - "Open up this page to review concepts like the transform property, the box model, the overflow property and more." + "Antes de que te examinen sobre diseños y efectos CSS, primero debes repasar.", + "Abra esta página para revisar conceptos como la propiedad transform, el modelo de caja, la propiedad overflow y más." ] }, "quiz-css-layout-and-effects": { - "title": "CSS Layout and Effects Quiz", + "title": "Cuestionario sobre efectos y diseño CSS", "intro": [ - "In this quiz, you will test your knowledge of the box model, transforms, filters, and overflow in CSS." + "En este cuestionario, pondrás a prueba tus conocimientos sobre el modelo de caja, las transformaciones, los filtros y el desbordamiento en CSS." ] }, "lecture-working-with-css-flexbox": { - "title": "Working with CSS Flexbox", + "title": "Trabajar con CSS Flexbox", "intro": [ - "In these lectures, you will learn how CSS flexbox works, its properties, and when you should use it." + "En estas lecciones, aprenderás cómo funciona CSS flexbox, sus propiedades y cuándo deberías usarlo." ] }, "workshop-flexbox-photo-gallery": { - "title": "Build a Flexbox Photo Gallery", + "title": "Construir una Galería de Fotos Flexbox", + "intro": [ + "En este taller, utilizarás Flexbox para crear una página web de galería de fotos responsiva." + ] + }, + "lab-pricing-plans-layout": { + "title": "Diseñar una Página de Diseño de Planes de Precios", "intro": [ - "In this workshop, you'll use Flexbox to build a responsive photo gallery webpage." + "En este laboratorio, utilizarás flexbox para crear un diseño de nivel común de tres tarjetas.", + "Practicarás la alineación de elementos utilizando propiedades de flexbox como flex, flex-grow, order y más." ] }, "lab-page-of-playing-cards": { - "title": "Build a Page of Playing Cards", + "title": "Construir una Página de Naipes", "intro": [ - "In this lab, you'll use flexbox to create a webpage of playing cards.", - "You'll practice aligning elements using flexbox properties like flex-direction, justify-content, align-self, and more." + "En este laboratorio, utilizarás flexbox para crear una página web de naipes.", + "Practicarás la alineación de elementos usando propiedades de flexbox como flex-direction, justify-content, align-self y más." ] }, "review-css-flexbox": { - "title": "CSS Flexbox Review", + "title": "Revisión de CSS Flexbox", "intro": [ - "Before you're quizzed on CSS flexbox, you should review what you've learned.", - "Open up this page to review concepts like the flex-direction, justify-content, align-items, flex-wrap properties, and more." + "Antes de que te examinen sobre CSS flexbox, debes repasar lo que has aprendido.", + "Abra esta página para revisar conceptos como propiedades flex-direction, justify-content, align-items, flex-wrap y más." ] }, "quiz-css-flexbox": { - "title": "CSS Flexbox Quiz", - "intro": ["Test what you've learned on CSS flexbox with this quiz."] + "title": "Cuestionario sobre CSS Flexbox", + "intro": [ + "Pon a prueba lo que has aprendido sobre CSS flexbox con este cuestionario." + ] }, "lecture-working-with-css-fonts": { - "title": "Working with CSS Fonts", + "title": "Trabajar con Fuentes CSS", "intro": [ - "In these lectures, you will learn about typography and its best practices, fonts, and the text-shadow property." + "En estas lecciones, aprenderás sobre la tipografía y sus mejores prácticas, fuentes y la propiedad text-shadow." ] }, "workshop-nutritional-label": { - "title": "Build a Nutritional Label", + "title": "Construir una Etiqueta Nutricional", "intro": [ - "Typography is the art of styling your text to be easily readable and suit its purpose.", - "In this workshop, you'll use typography to build a nutrition label webpage. You'll practice how to style text, adjust line height, and position your text using CSS." + "La tipografía es el arte de diseñar un texto para que sea fácilmente legible y se adapte a su propósito.", + "En este taller, utilizarás la tipografía para crear una página web con etiquetas nutricionales. Practicarás cómo aplicar estilo al texto, ajustar la altura de las líneas y posicionar el texto con CSS." ] }, "lab-newspaper-article": { - "title": "Build a Newspaper Article", + "title": "Construir un Artículo de Periódico", "intro": [ - "In this lab, you'll build a newspaper article page using HTML and CSS.", - "You'll style the fonts using properties like font-family, font-size, font-weight, and more." + "En este laboratorio, crearás una página de artículo de periódico utilizando HTML y CSS.", + "Diseñarás las fuentes usando propiedades como font-family, font-size, font-weight y más." ] }, "review-css-typography": { - "title": "CSS Typography Review", + "title": "Revisión de Tipografía CSS", "intro": [ - "Before you're quizzed on the fundamentals of typography, you should review what you've learned.", - "Open up this page to review concepts like web safe fonts, the font-family property and more." + "Antes de que te pregunten sobre los fundamentos de la tipografía, debes repasar lo que has aprendido.", + "Abra esta página para revisar conceptos como fuentes web seguras, la propiedad font-family y más." ] }, "quiz-css-typography": { - "title": "CSS Typography Quiz", - "intro": ["Test your knowledge of typography with this quiz."] + "title": "Cuestionario de Tipografía CSS", + "intro": [ + "Pon a prueba tus conocimientos de tipografía con este cuestionario." + ] }, "lecture-best-practices-for-accessibility-and-css": { - "title": "Best Practices for Accessibility and CSS", + "title": "Mejores Prácticas para la Accesibilidad y CSS", "intro": [ - "In these lectures, you will learn about best practices for accessibility in CSS, and the tools for checking good color contrast on websites." + "En estas lecciones, aprenderás sobre las mejores prácticas de accesibilidad en CSS y las herramientas para verificar un buen contraste de color en los sitios web." ] }, "workshop-accessibility-quiz": { - "title": "Build a Quiz Webpage", + "title": "Crear una Página Web de Cuestionario", "intro": [ - "Accessibility is the process of making your webpages usable for everyone, including people with disabilities.", - "In this workshop, you'll build a quiz webpage. You'll learn accessibility tools such as keyboard shortcuts, ARIA attributes, and design best practices." + "La accesibilidad es el proceso de hacer que tus páginas web sean utilizables para todos, incluidas las personas con discapacidades.", + "En este taller, crearás una página web de cuestionario. Aprenderás herramientas de accesibilidad como atajos de teclado, los atributos ARIA y mejores prácticas de diseño." ] }, "lab-tribute-page": { - "title": "Build a Tribute Page", + "title": "Construir una Página de Homenaje", "intro": [ - "In this lab, you'll build a tribute page for a subject of your choosing, fictional or real." + "En este laboratorio, crearás una página de homenaje a un tema de tu elección, ficticio o real." ] }, "review-css-accessibility": { - "title": "CSS Accessibility Review", + "title": "Revisión de Accesibilidad CSS", "intro": [ - "Before you're quizzed on CSS and accessibility, you should review what you've learned.", - "Open up this page to review concepts like color contrast tools and accessibility best practices." + "Antes de que te pregunte sobre CSS y accesibilidad, debes repasar lo que has aprendido.", + "Abra esta página para revisar conceptos como herramientas de contraste de color y mejores prácticas de accesibilidad." ] }, "quiz-css-accessibility": { - "title": "CSS Accessibility Quiz", + "title": "Cuestionario de Accesibilidad CSS", "intro": [ - "In this quiz, you'll test what you've learned about making your webpages accessible with CSS." + "En este cuestionario, probarás lo que has aprendido sobre cómo hacer que tus páginas web sean accesibles con CSS." ] }, "lecture-understanding-how-to-work-with-floats-and-positioning-in-css": { - "title": "Understanding How to Work with Floats and Positioning in CSS", + "title": "Comprender Cómo Trabajar con Flotantes y Posicionamiento en CSS", "intro": [ - "In these lectures, you will learn how to use CSS positioning and floats. You will learn about absolute, relative, fixed, and sticky positioning. You will also use the z-index property." + "En estas lecciones, aprenderás a usar el posicionamiento CSS y los flotantes. Aprenderás sobre el posicionamiento absolute, relative, fixed y sticky. También usarás la propiedad z-index." ] }, "workshop-cat-painting": { - "title": "Build a Cat Painting", + "title": "Construye una Pintura de Gato", "intro": [ - "Mastering CSS positioning is essential for creating visually appealing and responsive web layouts.", - "In this workshop, you will build a cat painting. You'll learn about how to work with absolute positioning, the z-index property, and the transform property." + "Dominar el posicionamiento CSS es esencial para crear diseños web visualmente atractivos y responsivos.", + "En este taller, crearás una pintura de un gato. Aprenderás a trabajar con el posicionamiento absoluto, la propiedad z-index y la propiedad transform." ] }, "lab-house-painting": { - "title": "Build a House Painting", + "title": "Construir una Pintura de Casa", "intro": [ - "In this lab, you'll build a house painting using CSS.", - "You'll design individual elements of the house and position them using CSS properties like position, top, left, and more." + "En este laboratorio, construirás una pintura de casa usando CSS.", + "Diseñarás elementos individuales de la casa y los posicionarás usando propiedades CSS como position, top, left y más." ] }, "review-css-positioning": { - "title": "CSS Positioning Review", + "title": "Revisión del Posicionamiento en CSS", "intro": [ - "Before you're quizzed on the fundamentals of CSS positioning, you should review what you've learned.", - "Open up this page to review concepts like floats, relative positioning, absolute positioning and more." + "Antes de que te pregunten sobre los fundamentos del posicionamiento CSS, debes repasar lo que has aprendido.", + "Abre esta página para revisar conceptos como flotantes, posicionamiento relativo, posicionamiento absoluto y más." ] }, "quiz-css-positioning": { - "title": "CSS Positioning Quiz", - "intro": ["Test your knowledge of CSS positioning with this quiz."] + "title": "Cuestionario de Posicionamiento CSS", + "intro": [ + "Pon a prueba tus conocimientos sobre el posicionamiento CSS con este cuestionario." + ] }, "lecture-working-with-attribute-selectors": { - "title": "Working with Attribute Selectors", + "title": "Trabajar con los Selectores de Atributos", "intro": [ - "In these lectures, you will learn about attribute selectors and how to use them to target elements like links and lists." + "En estas conferencias, aprenderás sobre los selectores de atributos y cómo usarlos para dirigir elementos como enlaces y listas." ] }, "workshop-balance-sheet": { - "title": "Build a Balance Sheet", + "title": "Construir un Balance General", "intro": [ - "In this workshop, you'll build a balance sheet using pseudo selectors. You'll learn how to change the style of an element when you hover over it with your mouse, and trigger other events on your webpage." + "En este taller, construirás un balance general usando seudo selectores. Aprenderás cómo cambiar el estilo de un elemento cuando pasas el ratón sobre él y activar otros eventos en tu página web." ] }, "lab-book-inventory-app": { - "title": "Build a Book Inventory App", + "title": "Construir una Aplicación de Inventario de Libros", "intro": [ - "In this lab, you'll create a book inventory app.", - "You'll practice CSS attribute selectors like [attribute], [attribute=value], [attribute~=value], and more." + "En este laboratorio, crearás una aplicación de inventario de libros.", + "Practicarás los selectores de atributos CSS como [attribute], [attribute=value], [attribute~=value] y más." ] }, "review-css-attribute-selectors": { - "title": "CSS Attribute Selectors Review", + "title": "Revisión de los Selectores de Atributos CSS", "intro": [ - "Before you're quizzed on the fundamentals of CSS attribute selectors, you should review what you've learned about them.", - "Open up this page to review concepts like how to work with different attribute selectors that target links with the href and title attributes." + "Antes de que te pregunten sobre los fundamentos de los selectores de atributos CSS, debes repasar lo que has aprendido sobre ellos.", + "Abre esta página para revisar conceptos como trabajar con diferentes selectores de atributos que apuntan a enlaces con los atributos href y title." ] }, "quiz-css-attribute-selectors": { - "title": "CSS Attribute Selectors Quiz", + "title": "Cuestionario de Selectores de Atributos CSS", "intro": [ - "Test your knowledge of CSS attribute selectors with this quiz." + "Pon a prueba tus conocimientos sobre los selectores de atributos CSS con este cuestionario." ] }, "lecture-best-practices-for-responsive-web-design": { - "title": "Best Practices for Responsive Web Design", + "title": "Mejores Prácticas para el Diseño Web Responsivo", "intro": [ - "In these lectures, you will learn about the best practices for responsive web design, the roles concepts like grid, flexbox, media queries, and media breakpoints play in responsive design, and more." + "En estas conferencias, aprenderás sobre las mejores prácticas para el diseño web responsivo, el papel que juegan conceptos como cuadrícula, Flexbox, consultas de medios y puntos de ruptura de medios en el diseño responsivo, y más." ] }, "workshop-piano": { - "title": "Design a Piano", + "title": "Diseñar un Piano", "intro": [ - "Responsive Design tells your webpage how it should look on different-sized screens.", - "In this workshop, you'll use CSS and responsive design to code a piano. You'll also practice media queries and pseudo selectors." + "El Diseño Responsivo le dice a tu página web cómo debe verse en pantallas de diferentes tamaños.", + "En este taller, utilizarás CSS y diseño responsivo para codificar un piano. También practicarás consultas de medios y seudo selectores." ] }, "lab-technical-documentation-page": { - "title": "Build a Technical Documentation Page", + "title": "Construir una Página de Documentación Técnica", "intro": [ - "In this lab, you'll build a technical documentation page to serve as instruction or reference for a topic.", - "You'll also practice media queries to create a responsive design." + "En este laboratorio, construirás una página de documentación técnica para servir como instrucción o referencia para un tema.", + "También practicarás consultas de medios para crear un diseño responsivo." ] }, "review-responsive-web-design": { - "title": "Responsive Web Design Review", + "title": "Revisión del Diseño Web Responsivo", "intro": [ - "Before you're quizzed on the fundamentals of responsive design, you should review what you've learned.", - "Open up this page to review concepts like media queries, media breakpoints and mobile first approach design." + "Antes de que te pregunten sobre los fundamentos del diseño responsivo, debes repasar lo que has aprendido.", + "Abre esta página para revisar conceptos como consultas de medios, puntos de ruptura de medios y diseño con enfoque móvil primero." ] }, "quiz-responsive-web-design": { - "title": "Responsive Web Design Quiz", + "title": "Cuestionario sobre Diseño Web Responsivo", "intro": [ - "Test what you've learned about making your webpages responsive with this quiz." + "Pon a prueba lo que has aprendido sobre cómo hacer que tus páginas web sean responsivas con este cuestionario." ] }, "lecture-working-with-css-variables": { - "title": "Working with CSS Variables", + "title": "Trabajar con Variables CSS", "intro": [ - "In these lectures, you will learn how to define and use custom properties (also known as CSS variables). You will also learn about the @property rule and how it works." + "En estas conferencias, aprenderás a definir y usar propiedades personalizadas (también conocidas como variables CSS). También aprenderás sobre la regla @property y cómo funciona." ] }, "workshop-city-skyline": { - "title": "Build a City Skyline", + "title": "Construir un Horizonte de Ciudad", "intro": [ - "CSS variables help you organize your styles and reuse them.", - "In this workshop, you'll build a city skyline. You'll practice how to configure CSS variables so you can reuse them whenever you want." + "Las variables CSS te ayudan a organizar tus estilos y reutilizarlos.", + "En este taller, construirás un horizonte de ciudad. Practicarás cómo configurar variables CSS para poder reutilizarlas cuando quieras." ] }, "lab-availability-table": { - "title": "Build an Availability Table", + "title": "Construir una Tabla de Disponibilidad", "intro": [ - "For this lab, you'll create an availability table that shows the availability of people for a meeting.", - "You'll practice using CSS variables to store and reuse colors, fonts, and other styles." + "Para este laboratorio, crearás una tabla de disponibilidad que muestre la disponibilidad de las personas para una reunión.", + "Practicarás usando variables CSS para almacenar y reutilizar colores, fuentes y otros estilos." ] }, "review-css-variables": { - "title": "CSS Variables Review", + "title": "Revisión de Variables CSS", "intro": [ - "Before you're quizzed on the fundamentals of CSS variables, you should review what you've learned.", - "Open up this page to review how to work with CSS custom properties (CSS variables) and the @property rule." + "Antes de que te pregunten sobre los fundamentos de las variables CSS, debes repasar lo que has aprendido.", + "Abre esta página para revisar cómo trabajar con propiedades personalizadas CSS (variables CSS) y la regla @property." ] }, "quiz-css-variables": { - "title": "CSS Variables Quiz", - "intro": ["Test your knowledge of CSS variables with this quiz."] + "title": "Cuestionario sobre Variables CSS", + "intro": [ + "Pon a prueba tus conocimientos sobre las variables CSS con este cuestionario." + ] }, "lecture-working-with-css-grid": { - "title": "Working with CSS Grid", + "title": "Trabajar con CSS Grid", "intro": [ - "In these lectures, you will learn about CSS grid, its several properties and how to use them, and how CSS grid differs from flexbox." + "En estas conferencias, aprenderás sobre CSS grid, sus diversas propiedades y cómo usarlas, y en qué se diferencia CSS grid de Flexbox." ] }, "workshop-magazine": { - "title": "Build a Magazine", + "title": "Construir una Revista", "intro": [ - "CSS Grid gives you control over the rows and columns of your webpage design.", - "In this workshop, you'll build a magazine article. You'll practice how to use CSS Grid, including concepts like grid rows and grid columns." + "CSS Grid le brinda control sobre las filas y columnas del diseño de su página web.", + "En este taller, crearás un artículo para una revista. Practicarás cómo usar CSS Grid, incluidos conceptos como filas y columnas de cuadrícula." ] }, "lab-newspaper-layout": { - "title": "Design a Newspaper Layout", + "title": "Diseñar el Esquema de un Periódico", "intro": [ - "In this lab, you will design a newspaper layout using CSS Grid, including concepts like grid rows and grid columns." + "En este laboratorio, diseñarás un esquema de periódico usando CSS Grid, incluyendo conceptos como filas y columnas de cuadrícula." ] }, "lecture-debugging-css": { - "title": "Debugging CSS", + "title": "Depuración de CSS", "intro": [ - "In this lecture, you'll learn how to debug CSS using your browser's developer tools and CSS validators." + "En esta conferencia, aprenderás cómo depurar CSS utilizando las herramientas de desarrollo de tu navegador y los validadores de CSS." ] }, "lab-product-landing-page": { - "title": "Build a Product Landing Page", + "title": "Construir una Página de Destino de Producto", "intro": [ - "In this project, you'll build a product landing page to market a product of your choice." + "En este proyecto, crearás una página de destino de producto para comercializar un producto de su elección." ] }, "review-css-grid": { - "title": "CSS Grid Review", + "title": "Revisión de CSS Grid", "intro": [ - "Before you're quizzed on the fundamentals of CSS Grid, you should review what you've learned.", - "Open up this page to review how to work with the different CSS Grid properties like grid-template-columns, grid-gap and more." + "Antes de que te pregunten sobre los fundamentos de CSS Grid, debes repasar lo que has aprendido.", + "Abre esta página para revisar cómo trabajar con las diferentes propiedades de CSS Grid como grid-template-columns, grid-gap y más." ] }, "quiz-css-grid": { - "title": "CSS Grid Quiz", - "intro": ["Test your knowledge of CSS Grid with this quiz."] + "title": "Cuestionario sobre Grid CSS", + "intro": [ + "Pon a prueba tus conocimientos sobre CSS Grid con este cuestionario." + ] }, "lecture-animations-and-accessibility": { - "title": "Animations and Accessibility", + "title": "Animaciones y Accesibilidad", "intro": [ - "In these lectures, you will learn about CSS animations and their accessibility concerns. You will also learn how prefers-reduced-motion can help address those accessibility concerns." + "En estas conferencias, aprenderás sobre las animaciones CSS y sus problemas de accesibilidad. También aprenderás cómo prefers-reduced-motion puede ayudar a abordar esos problemas de accesibilidad." ] }, "workshop-ferris-wheel": { - "title": "Build an Animated Ferris Wheel", + "title": "Construir una Noria Animada", "intro": [ - "You can use CSS animation to draw attention to specific sections of your webpage and make it more engaging.", - "In this workshop, you'll build a Ferris wheel. You'll practice how to use CSS to animate elements, transform them, and adjust their speed." + "Puedes utilizar la animación CSS para llamar la atención sobre secciones específicas de tu página web y hacerla más atractiva.", + "En este taller, construirás una noria. Practicarás cómo usar CSS para animar elementos, transformarlos y ajustar su velocidad." ] }, "lab-moon-orbit": { - "title": "Build a Moon Orbit", + "title": "Construir una Órbita Lunar", "intro": [ - "In this lab, you'll create an animation of the moon orbiting the earth.", - "You'll practice animation properties like animation-name, animation-duration, animation-timing-function, and more." + "En este laboratorio, crearás una animación de la luna orbitando la Tierra.", + "Practicarás propiedades de animación como animation-name, animation-duration, animation-timing-function y más." ] }, "workshop-flappy-penguin": { - "title": "Build a Flappy Penguin", + "title": "Construir un Pingüino Flappy", "intro": [ - "You can transform HTML elements to create appealing designs that draw your reader's eye. You can use transforms to rotate elements, scale them, and more.", - "In this workshop, you'll build a penguin. You'll use CSS transforms to position and resize the parts of your penguin, create a background, and animate your work." + "Puedes transformar elementos HTML para crear diseños atractivos que llamen la atención del lector. Puedes usar transformaciones para rotar elementos, escalarlos y más.", + "En este taller, crearás un pingüino. Utilizarás transformaciones CSS para posicionar y cambiar el tamaño de las partes de tu pingüino, crear un fondo y animar tu trabajo." ] }, "lab-personal-portfolio": { - "title": "Build a Personal Portfolio", + "title": "Construir un Portafolio Personal", "intro": [ - "In this project, you'll build your own personal portfolio page." + "En este proyecto, crearás tu propia página de portafolio personal." ] }, "review-css-animations": { - "title": "CSS Animations Review", + "title": "Revisión de Animaciones CSS", "intro": [ - "Before you're quizzed on working with CSS animations, you should review what you've learned about them.", - "Open up this page to review concepts including prefers-reduced-motion, the @keyframes rule and more." + "Antes de que te pregunten cómo trabajar con animaciones CSS, debes repasar lo que has aprendido sobre ellas.", + "Abre esta página para revisar conceptos que incluyen prefers-reduced-motion, la regla @keyframes y más." ] }, "quiz-css-animations": { - "title": "CSS Animations Quiz", - "intro": ["Test your knowledge of CSS animations with this quiz."] + "title": "Cuestionario de Animaciones CSS", + "intro": [ + "Pon a prueba tus conocimientos sobre animaciones CSS con este cuestionario." + ] }, "review-css": { - "title": "CSS Review", + "title": "Revisión de CSS", "intro": [ - "Before you take the CSS prep exam, you first need to review the concepts taught in the previous modules.", - "Open up this page to review concepts around the basics of CSS, responsive web design, animations, accessibility and more." + "Antes de tomar el examen de preparación de CSS, primero debes revisar los conceptos enseñados en los módulos anteriores.", + "Abre esta página para revisar conceptos sobre los conceptos básicos de CSS, diseño web responsivo, animaciones, accesibilidad y más." ] }, "exam-responsive-web-design-certification": { - "title": "Responsive Web Design Certification Exam", + "title": "Examen de Certificación en Diseño Web Responsivo", "intro": [ - "Pass this exam to earn your Responsive Web Design Certification Exam" + "Aproba este examen para obtener tu Certificación en Diseño Web Responsivo" ] } } }, "a2-professional-spanish": { - "title": "A2 Professional Spanish Certification (Beta)", - "note": "This certification is currently in active development. While there isn't a claimable certification available for this section at the moment, one will be available soon. In the meantime, you're welcome to explore the courses we have created below.", - "intro": ["Placeholder intro"], + "title": "Certificación de Español Profesional A2 (Beta)", + "note": "Esta certificación está actualmente en desarrollo activo. Aunque por el momento no hay una certificación reclamable disponible para esta sección, pronto habrá una disponible. Mientras tanto, le invitamos a explorar los cursos que hemos creado a continuación.", + "intro": ["Introducción con marcador de posición"], "blocks": { "talk-about-who-you-are-by-using-key-verbs": { - "title": "Talk About Who You Are by Using Key Verbs", + "title": "Habla Sobre Quién Eres Usando Verbos Clave", "intro": [ "Aprende a presentarte en español de una manera simple y profesional. En este módulo aprenderás a decir quién eres, de dónde eres, qué haces, cómo te sientes y qué te gusta o no te gusta." ] }, "get-to-know-others-by-asking-simple-questions": { - "title": "Get to Know Others by Asking Simple Questions", + "title": "Conoce a Otros Haciendo Preguntas Sencillas", "intro": [ - "Learn how to ask and answer questions in simple conversations. Through five short dialogues, practice talking about routines, feelings, preferences, workspaces, and personal information. You'll also learn to ask polite questions, give short answers, and use negation naturally." + "Aprende a hacer y responder preguntas en conversaciones simples. A través de cinco diálogos cortos, practica hablar sobre rutinas, sentimientos, preferencias, lugares de trabajo e información personal. También aprenderás a hacer preguntas de manera cortés, dar respuestas cortas y usar la negación de manera natural." ] } } }, "a2-professional-chinese": { - "title": "A2 Professional Chinese Certification (Beta)", - "note": "This certification is currently in active development. While there isn't a claimable certification available for this section at the moment, one will be available soon. In the meantime, you're welcome to explore the courses we have created below.", - "intro": ["Placeholder intro"], + "title": "Certificación de Chino Profesional A2 (Beta)", + "note": "Esta certificación está actualmente en desarrollo activo. Aunque por el momento no hay una certificación reclamable disponible para esta sección, pronto habrá una disponible. Mientras tanto, le invitamos a explorar los cursos que hemos creado a continuación.", + "intro": ["Introducción con marcador de posición"], "blocks": { "talk-about-what-you-do-by-using-key-verbs": { - "title": "Talk About What You Do by Using Key Verbs", + "title": "Habla Sobre Lo Que Haces Usando Verbos Clave", "intro": [ "Aprende a presentarte en chino de una manera simple y profesional. En este módulo aprenderás a decir quién eres, de dónde eres, qué haces, cómo te sientes y qué te gusta o no te gusta." ] }, "get-to-know-colleagues-by-asking-simple-questions": { - "title": "Get to Know Colleagues by Asking Simple Questions", + "title": "Conoce a los Colegas Haciendo Preguntas Sencillas", "intro": [ - "Learn how to ask and answer questions in simple conversations. Through five short dialogues, practice talking about routines, feelings, preferences, workspaces, and personal information. You'll also learn to ask polite questions, give short answers, and use negation naturally." + "Aprende a hacer y responder preguntas en conversaciones simples. A través de cinco diálogos cortos, practica hablar sobre rutinas, sentimientos, preferencias, lugares de trabajo e información personal. También aprenderás a hacer preguntas de manera cortés, dar respuestas cortas y usar la negación de manera natural." ] } } }, "a1-professional-chinese": { - "title": "A1 Professional Chinese Certification (Beta)", - "note": "This certification is in active development. We are currently publishing the introductory chapters, and future chapters will be released as they are developed by our instructional design team. Once all the chapters are available, we will release the certification exam.", + "title": "Certificación Profesional de Chino A1 (Beta)", + "note": "Esta certificación está en desarrollo activo. Actualmente estamos publicando los capítulos introductorios, y los capítulos futuros se lanzarán a medida que sean desarrollados por nuestro equipo de diseño instruccional. Una vez que todos los capítulos estén disponibles, liberaremos el examen de certificación.", "intro": [ - "In this A1 Professional Chinese Curriculum, you'll learn the building blocks of the Chinese language. This will follow the A1 level of the Common European Framework of Reference (CEFR). And we've focused on vocabulary that is particularly useful for professional settings.", - "The curriculum is broken down into several modules that include warm-up, learning, practice, review pages, and quizzes to make sure that you truly understand the material before moving on to the next module.", - "Each chapter includes hundreds of interactive tasks designed to help you take your first steps in learning Chinese with confidence." + "En este currículo de chino profesional A1, aprenderás los fundamentos del idioma chino. Seguirás el nivel A1 del Marco Común Europeo de Referencia (MCER). Y nos hemos centrado en el vocabulario que resulta especialmente útil para entornos profesionales.", + "El currículo se divide en varios módulos que incluyen páginas de calentamiento, aprendizaje, práctica, revisión y cuestionarios para asegurarte de que entiendes realmente el material antes de pasar al siguiente módulo.", + "Cada capítulo incluye cientos de tareas interactivas diseñadas para ayudarte a dar tus primeros pasos en el aprendizaje del chino con confianza." ], "chapters": { - "zh-a1-chapter-welcome-to-a1-professional-chinese": "Welcome to A1 Professional Chinese", + "zh-a1-chapter-welcome-to-a1-professional-chinese": "Bienvenido a A1 Chino Profesional", "zh-a1-chapter-pinyin": "Pinyin", - "zh-a1-chapter-greetings-and-introductions": "Greetings and Introductions", - "zh-a1-chapter-introducing-colleagues-and-family": "Introducing Colleagues and Family", - "zh-a1-chapter-expressing-what-you-can-and-cant-do": "Expressing What You Can and Can't Do" + "zh-a1-chapter-greetings-and-introductions": "Saludos e Introducciones", + "zh-a1-chapter-introducing-colleagues-and-family": "Presentando Colegas y Familia", + "zh-a1-chapter-expressing-what-you-can-and-cant-do": "Expresando Lo Que Puedes y No Puedes Hacer" }, "modules": { - "zh-a1-module-introduction-and-certification-overview": "Introduction and Certification Overview", - "zh-a1-module-initials-and-finals": "Initials and Finals", - "zh-a1-module-greetings-and-basic-introductions": "Greetings and Basic Introductions", - "zh-a1-module-asking-and-giving-basic-information": "Asking and Giving Basic Information", - "zh-a1-module-introducing-others": "Introducing Others", - "zh-a1-module-getting-to-know-the-team": "Getting to Know the Team", - "zh-a1-module-talking-about-personal-skills": "Talking about Personal Skills", - "zh-a1-module-discussing-team-skills": "Discussing Team Skills" + "zh-a1-module-introduction-and-certification-overview": "Introducción y Descripción General de la Certificación", + "zh-a1-module-initials-and-finals": "Consonantes y Vocales", + "zh-a1-module-greetings-and-basic-introductions": "Saludos e Introducciones Básicas", + "zh-a1-module-asking-and-giving-basic-information": "Preguntando y dando información básica.", + "zh-a1-module-introducing-others": "Presentando a otros..", + "zh-a1-module-getting-to-know-the-team": "Conociendo al equipo.", + "zh-a1-module-talking-about-personal-skills": "Hablando sobre habilidades personales.", + "zh-a1-module-discussing-team-skills": "Hablando sobre habilidades del equipo." }, "module-intros": { - "zh-a1-module-introduction-and-certification-overview": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "zh-a1-module-initials-and-finals": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "zh-a1-module-greetings-and-basic-introductions": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "zh-a1-module-asking-and-giving-basic-information": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, "zh-a1-module-introducing-others": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Próximamente en 2026.", + "intro": [ + "En este módulo, practicarás la comprensión de monólogos cortos que presentan información sobre otras personas, como nombre, rol, nacionalidad y edad." + ] }, "zh-a1-module-getting-to-know-the-team": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Próximamente en 2026.", + "intro": [ + "En este módulo, practicarás la comprensión de una conversación corta que hace y responde preguntas simples sobre colegas." + ] }, "zh-a1-module-talking-about-personal-skills": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Próximamente en 2026.", + "intro": [ + "En este módulo, practicarás la comprensión de monólogos cortos sobre lo que las personas pueden y no pueden hacer, como idiomas y habilidades laborales." + ] }, "zh-a1-module-discussing-team-skills": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Próximamente en 2026.", + "intro": [ + "En este módulo, practicarás la comprensión de una conversación corta sobre quién puede realizar qué tareas en un equipo y cómo comienza un proyecto." + ] } }, "blocks": { "zh-a1-learn-certification-introduction": { - "title": "Certification Introduction", + "title": "Introducción a la certificación.", "intro": ["", ""] }, - "zh-a1-learn-single-finals": { - "title": "Single Finals", + "zh-a1-learn-simple-finals": { + "title": "Finales simples", "intro": ["", ""] }, "zh-a1-learn-initials": { - "title": "Initials", + "title": "Iniciales", "intro": ["", ""] }, "zh-a1-learn-compound-finals": { - "title": "Compound Finals", + "title": "Finales compuestas", "intro": ["", ""] }, "zh-a1-learn-nasal-finals": { - "title": "Nasal Finals", + "title": "Finales nasales", "intro": ["", ""] }, "zh-a1-warm-up-greeting-new-colleagues": { - "title": "Greeting New Colleagues", + "title": "Saludando a nuevos colegas", "intro": ["", ""] }, "zh-a1-learn-understanding-greetings-and-introductions": { - "title": "Understanding Greetings and Introductions", + "title": "Entendiendo Saludos e Introducciones", "intro": ["", ""] }, "zh-a1-practice-introducing-yourself": { - "title": "​Introducing Yourself", + "title": "Presentándote", "intro": ["", ""] }, "zh-a1-review-greetings-and-introductions": { - "title": "Greetings and Introductions Review", + "title": "Revisión de saludos e introducciones.", "intro": ["", ""] }, "zh-a1-quiz-greetings-and-introductions": { - "title": "Greetings and Introductions Quiz", + "title": "Cuestionario de saludos e introducciones.", "intro": ["", ""] }, "zh-a1-learn-understanding-questions-and-answers": { - "title": "Understanding Questions and Answers", + "title": "Entendiendo Preguntas y Respuestas", "intro": ["", ""] }, "zh-a1-practice-exchanging-basic-information": { - "title": "Exchanging Basic Information", + "title": "Intercambio de información básica.", "intro": ["", ""] }, "zh-a1-review-introduction-questions": { - "title": "Introduction Questions Review", + "title": "Revisión de preguntas de introducción.", "intro": ["", ""] }, "zh-a1-quiz-introduction-questions": { - "title": "Introduction Questions Quiz", + "title": "Cuestionario de preguntas de introducción.", "intro": ["", ""] }, "zh-a1-warm-up-introducing-others-basics": { - "title": "Introducing Others Basics", + "title": "Presentación de otros conceptos básicos", "intro": ["", ""] }, "zh-a1-learn-meeting-the-team": { - "title": "Meeting the Team", + "title": "Conociendo al Equipo", "intro": ["", ""] }, "zh-a1-learn-a-new-colleague": { - "title": "A New Colleague", + "title": "Un nuevo colega", "intro": ["", ""] }, "zh-a1-learn-my-family": { - "title": "My Family", + "title": "Mi familia", "intro": ["", ""] }, "zh-a1-practice-introducing-others": { - "title": "Introducing Others Practice", + "title": "Presentando la práctica de otros.", "intro": ["", ""] }, "zh-a1-review-introducing-others": { - "title": "Introducing Others Review", + "title": "Revisión de la presentación de otros.", "intro": ["", ""] }, "zh-a1-quiz-check-your-introduction": { - "title": "Check Your Introduction", + "title": "Verifica tu introducción.", "intro": ["", ""] }, "zh-a1-warm-up-knowing-the-team-basics": { - "title": "Knowing the Team Basics", + "title": "Conociendo los conceptos básicos del equipo.", "intro": ["", ""] }, "zh-a1-learn-asking-about-the-team": { - "title": "Asking about the Team", + "title": "Preguntando sobre el equipo.", "intro": ["", ""] }, "zh-a1-practice-talking-about-others": { - "title": "Talking about Others", + "title": "Hablando de otros", "intro": ["", ""] }, "zh-a1-review-team-introduction": { - "title": "Team Introduction Review", + "title": "Revisión de Introducción del equipo", "intro": ["", ""] }, "zh-a1-quiz-team-introduction": { - "title": "Team Introduction Quiz", + "title": "Cuestionario de Introducción del equipo", "intro": ["", ""] }, "zh-a1-warm-up-personal-skills-basics": { - "title": "Personal Skills Basics", + "title": "Conceptos básicos de habilidades personales", "intro": ["", ""] }, "zh-a1-learn-can-or-cannot": { - "title": "Can or Can't", + "title": "Puede o no puede", "intro": ["", ""] }, "zh-a1-practice-personal-skills": { - "title": "Personal Skills Practice", + "title": "Práctica de habilidades personales", "intro": ["", ""] }, "zh-a1-review-describing-skills": { - "title": "Describing Skills Review", + "title": "Revisión de habilidades de descripción", "intro": ["", ""] }, "zh-a1-quiz-describing-skills": { - "title": "Describing Skills Quiz", + "title": "Cuestionario de habilidades de descripción", "intro": ["", ""] }, "zh-a1-warm-up-team-skills-basics": { - "title": "Team Skills Basics", + "title": "Conceptos básicos de habilidades del equipo", "intro": ["", ""] }, "zh-a1-learn-who-can-do-what-on-the-team": { - "title": "Who Can Do What on the Team", - "intro": ["Learn to discuss team member capabilities and roles."] + "title": "Quién puede hacer qué en el equipo", + "intro": [ + "Aprender a discutir capacidades de miembros del equipo y roles." + ] }, "zh-a1-practice-talking-about-skills": { - "title": "Talking about Skills", - "intro": ["Practice discussing various skills in team contexts."] + "title": "Hablando de habilidades", + "intro": [ + "Practica discutir varias habilidades en contextos de equipo." + ] }, "zh-a1-review-discussing-team-skills": { - "title": "Discussing Team Skills Review", + "title": "Revisión de habilidades de discusión del equipo", "intro": ["", ""] }, "zh-a1-quiz-discussing-team-skills": { - "title": "Discussing Team Skills Quiz", + "title": "Cuestionario de habilidades de discusión del equipo", "intro": ["", ""] }, "zh-a1-warm-up-meeting-new-teammates": { - "title": "Meeting New Teammates", + "title": "Conociendo a nuevos compañeros de equipo", "intro": ["", ""] }, "zh-a1-learn-special-spelling-rules": { - "title": "Special Spelling Rules", + "title": "Reglas Especiales de Ortografía", "intro": ["", ""] }, "zh-a1-practice-pinyin": { - "title": "Pinyin Practice", + "title": "Práctica de Pinyin", "intro": ["", ""] } } }, "basic-html": { - "title": "Basic HTML", + "title": "HTML Básico", "summary": [ - "Learn how to build simple webpages using HTML tags to add text, images, and links." + "Aprende a construir páginas web simples usando etiquetas HTML para agregar texto, imágenes y enlaces." ], - "intro": ["Larger intro for the superblock page."], + "intro": ["Introducción más extensa para la página del superbloque."], "blocks": { "cat-photo-app": { - "title": "Build a Cat Photo App", + "title": "Construir una Aplicación de Fotografías de Gatos", "intro": [ - "HTML tags give a webpage its structure. You can use HTML tags to add photos, buttons, and other elements to your webpage.", - "In this course, you'll learn the most common HTML tags by building your own cat photo app." + "Las etiquetas HTML dan estructura a una página web. Puedes usar etiquetas HTML para añadir fotos, botones y otros elementos en tu página web.", + "En este curso, aprenderás las etiquetas HTML más comunes construyendo tu propia aplicación de fotos de gatos." ] }, "recipe-page": { - "title": "Build a Recipe Page", + "title": "Construir una Página de Recetas", "intro": [ - "In this lab, you'll review HTML basics by creating a web page of your favorite recipe. You'll create an HTML boilerplate and work with headings, lists, images, and more." + "En este laboratorio, revisarás los conceptos básicos de HTML creando una página web de tu receta favorita. Crearás un boilerplate de HTML y trabajarás con encabezados, listas, imágenes y más." ] } } }, "semantic-html": { - "title": "Semantic HTML", + "title": "HTML Semántico", "summary": [ - "Discover how to write cleaner, more meaningful HTML using semantic tags that improve structure, accessibility, and SEO." + "Descubre cómo escribir HTML más limpio y significativo usando etiquetas semánticas que mejoran la estructura, la accesibilidad y el SEO." ], - "intro": ["Larger intro for the superblock page."], + "intro": ["Introducción más extensa para la página del superbloque."], "blocks": { "cat-blog-page": { - "title": "Build a Cat Blog Page", + "title": "Construir una Página de Blog sobre Gatos", "intro": [ - "In this workshop, you will build an HTML only blog page using semantic elements including the main, nav, article and footer elements." + "En este taller, construirás una página de blog solo con HTML utilizando elementos semánticos incluidos main, nav, article y footer." ] }, "event-hub": { - "title": "Build an Event Hub", + "title": "Construir un Centro de Eventos", "intro": [ - "In this lab, you'll build an event hub and review semantic elements like header, nav, article, and more." + "En este laboratorio, construirás un centro de eventos y revisarás elementos semánticos como header, nav, article, y más." ] } } }, "dev-playground": { - "title": "Dev Playground", - "intro": ["Playground for creating and testing challenges"], + "title": "Parque de Desarrollo", + "intro": ["Espacio para crear y probar desafíos."], "blocks": { "daily-coding-challenges-javascript": { - "title": "Daily Coding Challenges JavaScript", - "intro": ["Place to create JavaScript daily coding challenges."] + "title": "Desafíos Diarios de Programación JavaScript", + "intro": [ + "Lugar para crear desafíos diarios de programación en JavaScript." + ] }, "daily-coding-challenges-python": { - "title": "Daily Coding Challenges Python", - "intro": ["Place to create Python daily coding challenges."] + "title": "Desafíos Diarios de Programación en Python", + "intro": [ + "Lugar para crear desafíos diarios de programación en Python." + ] } } }, "full-stack-open": { "title": "Full Stack Open", - "intro": ["A good intro is to be added here."], + "intro": ["Una buena introducción se agregará aquí."], "blocks": { "cat-blog-page": { - "title": "Build a Cat Blog Page", + "title": "Construir una Página de Blog sobre Gatos", "intro": [ - "In this workshop, you will build an HTML only blog page using semantic elements including the main, nav, article and footer elements." + "En este taller, construirás una página de blog solo con HTML utilizando elementos semánticos incluidos main, nav, article y footer." ] } }, "chapters": { - "part-0": "Fundamentals of Web Apps", - "part-1": "Introduction to React", - "part-2": "Communicating with Servers", - "part-3": "Programming a Server with NodeJS and Express", - "part-4": "Testing Express Servers, User Administration", - "part-5": "Testing React Apps", - "part-6": "Advanced State Management", - "part-7": "React router, custom hooks, styling app with CSS and webpack", + "part-0": "Fundamentos de Aplicaciones Web", + "part-1": "Introducción a React", + "part-2": "Comunicándose con Servidores", + "part-3": "Programación de un Servidor con NodeJS y Express", + "part-4": "Pruebas de Servidores Express, Administración de Usuarios.", + "part-5": "Pruebas de Aplicaciones React.", + "part-6": "Gestión Avanzada del Estado.", + "part-7": "Enrutador de React, hooks personalizados, aplicación de estilos con CSS y webpack.", "part-8": "GraphQL", "part-9": "TypeScript", "part-10": "React Native", diff --git a/client/i18n/locales/espanol/translations.json b/client/i18n/locales/espanol/translations.json index 14a9f8880c5820..95d8704fba3aae 100644 --- a/client/i18n/locales/espanol/translations.json +++ b/client/i18n/locales/espanol/translations.json @@ -131,7 +131,7 @@ }, "weekdays": { "short": { - "sunday": "Sab", + "sunday": "Dom", "monday": "Lun", "tuesday": "Mar", "wednesday": "Mier", @@ -140,7 +140,7 @@ "saturday": "Sab" }, "long": { - "sunday": "Dom", + "sunday": "Domingo", "monday": "Lunes", "tuesday": "Martes", "wednesday": "Miércoles", @@ -207,7 +207,8 @@ "certification-heading": "Obtén certificaciones verificadas gratuitas en:", "core-certs-heading": "Programa de estudios recomendado (aún en beta):", "learn-english-heading": "Aprende Inglés para Desarolladores:", - "learn-spanish-heading": "Learn Professional Spanish:", + "learn-spanish-heading": "Aprende Español profesional A1:", + "learn-chinese-heading": "Aprende Chino Professional:", "professional-certs-heading": "Certificaciones profesionales:", "interview-prep-heading": "Prepárate para la búsqueda de empleo en la entrevista de desarrollador:", "legacy-curriculum-heading": "Nuestros cursos archivados:", @@ -485,7 +486,7 @@ "ms-link": "Link de Microsoft", "submit-and-go": "Enviar y pasar a mi siguiente desafío", "congratulations": "Felicidades, tu código ha sido aprobado. Envía tu código para continuar.", - "congratulations-code-passes": "Felicidades!!! Tu código pasa", + "congratulations-code-passes": "Felicidades. Tu código pasa.", "i-completed": "He completado este desafío", "example-code": "Código de ejemplo", "test-output": "El resultado de tu prueba irá aquí", @@ -837,7 +838,7 @@ "help-millions-learn": "Ayuda a millones de personas a aprender", "reach-goals-faster": "Alcanza tus metas más rápido", "remove-distractions": "Eliminar distracciones", - "remove-interruptions": "Remover interrupciones", + "remove-interruptions": "Remueve interrupciones", "acquire-skills-faster": "Adquiera habilidades más rápido", "animation-description": "Este es un anuncio animado de 20 segundos para animar a los campistas a convertirse en seguidores de freeCodeCamp. La animación comienza con un oso de téd que se convierte en un soporte. Como resultado, desaparecen los pop-ups de distracción y el oso llega a completar todas sus metas. Luego, se gradua y se convierte en un superhéroe educativo que ayuda a la gente de todo el mundo.", "animation-countdown": "Esta animación se detendrá después de {{secondesRemaining}} segundos." @@ -1085,7 +1086,7 @@ "success": "Gracias. Tu encuesta ha sido enviada." }, "classroom-mode-updated": "Hemos actualizado la configuración de tu modo clase", - "user-fetch-error": "Unable to retrieve your user information. You can still use the site, but your progress may not be saved." + "user-fetch-error": "No se puede recuperar su información de usuario. Puede seguir utilizando el sitio, pero es posible que su progreso no sea guardado." }, "validation": { "max-characters": "Hay un límite máximo de 288 caracteres, te quedan {{charsLeft}}", @@ -1115,6 +1116,7 @@ "issued": "Emitido", "fulltext": "<0>Se certifica que <1>{{user}} <2>ha completado exitosamente la <3>{{title}} <4>Certificación de Desarrollador en {{time}} <5>que representa aproximadamente {{completionTime}} horas de trabajo en el curso", "fulltextNoHours": "<0>La presente certifica que <1>{{user}} <2>completó con éxito la <3>{{title}} <4>Certificación de desarrollador/a en {{time}}", + "fulltextLanguageExam": "<0>Se certifica que <1>{{user}} <2>ha pasado exitosamente el examen <3>{{title}} <4>en {{time}} <5>demostrando competencia en las partes de gramática, audición y lectura de los estándares del CEFR para este nivel, basado en el contenido cubierto en el currículo.", "quincy-larson-signature": "La firma de Quincy Larson", "julia-liuson-signature": "La firma de Julia Liuson", "project": { diff --git a/client/i18n/locales/german/intro.json b/client/i18n/locales/german/intro.json index 78fb97da68c0aa..afcd63bd99018e 100644 --- a/client/i18n/locales/german/intro.json +++ b/client/i18n/locales/german/intro.json @@ -1846,7 +1846,6 @@ "git": "Git", "review-relational-databases": "Relational Databases Review", "exam-relational-databases": "Relational Databases Exam", - "introduction-to-nodejs": "Introduction to Node.js", "nodejs-core-libraries": "Node.js Core Libraries", "node-package-manager": "Node Package Manager", "http-and-the-web-standards-model": "HTTP and the Web Standards Model", @@ -6697,53 +6696,39 @@ "review-python": "Python Review", "python-certification-exam": "Python Certification Exam" }, - "module-intros": { - "python-classes-and-objects": { - "note": "Coming Winter 2025", - "intro": [ - "In this module, you will learn how to work with classes, methods, attributes and properties. Then, you will build out workshops and labs to practice these concepts and take a short quiz to test your knowledge." - ] - }, - "python-object-oriented-programming": { - "note": "Coming Winter 2025", + "blocks": { + "lecture-introduction-to-python": { + "title": "Introduction to Python", "intro": [ - "In this module, you will learn about Object-oriented programming concepts like encapsulation, inheritance, polymorphism, and more. You will build out workshops and labs to practice these concepts and take a short quiz to test your knowledge." + "In these lessons, you will learn what Python is, how to set up your development environment." ] }, - "python-linear-data-structures": { - "note": "Coming Winter 2025", + "lecture-understanding-variables-and-data-types": { + "title": "Understanding Variables and Data Types", "intro": [ - "In this module, you will learn about data structures including stacks, queues, linked lists, and more. You will build out a workshop and lab to practice these concepts and take a short quiz to test your knowledge." + "In these lessons, you will learn about variables and data types in Python." ] }, - "python-algorithms": { - "note": "Coming Winter 2025", - "intro": [ - "In this module, you will learn about common algorithms including binary search, merge sort, selection sort, and more. You will build workshops and labs to practice these concepts and take a short quiz to test your knowledge." - ] + "lecture-introduction-to-python-strings": { + "title": "Introduction to Strings", + "intro": ["In these lessons, you will learn about strings in Python."] }, - "python-graphs-and-trees": { - "note": "Coming Winter 2025", + "lecture-numbers-and-mathematical-operations": { + "title": "Numbers and Mathematical Operations", "intro": [ - "In this module, you will learn about graphs in computer science as well as adjacency lists, trees, tries, and more. You will build workshops and labs to practice these concepts and take a short quiz to test your knowledge." + "In these lessons, you will learn about numbers and mathematical operations in Python." ] }, - "python-dynamic-programming": { - "note": "Coming Winter 2025", + "lecture-booleans-and-conditionals": { + "title": "Booleans and Conditionals", "intro": [ - "In this module, you will learn about dynamic programming and practice these concepts by building a fibonacci sequence lab. Then you will take a short quiz to test your knowledge." + "In these lessons, you will learn about booleans and conditionals in Python." ] }, - "python-certification-exam": { - "note": "Coming Winter 2025", - "intro": ["Pass this exam to earn your Python Certification."] - } - }, - "blocks": { - "lecture-introduction-to-python": { - "title": "Introduction to Python", + "lecture-understanding-functions-and-scope": { + "title": "Understanding Functions and Scope", "intro": [ - "In these lessons, you will learn the fundamentals of Python. You'll learn about variables, data types, operators, control flow, functions, and more." + "In these lessons, you will learn about functions and scope in Python." ] }, "workshop-caesar-cipher": { @@ -6753,7 +6738,7 @@ ] }, "lab-rpg-character": { - "title": "Build an RPG character", + "title": "Build an RPG Character", "intro": [ "In this lab you will practice basic python by building an RPG character." ] @@ -7168,14 +7153,6 @@ "lab-number-guessing-game": "Build a Number Guessing Game", "relational-databases-certification-exam": "Relational Databases Certification Exam" }, - "module-intros": { - "relational-databases-certification-exam": { - "note": "Coming Winter 2025", - "intro": [ - "Pass this exam to earn your Relational Databases Certification." - ] - } - }, "blocks": { "lecture-working-with-code-editors-and-ides": { "title": "Working with Code Editors and IDEs", @@ -7367,6 +7344,12 @@ "Review relational databases concepts to prepare for the exam." ] }, + "quiz-node-js-core-modules": { + "title": "NodeJS Core Modules Quiz", + "intro": [ + "Test what you've learned about Node.js core modules with this quiz." + ] + }, "exam-relational-databases-certification": { "title": "Relational Databases Certification Exam", "intro": [ @@ -7389,7 +7372,8 @@ "back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam" }, "modules": { - "nodejs-core-libraries": "Node.js Core Libraries", + "introduction-to-nodejs": "Introduction to Node.js", + "nodejs-core-modules": "Node.js Core Modules", "node-package-manager": "Node Package Manager", "http-and-the-web-standards-model": "HTTP and the Web Standards Model", "rest-api-and-web-services": "REST API and Web Services", @@ -7404,10 +7388,16 @@ "back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam" }, "module-intros": { - "nodejs-core-libraries": { + "introduction-to-nodejs": { "note": "Coming Late 2026", "intro": [ - "In this module, you will learn about common Node.js core libraries including the fs, os, path and more. Then you will get to practice what you have learned through workshops and labs and test your knowledge through a short quiz." + "In this module, you will learn the basics of working with Node.js." + ] + }, + "nodejs-core-modules": { + "note": "Coming Late 2026", + "intro": [ + "In this module, you will learn about common Node.js core modules including the fs, os, path and more. Then you will get to practice what you have learned through workshops and labs and test your knowledge through a short quiz." ] }, "node-package-manager": { @@ -7484,6 +7474,24 @@ } }, "blocks": { + "lecture-working-with-nodejs-and-event-driven-architecture": { + "title": "Working with NodeJS and event driven architecture", + "intro": [ + "Learn about Node.js core libraries, how to install Node.js on your computer, and the advantages and disadvantages of using Node.js on the backend." + ] + }, + "review-node-js-core-modules": { + "title": "Node JS Core Modules Review", + "intro": [ + "Review Node JS Core Modules concepts to prepare for the upcoming quiz." + ] + }, + "review-node-js-intro": { + "title": "NodeJS Intro Review", + "intro": [ + "Review the basics of NodeJS to prepare for the upcoming quiz." + ] + }, "quiz-node-js-intro": { "title": "NodeJS Intro Quiz", "intro": ["Test what you have learned about NodeJS in this quiz."] @@ -8433,6 +8441,13 @@ "In this workshop, you'll use Flexbox to build a responsive photo gallery webpage." ] }, + "lab-pricing-plans-layout": { + "title": "Design a Pricing Plans Layout Page", + "intro": [ + "In this lab, you'll use flexbox to create a common three-card tier layout.", + "You'll practice aligning elements using flexbox properties like flex, flex-grow, order, and more." + ] + }, "lab-page-of-playing-cards": { "title": "Build a Page of Playing Cards", "intro": [ @@ -8806,37 +8821,29 @@ "zh-a1-module-discussing-team-skills": "Discussing Team Skills" }, "module-intros": { - "zh-a1-module-introduction-and-certification-overview": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "zh-a1-module-initials-and-finals": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "zh-a1-module-greetings-and-basic-introductions": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "zh-a1-module-asking-and-giving-basic-information": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, "zh-a1-module-introducing-others": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding short monologues that introduce information about other people, such as name, role, nationality, and age." + ] }, "zh-a1-module-getting-to-know-the-team": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding a short conversation that asks and answers simple questions about colleagues." + ] }, "zh-a1-module-talking-about-personal-skills": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding short monologues about what people can and cannot do, such as languages and work skills." + ] }, "zh-a1-module-discussing-team-skills": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding a short conversation about who can do which tasks on a team and how a project starts." + ] } }, "blocks": { @@ -8844,8 +8851,8 @@ "title": "Certification Introduction", "intro": ["", ""] }, - "zh-a1-learn-single-finals": { - "title": "Single Finals", + "zh-a1-learn-simple-finals": { + "title": "Simple Finals", "intro": ["", ""] }, "zh-a1-learn-initials": { diff --git a/client/i18n/locales/german/translations.json b/client/i18n/locales/german/translations.json index 39d364394f3f01..96eacb8d3df3a7 100644 --- a/client/i18n/locales/german/translations.json +++ b/client/i18n/locales/german/translations.json @@ -208,6 +208,7 @@ "core-certs-heading": "Recommended curriculum (still in beta):", "learn-english-heading": "Learn English for Developers:", "learn-spanish-heading": "Learn Professional Spanish:", + "learn-chinese-heading": "Learn Professional Chinese:", "professional-certs-heading": "Professional certifications:", "interview-prep-heading": "Prepare for the developer interview job search:", "legacy-curriculum-heading": "Our archived coursework:", @@ -1115,6 +1116,7 @@ "issued": "Ausgestellt", "fulltext": "<0>This certifies that <1>{{user}} <2>successfully completed the <3>{{title}} <4>Developer Certification on {{time}} <5>representing approximately {{completionTime}} hours of work", "fulltextNoHours": "<0>This certifies that <1>{{user}} <2>successfully completed the <3>{{title}} <4>Developer Certification on {{time}}", + "fulltextLanguageExam": "<0>This certifies that <1>{{user}} <2>has successfully passed the <3>{{title}} <4>exam on {{time}} <5>demonstrating competence in grammar, listening, and reading portions of the CEFR standards for this level based on the content covered in the curriculum.", "quincy-larson-signature": "Quincy Larson's Signature", "julia-liuson-signature": "Julia Liuson's Signature", "project": { diff --git a/client/i18n/locales/italian/intro.json b/client/i18n/locales/italian/intro.json index 759825a91daef4..94616848c5882e 100644 --- a/client/i18n/locales/italian/intro.json +++ b/client/i18n/locales/italian/intro.json @@ -1846,7 +1846,6 @@ "git": "Git", "review-relational-databases": "Relational Databases Review", "exam-relational-databases": "Relational Databases Exam", - "introduction-to-nodejs": "Introduction to Node.js", "nodejs-core-libraries": "Node.js Core Libraries", "node-package-manager": "Node Package Manager", "http-and-the-web-standards-model": "HTTP and the Web Standards Model", @@ -6697,53 +6696,39 @@ "review-python": "Python Review", "python-certification-exam": "Python Certification Exam" }, - "module-intros": { - "python-classes-and-objects": { - "note": "Coming Winter 2025", - "intro": [ - "In this module, you will learn how to work with classes, methods, attributes and properties. Then, you will build out workshops and labs to practice these concepts and take a short quiz to test your knowledge." - ] - }, - "python-object-oriented-programming": { - "note": "Coming Winter 2025", + "blocks": { + "lecture-introduction-to-python": { + "title": "Introduction to Python", "intro": [ - "In this module, you will learn about Object-oriented programming concepts like encapsulation, inheritance, polymorphism, and more. You will build out workshops and labs to practice these concepts and take a short quiz to test your knowledge." + "In these lessons, you will learn what Python is, how to set up your development environment." ] }, - "python-linear-data-structures": { - "note": "Coming Winter 2025", + "lecture-understanding-variables-and-data-types": { + "title": "Understanding Variables and Data Types", "intro": [ - "In this module, you will learn about data structures including stacks, queues, linked lists, and more. You will build out a workshop and lab to practice these concepts and take a short quiz to test your knowledge." + "In these lessons, you will learn about variables and data types in Python." ] }, - "python-algorithms": { - "note": "Coming Winter 2025", - "intro": [ - "In this module, you will learn about common algorithms including binary search, merge sort, selection sort, and more. You will build workshops and labs to practice these concepts and take a short quiz to test your knowledge." - ] + "lecture-introduction-to-python-strings": { + "title": "Introduction to Strings", + "intro": ["In these lessons, you will learn about strings in Python."] }, - "python-graphs-and-trees": { - "note": "Coming Winter 2025", + "lecture-numbers-and-mathematical-operations": { + "title": "Numbers and Mathematical Operations", "intro": [ - "In this module, you will learn about graphs in computer science as well as adjacency lists, trees, tries, and more. You will build workshops and labs to practice these concepts and take a short quiz to test your knowledge." + "In these lessons, you will learn about numbers and mathematical operations in Python." ] }, - "python-dynamic-programming": { - "note": "Coming Winter 2025", + "lecture-booleans-and-conditionals": { + "title": "Booleans and Conditionals", "intro": [ - "In this module, you will learn about dynamic programming and practice these concepts by building a fibonacci sequence lab. Then you will take a short quiz to test your knowledge." + "In these lessons, you will learn about booleans and conditionals in Python." ] }, - "python-certification-exam": { - "note": "Coming Winter 2025", - "intro": ["Pass this exam to earn your Python Certification."] - } - }, - "blocks": { - "lecture-introduction-to-python": { - "title": "Introduction to Python", + "lecture-understanding-functions-and-scope": { + "title": "Understanding Functions and Scope", "intro": [ - "In these lessons, you will learn the fundamentals of Python. You'll learn about variables, data types, operators, control flow, functions, and more." + "In these lessons, you will learn about functions and scope in Python." ] }, "workshop-caesar-cipher": { @@ -6753,7 +6738,7 @@ ] }, "lab-rpg-character": { - "title": "Build an RPG character", + "title": "Build an RPG Character", "intro": [ "In this lab you will practice basic python by building an RPG character." ] @@ -7168,14 +7153,6 @@ "lab-number-guessing-game": "Build a Number Guessing Game", "relational-databases-certification-exam": "Relational Databases Certification Exam" }, - "module-intros": { - "relational-databases-certification-exam": { - "note": "Coming Winter 2025", - "intro": [ - "Pass this exam to earn your Relational Databases Certification." - ] - } - }, "blocks": { "lecture-working-with-code-editors-and-ides": { "title": "Working with Code Editors and IDEs", @@ -7367,6 +7344,12 @@ "Review relational databases concepts to prepare for the exam." ] }, + "quiz-node-js-core-modules": { + "title": "NodeJS Core Modules Quiz", + "intro": [ + "Test what you've learned about Node.js core modules with this quiz." + ] + }, "exam-relational-databases-certification": { "title": "Relational Databases Certification Exam", "intro": [ @@ -7389,7 +7372,8 @@ "back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam" }, "modules": { - "nodejs-core-libraries": "Node.js Core Libraries", + "introduction-to-nodejs": "Introduction to Node.js", + "nodejs-core-modules": "Node.js Core Modules", "node-package-manager": "Node Package Manager", "http-and-the-web-standards-model": "HTTP and the Web Standards Model", "rest-api-and-web-services": "REST API and Web Services", @@ -7404,10 +7388,16 @@ "back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam" }, "module-intros": { - "nodejs-core-libraries": { + "introduction-to-nodejs": { "note": "Coming Late 2026", "intro": [ - "In this module, you will learn about common Node.js core libraries including the fs, os, path and more. Then you will get to practice what you have learned through workshops and labs and test your knowledge through a short quiz." + "In this module, you will learn the basics of working with Node.js." + ] + }, + "nodejs-core-modules": { + "note": "Coming Late 2026", + "intro": [ + "In this module, you will learn about common Node.js core modules including the fs, os, path and more. Then you will get to practice what you have learned through workshops and labs and test your knowledge through a short quiz." ] }, "node-package-manager": { @@ -7484,6 +7474,24 @@ } }, "blocks": { + "lecture-working-with-nodejs-and-event-driven-architecture": { + "title": "Working with NodeJS and event driven architecture", + "intro": [ + "Learn about Node.js core libraries, how to install Node.js on your computer, and the advantages and disadvantages of using Node.js on the backend." + ] + }, + "review-node-js-core-modules": { + "title": "Node JS Core Modules Review", + "intro": [ + "Review Node JS Core Modules concepts to prepare for the upcoming quiz." + ] + }, + "review-node-js-intro": { + "title": "NodeJS Intro Review", + "intro": [ + "Review the basics of NodeJS to prepare for the upcoming quiz." + ] + }, "quiz-node-js-intro": { "title": "NodeJS Intro Quiz", "intro": ["Test what you have learned about NodeJS in this quiz."] @@ -8433,6 +8441,13 @@ "In this workshop, you'll use Flexbox to build a responsive photo gallery webpage." ] }, + "lab-pricing-plans-layout": { + "title": "Design a Pricing Plans Layout Page", + "intro": [ + "In this lab, you'll use flexbox to create a common three-card tier layout.", + "You'll practice aligning elements using flexbox properties like flex, flex-grow, order, and more." + ] + }, "lab-page-of-playing-cards": { "title": "Build a Page of Playing Cards", "intro": [ @@ -8806,37 +8821,29 @@ "zh-a1-module-discussing-team-skills": "Discussing Team Skills" }, "module-intros": { - "zh-a1-module-introduction-and-certification-overview": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "zh-a1-module-initials-and-finals": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "zh-a1-module-greetings-and-basic-introductions": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "zh-a1-module-asking-and-giving-basic-information": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, "zh-a1-module-introducing-others": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding short monologues that introduce information about other people, such as name, role, nationality, and age." + ] }, "zh-a1-module-getting-to-know-the-team": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding a short conversation that asks and answers simple questions about colleagues." + ] }, "zh-a1-module-talking-about-personal-skills": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding short monologues about what people can and cannot do, such as languages and work skills." + ] }, "zh-a1-module-discussing-team-skills": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding a short conversation about who can do which tasks on a team and how a project starts." + ] } }, "blocks": { @@ -8844,8 +8851,8 @@ "title": "Certification Introduction", "intro": ["", ""] }, - "zh-a1-learn-single-finals": { - "title": "Single Finals", + "zh-a1-learn-simple-finals": { + "title": "Simple Finals", "intro": ["", ""] }, "zh-a1-learn-initials": { diff --git a/client/i18n/locales/italian/translations.json b/client/i18n/locales/italian/translations.json index 77621ba2d397dc..31910ae614f11f 100644 --- a/client/i18n/locales/italian/translations.json +++ b/client/i18n/locales/italian/translations.json @@ -208,6 +208,7 @@ "core-certs-heading": "Recommended curriculum (still in beta):", "learn-english-heading": "Learn English for Developers:", "learn-spanish-heading": "Learn Professional Spanish:", + "learn-chinese-heading": "Learn Professional Chinese:", "professional-certs-heading": "Professional certifications:", "interview-prep-heading": "Preparati per la ricerca di colloqui di lavoro da sviluppatore:", "legacy-curriculum-heading": "Our archived coursework:", @@ -1115,6 +1116,7 @@ "issued": "Emesso", "fulltext": "<0>This certifies that <1>{{user}} <2>successfully completed the <3>{{title}} <4>Developer Certification on {{time}} <5>representing approximately {{completionTime}} hours of work", "fulltextNoHours": "<0>This certifies that <1>{{user}} <2>successfully completed the <3>{{title}} <4>Developer Certification on {{time}}", + "fulltextLanguageExam": "<0>This certifies that <1>{{user}} <2>has successfully passed the <3>{{title}} <4>exam on {{time}} <5>demonstrating competence in grammar, listening, and reading portions of the CEFR standards for this level based on the content covered in the curriculum.", "quincy-larson-signature": "Quincy Larson's Signature", "julia-liuson-signature": "Julia Liuson's Signature", "project": { diff --git a/client/i18n/locales/japanese/intro.json b/client/i18n/locales/japanese/intro.json index ba70db46881ff6..2c1271523f5415 100644 --- a/client/i18n/locales/japanese/intro.json +++ b/client/i18n/locales/japanese/intro.json @@ -1846,7 +1846,6 @@ "git": "Git", "review-relational-databases": "Relational Databases Review", "exam-relational-databases": "Relational Databases Exam", - "introduction-to-nodejs": "Introduction to Node.js", "nodejs-core-libraries": "Node.js Core Libraries", "node-package-manager": "Node Package Manager", "http-and-the-web-standards-model": "HTTP and the Web Standards Model", @@ -6697,53 +6696,39 @@ "review-python": "Python Review", "python-certification-exam": "Python Certification Exam" }, - "module-intros": { - "python-classes-and-objects": { - "note": "Coming Winter 2025", - "intro": [ - "In this module, you will learn how to work with classes, methods, attributes and properties. Then, you will build out workshops and labs to practice these concepts and take a short quiz to test your knowledge." - ] - }, - "python-object-oriented-programming": { - "note": "Coming Winter 2025", + "blocks": { + "lecture-introduction-to-python": { + "title": "Introduction to Python", "intro": [ - "In this module, you will learn about Object-oriented programming concepts like encapsulation, inheritance, polymorphism, and more. You will build out workshops and labs to practice these concepts and take a short quiz to test your knowledge." + "In these lessons, you will learn what Python is, how to set up your development environment." ] }, - "python-linear-data-structures": { - "note": "Coming Winter 2025", + "lecture-understanding-variables-and-data-types": { + "title": "Understanding Variables and Data Types", "intro": [ - "In this module, you will learn about data structures including stacks, queues, linked lists, and more. You will build out a workshop and lab to practice these concepts and take a short quiz to test your knowledge." + "In these lessons, you will learn about variables and data types in Python." ] }, - "python-algorithms": { - "note": "Coming Winter 2025", - "intro": [ - "In this module, you will learn about common algorithms including binary search, merge sort, selection sort, and more. You will build workshops and labs to practice these concepts and take a short quiz to test your knowledge." - ] + "lecture-introduction-to-python-strings": { + "title": "Introduction to Strings", + "intro": ["In these lessons, you will learn about strings in Python."] }, - "python-graphs-and-trees": { - "note": "Coming Winter 2025", + "lecture-numbers-and-mathematical-operations": { + "title": "Numbers and Mathematical Operations", "intro": [ - "In this module, you will learn about graphs in computer science as well as adjacency lists, trees, tries, and more. You will build workshops and labs to practice these concepts and take a short quiz to test your knowledge." + "In these lessons, you will learn about numbers and mathematical operations in Python." ] }, - "python-dynamic-programming": { - "note": "Coming Winter 2025", + "lecture-booleans-and-conditionals": { + "title": "Booleans and Conditionals", "intro": [ - "In this module, you will learn about dynamic programming and practice these concepts by building a fibonacci sequence lab. Then you will take a short quiz to test your knowledge." + "In these lessons, you will learn about booleans and conditionals in Python." ] }, - "python-certification-exam": { - "note": "Coming Winter 2025", - "intro": ["Pass this exam to earn your Python Certification."] - } - }, - "blocks": { - "lecture-introduction-to-python": { - "title": "Introduction to Python", + "lecture-understanding-functions-and-scope": { + "title": "Understanding Functions and Scope", "intro": [ - "In these lessons, you will learn the fundamentals of Python. You'll learn about variables, data types, operators, control flow, functions, and more." + "In these lessons, you will learn about functions and scope in Python." ] }, "workshop-caesar-cipher": { @@ -6753,7 +6738,7 @@ ] }, "lab-rpg-character": { - "title": "Build an RPG character", + "title": "Build an RPG Character", "intro": [ "In this lab you will practice basic python by building an RPG character." ] @@ -7168,14 +7153,6 @@ "lab-number-guessing-game": "Build a Number Guessing Game", "relational-databases-certification-exam": "Relational Databases Certification Exam" }, - "module-intros": { - "relational-databases-certification-exam": { - "note": "Coming Winter 2025", - "intro": [ - "Pass this exam to earn your Relational Databases Certification." - ] - } - }, "blocks": { "lecture-working-with-code-editors-and-ides": { "title": "Working with Code Editors and IDEs", @@ -7367,6 +7344,12 @@ "Review relational databases concepts to prepare for the exam." ] }, + "quiz-node-js-core-modules": { + "title": "NodeJS Core Modules Quiz", + "intro": [ + "Test what you've learned about Node.js core modules with this quiz." + ] + }, "exam-relational-databases-certification": { "title": "Relational Databases Certification Exam", "intro": [ @@ -7389,7 +7372,8 @@ "back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam" }, "modules": { - "nodejs-core-libraries": "Node.js Core Libraries", + "introduction-to-nodejs": "Introduction to Node.js", + "nodejs-core-modules": "Node.js Core Modules", "node-package-manager": "Node Package Manager", "http-and-the-web-standards-model": "HTTP and the Web Standards Model", "rest-api-and-web-services": "REST API and Web Services", @@ -7404,10 +7388,16 @@ "back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam" }, "module-intros": { - "nodejs-core-libraries": { + "introduction-to-nodejs": { "note": "Coming Late 2026", "intro": [ - "In this module, you will learn about common Node.js core libraries including the fs, os, path and more. Then you will get to practice what you have learned through workshops and labs and test your knowledge through a short quiz." + "In this module, you will learn the basics of working with Node.js." + ] + }, + "nodejs-core-modules": { + "note": "Coming Late 2026", + "intro": [ + "In this module, you will learn about common Node.js core modules including the fs, os, path and more. Then you will get to practice what you have learned through workshops and labs and test your knowledge through a short quiz." ] }, "node-package-manager": { @@ -7484,6 +7474,24 @@ } }, "blocks": { + "lecture-working-with-nodejs-and-event-driven-architecture": { + "title": "Working with NodeJS and event driven architecture", + "intro": [ + "Learn about Node.js core libraries, how to install Node.js on your computer, and the advantages and disadvantages of using Node.js on the backend." + ] + }, + "review-node-js-core-modules": { + "title": "Node JS Core Modules Review", + "intro": [ + "Review Node JS Core Modules concepts to prepare for the upcoming quiz." + ] + }, + "review-node-js-intro": { + "title": "NodeJS Intro Review", + "intro": [ + "Review the basics of NodeJS to prepare for the upcoming quiz." + ] + }, "quiz-node-js-intro": { "title": "NodeJS Intro Quiz", "intro": ["Test what you have learned about NodeJS in this quiz."] @@ -8433,6 +8441,13 @@ "In this workshop, you'll use Flexbox to build a responsive photo gallery webpage." ] }, + "lab-pricing-plans-layout": { + "title": "Design a Pricing Plans Layout Page", + "intro": [ + "In this lab, you'll use flexbox to create a common three-card tier layout.", + "You'll practice aligning elements using flexbox properties like flex, flex-grow, order, and more." + ] + }, "lab-page-of-playing-cards": { "title": "Build a Page of Playing Cards", "intro": [ @@ -8806,37 +8821,29 @@ "zh-a1-module-discussing-team-skills": "Discussing Team Skills" }, "module-intros": { - "zh-a1-module-introduction-and-certification-overview": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "zh-a1-module-initials-and-finals": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "zh-a1-module-greetings-and-basic-introductions": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "zh-a1-module-asking-and-giving-basic-information": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, "zh-a1-module-introducing-others": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding short monologues that introduce information about other people, such as name, role, nationality, and age." + ] }, "zh-a1-module-getting-to-know-the-team": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding a short conversation that asks and answers simple questions about colleagues." + ] }, "zh-a1-module-talking-about-personal-skills": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding short monologues about what people can and cannot do, such as languages and work skills." + ] }, "zh-a1-module-discussing-team-skills": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding a short conversation about who can do which tasks on a team and how a project starts." + ] } }, "blocks": { @@ -8844,8 +8851,8 @@ "title": "Certification Introduction", "intro": ["", ""] }, - "zh-a1-learn-single-finals": { - "title": "Single Finals", + "zh-a1-learn-simple-finals": { + "title": "Simple Finals", "intro": ["", ""] }, "zh-a1-learn-initials": { diff --git a/client/i18n/locales/japanese/translations.json b/client/i18n/locales/japanese/translations.json index 3d01296a6eb372..376b4e486cb34e 100644 --- a/client/i18n/locales/japanese/translations.json +++ b/client/i18n/locales/japanese/translations.json @@ -208,6 +208,7 @@ "core-certs-heading": "Recommended curriculum (still in beta):", "learn-english-heading": "開発の現場で使う英語を学ぶ:", "learn-spanish-heading": "Learn Professional Spanish:", + "learn-chinese-heading": "Learn Professional Chinese:", "professional-certs-heading": "Professional certifications:", "interview-prep-heading": "就職活動・技術面接に備える:", "legacy-curriculum-heading": "Our archived coursework:", @@ -1115,6 +1116,7 @@ "issued": "発行日", "fulltext": "<0>{{time}} <1>{{user}} <2>が <3>{{title}} <4>開発者認定講座を修了したことを証明します。 <5>(約 {{completionTime}} 時間相当)", "fulltextNoHours": "<0>{{time}} <1>{{user}} <2>が <3>{{title}} <4>開発者認定講座を修了したことを証明します。", + "fulltextLanguageExam": "<0>This certifies that <1>{{user}} <2>has successfully passed the <3>{{title}} <4>exam on {{time}} <5>demonstrating competence in grammar, listening, and reading portions of the CEFR standards for this level based on the content covered in the curriculum.", "quincy-larson-signature": "Quincy Larson の署名", "julia-liuson-signature": "Julia Liuson の署名", "project": { diff --git a/client/i18n/locales/korean/intro.json b/client/i18n/locales/korean/intro.json index e20e86f8069fb6..fc517d500ad467 100644 --- a/client/i18n/locales/korean/intro.json +++ b/client/i18n/locales/korean/intro.json @@ -1846,7 +1846,6 @@ "git": "Git", "review-relational-databases": "Relational Databases Review", "exam-relational-databases": "Relational Databases Exam", - "introduction-to-nodejs": "Introduction to Node.js", "nodejs-core-libraries": "Node.js Core Libraries", "node-package-manager": "Node Package Manager", "http-and-the-web-standards-model": "HTTP and the Web Standards Model", @@ -6697,53 +6696,39 @@ "review-python": "Python Review", "python-certification-exam": "Python Certification Exam" }, - "module-intros": { - "python-classes-and-objects": { - "note": "Coming Winter 2025", - "intro": [ - "In this module, you will learn how to work with classes, methods, attributes and properties. Then, you will build out workshops and labs to practice these concepts and take a short quiz to test your knowledge." - ] - }, - "python-object-oriented-programming": { - "note": "Coming Winter 2025", + "blocks": { + "lecture-introduction-to-python": { + "title": "Introduction to Python", "intro": [ - "In this module, you will learn about Object-oriented programming concepts like encapsulation, inheritance, polymorphism, and more. You will build out workshops and labs to practice these concepts and take a short quiz to test your knowledge." + "In these lessons, you will learn what Python is, how to set up your development environment." ] }, - "python-linear-data-structures": { - "note": "Coming Winter 2025", + "lecture-understanding-variables-and-data-types": { + "title": "Understanding Variables and Data Types", "intro": [ - "In this module, you will learn about data structures including stacks, queues, linked lists, and more. You will build out a workshop and lab to practice these concepts and take a short quiz to test your knowledge." + "In these lessons, you will learn about variables and data types in Python." ] }, - "python-algorithms": { - "note": "Coming Winter 2025", - "intro": [ - "In this module, you will learn about common algorithms including binary search, merge sort, selection sort, and more. You will build workshops and labs to practice these concepts and take a short quiz to test your knowledge." - ] + "lecture-introduction-to-python-strings": { + "title": "Introduction to Strings", + "intro": ["In these lessons, you will learn about strings in Python."] }, - "python-graphs-and-trees": { - "note": "Coming Winter 2025", + "lecture-numbers-and-mathematical-operations": { + "title": "Numbers and Mathematical Operations", "intro": [ - "In this module, you will learn about graphs in computer science as well as adjacency lists, trees, tries, and more. You will build workshops and labs to practice these concepts and take a short quiz to test your knowledge." + "In these lessons, you will learn about numbers and mathematical operations in Python." ] }, - "python-dynamic-programming": { - "note": "Coming Winter 2025", + "lecture-booleans-and-conditionals": { + "title": "Booleans and Conditionals", "intro": [ - "In this module, you will learn about dynamic programming and practice these concepts by building a fibonacci sequence lab. Then you will take a short quiz to test your knowledge." + "In these lessons, you will learn about booleans and conditionals in Python." ] }, - "python-certification-exam": { - "note": "Coming Winter 2025", - "intro": ["Pass this exam to earn your Python Certification."] - } - }, - "blocks": { - "lecture-introduction-to-python": { - "title": "Introduction to Python", + "lecture-understanding-functions-and-scope": { + "title": "Understanding Functions and Scope", "intro": [ - "In these lessons, you will learn the fundamentals of Python. You'll learn about variables, data types, operators, control flow, functions, and more." + "In these lessons, you will learn about functions and scope in Python." ] }, "workshop-caesar-cipher": { @@ -6753,7 +6738,7 @@ ] }, "lab-rpg-character": { - "title": "Build an RPG character", + "title": "Build an RPG Character", "intro": [ "In this lab you will practice basic python by building an RPG character." ] @@ -7168,14 +7153,6 @@ "lab-number-guessing-game": "Build a Number Guessing Game", "relational-databases-certification-exam": "Relational Databases Certification Exam" }, - "module-intros": { - "relational-databases-certification-exam": { - "note": "Coming Winter 2025", - "intro": [ - "Pass this exam to earn your Relational Databases Certification." - ] - } - }, "blocks": { "lecture-working-with-code-editors-and-ides": { "title": "Working with Code Editors and IDEs", @@ -7367,6 +7344,12 @@ "Review relational databases concepts to prepare for the exam." ] }, + "quiz-node-js-core-modules": { + "title": "NodeJS Core Modules Quiz", + "intro": [ + "Test what you've learned about Node.js core modules with this quiz." + ] + }, "exam-relational-databases-certification": { "title": "Relational Databases Certification Exam", "intro": [ @@ -7389,7 +7372,8 @@ "back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam" }, "modules": { - "nodejs-core-libraries": "Node.js Core Libraries", + "introduction-to-nodejs": "Introduction to Node.js", + "nodejs-core-modules": "Node.js Core Modules", "node-package-manager": "Node Package Manager", "http-and-the-web-standards-model": "HTTP and the Web Standards Model", "rest-api-and-web-services": "REST API and Web Services", @@ -7404,10 +7388,16 @@ "back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam" }, "module-intros": { - "nodejs-core-libraries": { + "introduction-to-nodejs": { "note": "Coming Late 2026", "intro": [ - "In this module, you will learn about common Node.js core libraries including the fs, os, path and more. Then you will get to practice what you have learned through workshops and labs and test your knowledge through a short quiz." + "In this module, you will learn the basics of working with Node.js." + ] + }, + "nodejs-core-modules": { + "note": "Coming Late 2026", + "intro": [ + "In this module, you will learn about common Node.js core modules including the fs, os, path and more. Then you will get to practice what you have learned through workshops and labs and test your knowledge through a short quiz." ] }, "node-package-manager": { @@ -7484,6 +7474,24 @@ } }, "blocks": { + "lecture-working-with-nodejs-and-event-driven-architecture": { + "title": "Working with NodeJS and event driven architecture", + "intro": [ + "Learn about Node.js core libraries, how to install Node.js on your computer, and the advantages and disadvantages of using Node.js on the backend." + ] + }, + "review-node-js-core-modules": { + "title": "Node JS Core Modules Review", + "intro": [ + "Review Node JS Core Modules concepts to prepare for the upcoming quiz." + ] + }, + "review-node-js-intro": { + "title": "NodeJS Intro Review", + "intro": [ + "Review the basics of NodeJS to prepare for the upcoming quiz." + ] + }, "quiz-node-js-intro": { "title": "NodeJS Intro Quiz", "intro": ["Test what you have learned about NodeJS in this quiz."] @@ -8433,6 +8441,13 @@ "In this workshop, you'll use Flexbox to build a responsive photo gallery webpage." ] }, + "lab-pricing-plans-layout": { + "title": "Design a Pricing Plans Layout Page", + "intro": [ + "In this lab, you'll use flexbox to create a common three-card tier layout.", + "You'll practice aligning elements using flexbox properties like flex, flex-grow, order, and more." + ] + }, "lab-page-of-playing-cards": { "title": "Build a Page of Playing Cards", "intro": [ @@ -8806,37 +8821,29 @@ "zh-a1-module-discussing-team-skills": "Discussing Team Skills" }, "module-intros": { - "zh-a1-module-introduction-and-certification-overview": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "zh-a1-module-initials-and-finals": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "zh-a1-module-greetings-and-basic-introductions": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "zh-a1-module-asking-and-giving-basic-information": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, "zh-a1-module-introducing-others": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding short monologues that introduce information about other people, such as name, role, nationality, and age." + ] }, "zh-a1-module-getting-to-know-the-team": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding a short conversation that asks and answers simple questions about colleagues." + ] }, "zh-a1-module-talking-about-personal-skills": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding short monologues about what people can and cannot do, such as languages and work skills." + ] }, "zh-a1-module-discussing-team-skills": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding a short conversation about who can do which tasks on a team and how a project starts." + ] } }, "blocks": { @@ -8844,8 +8851,8 @@ "title": "Certification Introduction", "intro": ["", ""] }, - "zh-a1-learn-single-finals": { - "title": "Single Finals", + "zh-a1-learn-simple-finals": { + "title": "Simple Finals", "intro": ["", ""] }, "zh-a1-learn-initials": { diff --git a/client/i18n/locales/korean/translations.json b/client/i18n/locales/korean/translations.json index 9265e4afd6c4ea..b689fca0d7da0c 100644 --- a/client/i18n/locales/korean/translations.json +++ b/client/i18n/locales/korean/translations.json @@ -208,6 +208,7 @@ "core-certs-heading": "Recommended curriculum (still in beta):", "learn-english-heading": "Learn English for Developers:", "learn-spanish-heading": "Learn Professional Spanish:", + "learn-chinese-heading": "Learn Professional Chinese:", "professional-certs-heading": "Professional certifications:", "interview-prep-heading": "Prepare for the developer interview job search:", "legacy-curriculum-heading": "Our archived coursework:", @@ -1115,6 +1116,7 @@ "issued": "Issued", "fulltext": "<0>This certifies that <1>{{user}} <2>successfully completed the <3>{{title}} <4>Developer Certification on {{time}} <5>representing approximately {{completionTime}} hours of work", "fulltextNoHours": "<0>This certifies that <1>{{user}} <2>successfully completed the <3>{{title}} <4>Developer Certification on {{time}}", + "fulltextLanguageExam": "<0>This certifies that <1>{{user}} <2>has successfully passed the <3>{{title}} <4>exam on {{time}} <5>demonstrating competence in grammar, listening, and reading portions of the CEFR standards for this level based on the content covered in the curriculum.", "quincy-larson-signature": "Quincy Larson's Signature", "julia-liuson-signature": "Julia Liuson's Signature", "project": { diff --git a/client/i18n/locales/portuguese/intro.json b/client/i18n/locales/portuguese/intro.json index 8408d1f6852e6d..dce0b4071579ec 100644 --- a/client/i18n/locales/portuguese/intro.json +++ b/client/i18n/locales/portuguese/intro.json @@ -1394,7 +1394,7 @@ } }, "a2-english-for-developers": { - "title": "Certificação de Inglês A2 para Desenvolvedores (Beta)", + "title": "Certificação A2 de Inglês para Desenvolvedores (Beta)", "intro": [ "Neste currículo de inglês para desenvolvedores, você aprenderá o essencial da comunicação em inglês. O currículo seguirá o nível A2 do Quadro de Referência Comum Europeu (CEFR). Nosso foco é no vocabulário, particularmente útil para desenvolvedores.", "A primeira metade do currículo ajudará você a se sentir confortável com a gramática e o uso do inglês. Isso dará a você diversas oportunidades de praticar. Você aprenderá o básico como se apresentar, ter conversas mais simples e discutir seu trabalho.", @@ -1724,9 +1724,9 @@ ] }, "en-b1-certification-exam": { - "title": "B1 English for Developers Certification Exam", + "title": "Exame de Certificação B1 de Inglês para Desenvolvedores", "intro": [ - "This exam is required to claim the B1 English for Developers Certification." + "Este exame é necessário para reivindicar a Certificação B1 em Inglês para Desenvolvedores." ] } } @@ -1844,7 +1844,6 @@ "git": "Git", "review-relational-databases": "Revisão de Bancos de Dados Relacionais", "exam-relational-databases": "Exame de Bancos de Dados Relacionais", - "introduction-to-nodejs": "Introdução a Node.js", "nodejs-core-libraries": "Bibliotecas Principais do Node.js", "node-package-manager": "Node Package Manager", "http-and-the-web-standards-model": "HTTP e o Modelo de Padrões Web", @@ -6781,53 +6780,39 @@ "review-python": "Revisão de Python", "python-certification-exam": "Exame de Certificação em Python" }, - "module-intros": { - "python-classes-and-objects": { - "note": "Disponível no Inverno de 2025", - "intro": [ - "Neste módulo, você aprenderá a trabalhar com classes, métodos, atributos e propriedades. Em seguida, você realizará workshops e laboratórios para praticar esses conceitos e fará um breve questionário para testar seu conhecimento." - ] - }, - "python-object-oriented-programming": { - "note": "Disponível no Inverno de 2025", + "blocks": { + "lecture-introduction-to-python": { + "title": "Introdução ao Python", "intro": [ - "Neste módulo, você aprenderá sobre conceitos de programação orientada a objetos, como encapsulamento, herança, polimorfismo e mais. Você realizará workshops e laboratórios para praticar esses conceitos e fará um breve questionário para testar seu conhecimento." + "Nestas aulas, você aprenderá o que é Python e como configurar seu ambiente de desenvolvimento." ] }, - "python-linear-data-structures": { - "note": "Disponível no Inverno de 2025", + "lecture-understanding-variables-and-data-types": { + "title": "Entendendo variáveis e tipos de dados", "intro": [ - "Neste módulo, você aprenderá sobre estruturas de dados, incluindo pilhas, filas, listas vinculadas, e mais. Você criará um workshop e laboratório para praticar esses conceitos e fará um breve questionário para testar seu conhecimento." + "Nestas aulas, você aprenderá sobre variáveis e tipos de dados em Python." ] }, - "python-algorithms": { - "note": "Disponível no Inverno de 2025", - "intro": [ - "Neste módulo, você aprender sobre algoritmos comuns, incluindo busca binária, merge sort, selection sort, e mais. Você realizará workshops e laboratórios para praticar esses conceitos e fará um breve questionário para testar seu conhecimento." - ] + "lecture-introduction-to-python-strings": { + "title": "Introdução a strings", + "intro": ["Nestas aulas, você aprenderá sobre strings em Python."] }, - "python-graphs-and-trees": { - "note": "Disponível no Inverno de 2025", + "lecture-numbers-and-mathematical-operations": { + "title": "Números e operações matemáticas", "intro": [ - "Neste módulo, você aprenderá sobre gráficos na ciência da computação, bem como listas de adjacência, árvores, tries, e mais. Você realizará workshops e laboratórios para praticar esses conceitos e fará um breve questionário para testar seu conhecimento." + "Nestas aulas, você aprenderá sobre números e operações matemáticas em Python." ] }, - "python-dynamic-programming": { - "note": "Disponível no Inverno de 2025", + "lecture-booleans-and-conditionals": { + "title": "Booleanos e condicionais", "intro": [ - "Neste módulo, você vai aprender sobre programação dinâmica e praticar estes conceitos construindo um laboratório de sequência de Fibonacci. Em seguida, você fará um curto questionário para testar seu conhecimento." + "Nestas aulas, você aprenderá sobre booleanos e condicionais em Python." ] }, - "python-certification-exam": { - "note": "Disponível no Inverno de 2025", - "intro": ["Passe neste exame para conquistar a Certificação em Python."] - } - }, - "blocks": { - "lecture-introduction-to-python": { - "title": "Introdução ao Python", + "lecture-understanding-functions-and-scope": { + "title": "Entendendo funções e escopo", "intro": [ - "Nestes ensinamentos, você aprenderá os fundamentos do Python. Você aprenderá sobre variáveis, tipos de dados, operadores, controle de fluxo, funções, e mais." + "Nestas aulas, você aprenderá sobre funções e escopo em Python." ] }, "workshop-caesar-cipher": { @@ -7256,14 +7241,6 @@ "lab-number-guessing-game": "Crie um Jogo de Adivinhação de Números", "relational-databases-certification-exam": "Exame de Certificação de Bancos de Dados Relacionais" }, - "module-intros": { - "relational-databases-certification-exam": { - "note": "Disponível no Inverno de 2025", - "intro": [ - "Passe neste exame para conquistar a sua Certificação em Bancos de Dados Relacionais." - ] - } - }, "blocks": { "lecture-working-with-code-editors-and-ides": { "title": "Trabalhando com Editores de Código e IDEs", @@ -7465,6 +7442,12 @@ "Revise os conceitos de bancos de dados relacionais para se preparar para o exame." ] }, + "quiz-node-js-core-modules": { + "title": "Questionário sobre os módulos principais do NodeJS", + "intro": [ + "Teste o que você aprendeu sobre os módulos principais do Node.js com este questionário." + ] + }, "exam-relational-databases-certification": { "title": "Exame de Certificação de Bancos de Dados Relacionais", "intro": [ @@ -7487,7 +7470,8 @@ "back-end-development-and-apis-certification-exam": "Exame de Certificação de Desenvolvimento Back-End e APIs" }, "modules": { - "nodejs-core-libraries": "Bibliotecas Centrais do Node.js", + "introduction-to-nodejs": "Introdução a Node.js", + "nodejs-core-modules": "Módulos principais do Node.js", "node-package-manager": "Gerenciador de Pacotes Node", "http-and-the-web-standards-model": "HTTP e o Modelo de Padrões da Web", "rest-api-and-web-services": "API REST e Serviços Web", @@ -7502,10 +7486,16 @@ "back-end-development-and-apis-certification-exam": "Exame de Certificação de Desenvolvimento Back-End e APIs" }, "module-intros": { - "nodejs-core-libraries": { - "note": "Próximo Lançamento: Final de 2026", + "introduction-to-nodejs": { + "note": "Disponível no final de 2026", "intro": [ - "Neste módulo, você aprenderá sobre bibliotecas principais do Node.js comuns, incluindo fs, os, path e mais. Em seguida, você praticará o que aprendeu através de workshops e laboratórios e testará seus conhecimentos através de um breve questionário." + "Neste módulo, você aprenderá o básico sobre como trabalhar com o Node.js." + ] + }, + "nodejs-core-modules": { + "note": "Disponível no final de 2026", + "intro": [ + "Neste módulo, você aprenderá sobre os módulos principais do Node.js comuns, incluindo fs, os, path e mais. Em seguida, você praticará o que aprendeu através de workshops e laboratórios e testará seus conhecimentos através de um breve questionário." ] }, "node-package-manager": { @@ -7582,9 +7572,27 @@ } }, "blocks": { + "lecture-working-with-nodejs-and-event-driven-architecture": { + "title": "Trabalhando com o NodeJS e com a arquitetura orientada a eventos", + "intro": [ + "Aprenda sobre as bibliotecas principais do Node.js, como instalar o Node.js no seu computador e as vantagens e desvantagens de usar o Node.js no backend." + ] + }, + "review-node-js-core-modules": { + "title": "Node JS Core Modules Review", + "intro": [ + "Review Node JS Core Modules concepts to prepare for the upcoming quiz." + ] + }, + "review-node-js-intro": { + "title": "Revisão introdutória de NodeJS", + "intro": [ + "Revise o básico do NodeJS para se preparar para o próximo questionário." + ] + }, "quiz-node-js-intro": { - "title": "NodeJS Intro Quiz", - "intro": ["Test what you have learned about NodeJS in this quiz."] + "title": "Questionário introdutório de NodeJS", + "intro": ["Teste o que você aprendeu sobre NodeJS neste questionário."] }, "lecture-understanding-the-http-request-response-model": { "title": "Compreendendo o Modelo de Requisição-Resposta HTTP", @@ -7593,9 +7601,9 @@ ] }, "lecture-working-with-npm-scripts": { - "title": "Working with npm Scripts", + "title": "Trabalhando com scripts do npm", "intro": [ - "Learn about npm scripts, publishing packages to the npm registry, and working with CommonJS and ES modules. These lessons cover essential Node.js development tools and module systems." + "Aprenda sobre scripts do npm, publicando pacotes no registro do npm e trabalhando com os módulos CommonJS e ES. Essas lições cobrem ferramentas essenciais de desenvolvimento de Node.js e os sistemas de módulos." ] }, "exam-back-end-development-and-apis-certification": { @@ -7647,7 +7655,7 @@ "- Uma seção de revisão com gramática chave e vocabulário." ], "chapters": { - "es-a1-chapter-welcome-to-a1-professional-spanish": "Bem-vindo ao A1 Espanhol Profissional", + "es-a1-chapter-welcome-to-a1-professional-spanish": "Bem-vindo ao Espanhol Profissional A1", "es-a1-chapter-spanish-fundamentals": "Fundamentos do Espanhol", "es-a1-chapter-greetings-and-introductions": "Saudações e Apresentações", "es-a1-chapter-basic-personal-details": "Detalhes Básicos Pessoais" @@ -8537,6 +8545,13 @@ "Neste workshop, você usará Flexbox para criar uma página da galeria de fotos responsiva." ] }, + "lab-pricing-plans-layout": { + "title": "Crie uma página de layout de planos de preços", + "intro": [ + "Neste laboratório, você usará o flexbox para criar um layout de camada comum com três cards.", + "Você praticará o alinhamento de elementos usando propriedades do flexbox, como flex, flex-grow, order e mais." + ] + }, "lab-page-of-playing-cards": { "title": "Crie uma Página de Cartas de Baralho", "intro": [ @@ -8859,7 +8874,7 @@ } }, "a2-professional-spanish": { - "title": "Certificação Profissional de Espanhol A2 (Beta)", + "title": "Certificação de Espanhol Profissional A2 (Beta)", "note": "Esta certificação está atualmente em desenvolvimento ativo. Embora não haja uma certificação disponível para esta seção no momento, uma estará disponível em breve. Enquanto isso, sinta-se à vontade para explorar os cursos que criamos abaixo.", "intro": ["Introdução ao Modelo"], "blocks": { @@ -8878,7 +8893,7 @@ } }, "a2-professional-chinese": { - "title": "Certificação Profissional de Chinês A2 (Beta)", + "title": "Certificação de Chinês Profissional A2 (Beta)", "note": "Esta certificação está atualmente em desenvolvimento ativo. Embora não haja uma certificação disponível nesta seção no momento, haverá uma disponível em breve. Enquanto isso, você está convidado a explorar os cursos que criamos abaixo.", "intro": ["Introdução ao Modelo"], "blocks": { @@ -8897,7 +8912,7 @@ } }, "a1-professional-chinese": { - "title": "Certificação Profissional de Chinês A1 (Beta)", + "title": "Certificação de Chinês Profissional A1 (Beta)", "note": "Esta certificação encontra-se em desenvolvimento ativo. No momento, estamos publicando os capítulos introdutórios. Futuros capítulos serão lançados à medida que forem desenvolvidos pela nossa equipe de design instrucional. Assim que todos os capítulos estiverem disponíveis, publicaremos o exame de certificação.", "intro": [ "Neste currículo de Chinês Profissional A1, você aprenderá o essencial da comunicação em chinês. Ele seguirá o nível A1 do Quadro Europeu Comum de Referência (CEFR). Nosso foco será o vocabulário que é particularmente útil para ambientes profissionais.", @@ -8905,9 +8920,9 @@ "Cada capítulo inclui centenas de tarefas interativas projetadas para ajudá-lo a dar seus primeiros passos no aprendizado de chinês com confiança." ], "chapters": { - "zh-a1-chapter-welcome-to-a1-professional-chinese": "Bem-vindo ao A1 Chinês Profissional", + "zh-a1-chapter-welcome-to-a1-professional-chinese": "Bem-vindo ao Chinês Profissional A1", "zh-a1-chapter-pinyin": "Pinyin", - "zh-a1-chapter-greetings-and-introductions": "Greetings and Introductions", + "zh-a1-chapter-greetings-and-introductions": "Saudações e Apresentações", "zh-a1-chapter-introducing-colleagues-and-family": "Apresentando Colegas e Família", "zh-a1-chapter-expressing-what-you-can-and-cant-do": "Expressando o que você pode e não pode fazer" }, @@ -8922,37 +8937,29 @@ "zh-a1-module-discussing-team-skills": "Discutindo Habilidades da Equipe" }, "module-intros": { - "zh-a1-module-introduction-and-certification-overview": { - "note": "Disponível no Inverno de 2025", - "intro": ["PLACEHOLDER: Escreva a introdução do módulo aqui."] - }, - "zh-a1-module-initials-and-finals": { - "note": "Disponível no Inverno de 2025", - "intro": ["PLACEHOLDER: Escreva a introdução do módulo aqui."] - }, - "zh-a1-module-greetings-and-basic-introductions": { - "note": "Disponível no Inverno de 2025", - "intro": ["PLACEHOLDER: Escreva a introdução do módulo aqui."] - }, - "zh-a1-module-asking-and-giving-basic-information": { - "note": "Disponível no Inverno de 2025", - "intro": ["PLACEHOLDER: Escreva a introdução do módulo aqui."] - }, "zh-a1-module-introducing-others": { - "note": "Disponível no Inverno de 2025", - "intro": ["PLACEHOLDER: Escreva a introdução do módulo aqui."] + "note": "Próximo Lançamento: 2026", + "intro": [ + "Neste módulo, você praticará a compreensão de monólogos curtos que introduzem informações sobre outras pessoas, como nome, função, nacionalidade e idade." + ] }, "zh-a1-module-getting-to-know-the-team": { - "note": "Disponível no Inverno de 2025", - "intro": ["PLACEHOLDER: Escreva a introdução do módulo aqui."] + "note": "Próximo Lançamento: 2026", + "intro": [ + "Neste módulo, você praticará a compreensão de uma curta conversa que pergunta e responde a perguntas simples sobre colegas." + ] }, "zh-a1-module-talking-about-personal-skills": { - "note": "Disponível no Inverno de 2025", - "intro": ["PLACEHOLDER: Escreva a introdução do módulo aqui."] + "note": "Próximo Lançamento: 2026", + "intro": [ + "Neste módulo, você praticará a compreensão de monólogos curtos sobre o que as pessoas podem e não podem fazer, como idiomas e habilidades de trabalho." + ] }, "zh-a1-module-discussing-team-skills": { - "note": "Disponível no Inverno de 2025", - "intro": ["PLACEHOLDER: Escreva a introdução do módulo aqui."] + "note": "Próximo Lançamento: 2026", + "intro": [ + "Neste módulo, você praticará a compreensão de uma conversa curta sobre quem pode fazer quais tarefas em uma equipe e como um projeto começa." + ] } }, "blocks": { @@ -8960,8 +8967,8 @@ "title": "Introdução à Certificação", "intro": ["", ""] }, - "zh-a1-learn-single-finals": { - "title": "Finais Simples", + "zh-a1-learn-simple-finals": { + "title": "Finais simples", "intro": ["", ""] }, "zh-a1-learn-initials": { @@ -8981,11 +8988,11 @@ "intro": ["", ""] }, "zh-a1-learn-understanding-greetings-and-introductions": { - "title": "Understanding Greetings and Introductions", + "title": "Compreendendo as Saudações e Apresentações", "intro": ["", ""] }, "zh-a1-practice-introducing-yourself": { - "title": "​Introducing Yourself", + "title": "​Apresentando-se", "intro": ["", ""] }, "zh-a1-review-greetings-and-introductions": { @@ -8997,7 +9004,7 @@ "intro": ["", ""] }, "zh-a1-learn-understanding-questions-and-answers": { - "title": "Understanding Questions and Answers", + "title": "Entendendo Perguntas e Respostas", "intro": ["", ""] }, "zh-a1-practice-exchanging-basic-information": { @@ -9017,7 +9024,7 @@ "intro": ["", ""] }, "zh-a1-learn-meeting-the-team": { - "title": "Meeting the Team", + "title": "Encontrando a equipe", "intro": ["", ""] }, "zh-a1-learn-a-new-colleague": { @@ -9109,11 +9116,11 @@ "intro": ["", ""] }, "zh-a1-learn-special-spelling-rules": { - "title": "Special Spelling Rules", + "title": "Regras especiais de ortografia", "intro": ["", ""] }, "zh-a1-practice-pinyin": { - "title": "Pinyin Practice", + "title": "Prática de Pinyin", "intro": ["", ""] } } diff --git a/client/i18n/locales/portuguese/translations.json b/client/i18n/locales/portuguese/translations.json index d704aa60bf242c..1d25270b1921ff 100644 --- a/client/i18n/locales/portuguese/translations.json +++ b/client/i18n/locales/portuguese/translations.json @@ -207,7 +207,8 @@ "certification-heading": "Ganhe certificações verificadas gratuitas em:", "core-certs-heading": "Currículo recomendado (ainda em beta):", "learn-english-heading": "Aprenda inglês para desenvolvedores:", - "learn-spanish-heading": "Learn Professional Spanish:", + "learn-spanish-heading": "Aprenda Espanhol Profissional:", + "learn-chinese-heading": "Aprenda chinês profissional:", "professional-certs-heading": "Certificações profissionais:", "interview-prep-heading": "Prepare-se para desenvolvedor em sua procura por emprego:", "legacy-curriculum-heading": "Nosso curso arquivado:", @@ -1085,7 +1086,7 @@ "success": "Obrigado. Sua pesquisa foi enviada." }, "classroom-mode-updated": "Atualizamos suas configurações do modo de sala de aula", - "user-fetch-error": "Unable to retrieve your user information. You can still use the site, but your progress may not be saved." + "user-fetch-error": "Não foi possível recuperar suas informações de usuário. Você ainda pode usar o site, mas seu progresso pode não ser salvo." }, "validation": { "max-characters": "Há um limite máximo de 288 caracteres, você tem {{charsLeft}} restante(s)", @@ -1115,6 +1116,7 @@ "issued": "Emitido", "fulltext": "<0>Esta é a certificação de que <1>{{user}} <2>completou com sucesso a certificação de desenvolvedor <3>{{title}} <4>do freeCodeCamp. org em {{time}}, <5>representando aproximadamente {{completionTime}} horas de curso.", "fulltextNoHours": "<0>Certificamos que <1>{{user}} <2>completou com sucesso a certificação de desenvolvedor <3>{{title}} <4>em {{time}}", + "fulltextLanguageExam": "<0>Certificamos que <1>{{user}} <2>passou no exame <3>{{title}} <4>em {{time}} <5>demonstrando competência nas partes de gramática, escuta e leitura dos padrões CEFR para este nível com base no conteúdo tratado no currículo.", "quincy-larson-signature": "Assinatura do Quincy Larson", "julia-liuson-signature": "Assinatura da Julia Liuson", "project": { diff --git a/client/i18n/locales/swahili/intro.json b/client/i18n/locales/swahili/intro.json index 3501afa07fa33d..cac6f687163e98 100644 --- a/client/i18n/locales/swahili/intro.json +++ b/client/i18n/locales/swahili/intro.json @@ -1846,7 +1846,6 @@ "git": "Git", "review-relational-databases": "Relational Databases Review", "exam-relational-databases": "Relational Databases Exam", - "introduction-to-nodejs": "Introduction to Node.js", "nodejs-core-libraries": "Node.js Core Libraries", "node-package-manager": "Node Package Manager", "http-and-the-web-standards-model": "HTTP and the Web Standards Model", @@ -6697,53 +6696,39 @@ "review-python": "Python Review", "python-certification-exam": "Python Certification Exam" }, - "module-intros": { - "python-classes-and-objects": { - "note": "Coming Winter 2025", - "intro": [ - "In this module, you will learn how to work with classes, methods, attributes and properties. Then, you will build out workshops and labs to practice these concepts and take a short quiz to test your knowledge." - ] - }, - "python-object-oriented-programming": { - "note": "Coming Winter 2025", + "blocks": { + "lecture-introduction-to-python": { + "title": "Introduction to Python", "intro": [ - "In this module, you will learn about Object-oriented programming concepts like encapsulation, inheritance, polymorphism, and more. You will build out workshops and labs to practice these concepts and take a short quiz to test your knowledge." + "In these lessons, you will learn what Python is, how to set up your development environment." ] }, - "python-linear-data-structures": { - "note": "Coming Winter 2025", + "lecture-understanding-variables-and-data-types": { + "title": "Understanding Variables and Data Types", "intro": [ - "In this module, you will learn about data structures including stacks, queues, linked lists, and more. You will build out a workshop and lab to practice these concepts and take a short quiz to test your knowledge." + "In these lessons, you will learn about variables and data types in Python." ] }, - "python-algorithms": { - "note": "Coming Winter 2025", - "intro": [ - "In this module, you will learn about common algorithms including binary search, merge sort, selection sort, and more. You will build workshops and labs to practice these concepts and take a short quiz to test your knowledge." - ] + "lecture-introduction-to-python-strings": { + "title": "Introduction to Strings", + "intro": ["In these lessons, you will learn about strings in Python."] }, - "python-graphs-and-trees": { - "note": "Coming Winter 2025", + "lecture-numbers-and-mathematical-operations": { + "title": "Numbers and Mathematical Operations", "intro": [ - "In this module, you will learn about graphs in computer science as well as adjacency lists, trees, tries, and more. You will build workshops and labs to practice these concepts and take a short quiz to test your knowledge." + "In these lessons, you will learn about numbers and mathematical operations in Python." ] }, - "python-dynamic-programming": { - "note": "Coming Winter 2025", + "lecture-booleans-and-conditionals": { + "title": "Booleans and Conditionals", "intro": [ - "In this module, you will learn about dynamic programming and practice these concepts by building a fibonacci sequence lab. Then you will take a short quiz to test your knowledge." + "In these lessons, you will learn about booleans and conditionals in Python." ] }, - "python-certification-exam": { - "note": "Coming Winter 2025", - "intro": ["Pass this exam to earn your Python Certification."] - } - }, - "blocks": { - "lecture-introduction-to-python": { - "title": "Introduction to Python", + "lecture-understanding-functions-and-scope": { + "title": "Understanding Functions and Scope", "intro": [ - "In these lessons, you will learn the fundamentals of Python. You'll learn about variables, data types, operators, control flow, functions, and more." + "In these lessons, you will learn about functions and scope in Python." ] }, "workshop-caesar-cipher": { @@ -6753,7 +6738,7 @@ ] }, "lab-rpg-character": { - "title": "Build an RPG character", + "title": "Build an RPG Character", "intro": [ "In this lab you will practice basic python by building an RPG character." ] @@ -7168,14 +7153,6 @@ "lab-number-guessing-game": "Build a Number Guessing Game", "relational-databases-certification-exam": "Relational Databases Certification Exam" }, - "module-intros": { - "relational-databases-certification-exam": { - "note": "Coming Winter 2025", - "intro": [ - "Pass this exam to earn your Relational Databases Certification." - ] - } - }, "blocks": { "lecture-working-with-code-editors-and-ides": { "title": "Working with Code Editors and IDEs", @@ -7367,6 +7344,12 @@ "Review relational databases concepts to prepare for the exam." ] }, + "quiz-node-js-core-modules": { + "title": "NodeJS Core Modules Quiz", + "intro": [ + "Test what you've learned about Node.js core modules with this quiz." + ] + }, "exam-relational-databases-certification": { "title": "Relational Databases Certification Exam", "intro": [ @@ -7389,7 +7372,8 @@ "back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam" }, "modules": { - "nodejs-core-libraries": "Node.js Core Libraries", + "introduction-to-nodejs": "Introduction to Node.js", + "nodejs-core-modules": "Node.js Core Modules", "node-package-manager": "Node Package Manager", "http-and-the-web-standards-model": "HTTP and the Web Standards Model", "rest-api-and-web-services": "REST API and Web Services", @@ -7404,10 +7388,16 @@ "back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam" }, "module-intros": { - "nodejs-core-libraries": { + "introduction-to-nodejs": { "note": "Coming Late 2026", "intro": [ - "In this module, you will learn about common Node.js core libraries including the fs, os, path and more. Then you will get to practice what you have learned through workshops and labs and test your knowledge through a short quiz." + "In this module, you will learn the basics of working with Node.js." + ] + }, + "nodejs-core-modules": { + "note": "Coming Late 2026", + "intro": [ + "In this module, you will learn about common Node.js core modules including the fs, os, path and more. Then you will get to practice what you have learned through workshops and labs and test your knowledge through a short quiz." ] }, "node-package-manager": { @@ -7484,6 +7474,24 @@ } }, "blocks": { + "lecture-working-with-nodejs-and-event-driven-architecture": { + "title": "Working with NodeJS and event driven architecture", + "intro": [ + "Learn about Node.js core libraries, how to install Node.js on your computer, and the advantages and disadvantages of using Node.js on the backend." + ] + }, + "review-node-js-core-modules": { + "title": "Node JS Core Modules Review", + "intro": [ + "Review Node JS Core Modules concepts to prepare for the upcoming quiz." + ] + }, + "review-node-js-intro": { + "title": "NodeJS Intro Review", + "intro": [ + "Review the basics of NodeJS to prepare for the upcoming quiz." + ] + }, "quiz-node-js-intro": { "title": "NodeJS Intro Quiz", "intro": ["Test what you have learned about NodeJS in this quiz."] @@ -8433,6 +8441,13 @@ "In this workshop, you'll use Flexbox to build a responsive photo gallery webpage." ] }, + "lab-pricing-plans-layout": { + "title": "Design a Pricing Plans Layout Page", + "intro": [ + "In this lab, you'll use flexbox to create a common three-card tier layout.", + "You'll practice aligning elements using flexbox properties like flex, flex-grow, order, and more." + ] + }, "lab-page-of-playing-cards": { "title": "Build a Page of Playing Cards", "intro": [ @@ -8806,37 +8821,29 @@ "zh-a1-module-discussing-team-skills": "Discussing Team Skills" }, "module-intros": { - "zh-a1-module-introduction-and-certification-overview": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "zh-a1-module-initials-and-finals": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "zh-a1-module-greetings-and-basic-introductions": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "zh-a1-module-asking-and-giving-basic-information": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, "zh-a1-module-introducing-others": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding short monologues that introduce information about other people, such as name, role, nationality, and age." + ] }, "zh-a1-module-getting-to-know-the-team": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding a short conversation that asks and answers simple questions about colleagues." + ] }, "zh-a1-module-talking-about-personal-skills": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding short monologues about what people can and cannot do, such as languages and work skills." + ] }, "zh-a1-module-discussing-team-skills": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding a short conversation about who can do which tasks on a team and how a project starts." + ] } }, "blocks": { @@ -8844,8 +8851,8 @@ "title": "Certification Introduction", "intro": ["", ""] }, - "zh-a1-learn-single-finals": { - "title": "Single Finals", + "zh-a1-learn-simple-finals": { + "title": "Simple Finals", "intro": ["", ""] }, "zh-a1-learn-initials": { diff --git a/client/i18n/locales/swahili/translations.json b/client/i18n/locales/swahili/translations.json index efa3e883c6b1c2..2df7c786a77fbb 100644 --- a/client/i18n/locales/swahili/translations.json +++ b/client/i18n/locales/swahili/translations.json @@ -208,6 +208,7 @@ "core-certs-heading": "Recommended curriculum (still in beta):", "learn-english-heading": "Learn English for Developers:", "learn-spanish-heading": "Learn Professional Spanish:", + "learn-chinese-heading": "Learn Professional Chinese:", "professional-certs-heading": "Professional certifications:", "interview-prep-heading": "Prepare for the developer interview job search:", "legacy-curriculum-heading": "Our archived coursework:", @@ -1115,6 +1116,7 @@ "issued": "Iliyotolewa", "fulltext": "<0>This certifies that <1>{{user}} <2>successfully completed the <3>{{title}} <4>Developer Certification on {{time}} <5>representing approximately {{completionTime}} hours of work", "fulltextNoHours": "<0>This certifies that <1>{{user}} <2>successfully completed the <3>{{title}} <4>Developer Certification on {{time}}", + "fulltextLanguageExam": "<0>This certifies that <1>{{user}} <2>has successfully passed the <3>{{title}} <4>exam on {{time}} <5>demonstrating competence in grammar, listening, and reading portions of the CEFR standards for this level based on the content covered in the curriculum.", "quincy-larson-signature": "Quincy Larson's Signature", "julia-liuson-signature": "Julia Liuson's Signature", "project": { diff --git a/client/i18n/locales/ukrainian/intro.json b/client/i18n/locales/ukrainian/intro.json index 4030435b2a74b9..4215257d2df50e 100644 --- a/client/i18n/locales/ukrainian/intro.json +++ b/client/i18n/locales/ukrainian/intro.json @@ -1832,7 +1832,6 @@ "git": "Git", "review-relational-databases": "Relational Databases Review", "exam-relational-databases": "Relational Databases Exam", - "introduction-to-nodejs": "Вступ до Node.js", "nodejs-core-libraries": "Основні бібліотеки Node.js", "node-package-manager": "Node Package Manager", "http-and-the-web-standards-model": "HTTP та модель вебстандартів", @@ -6683,53 +6682,39 @@ "review-python": "Python Review", "python-certification-exam": "Python Certification Exam" }, - "module-intros": { - "python-classes-and-objects": { - "note": "Coming Winter 2025", + "blocks": { + "lecture-introduction-to-python": { + "title": "Introduction to Python", "intro": [ - "In this module, you will learn how to work with classes, methods, attributes and properties. Then, you will build out workshops and labs to practice these concepts and take a short quiz to test your knowledge." + "In these lessons, you will learn what Python is, how to set up your development environment." ] }, - "python-object-oriented-programming": { - "note": "Coming Winter 2025", + "lecture-understanding-variables-and-data-types": { + "title": "Understanding Variables and Data Types", "intro": [ - "In this module, you will learn about Object-oriented programming concepts like encapsulation, inheritance, polymorphism, and more. You will build out workshops and labs to practice these concepts and take a short quiz to test your knowledge." + "In these lessons, you will learn about variables and data types in Python." ] }, - "python-linear-data-structures": { - "note": "Coming Winter 2025", - "intro": [ - "In this module, you will learn about data structures including stacks, queues, linked lists, and more. You will build out a workshop and lab to practice these concepts and take a short quiz to test your knowledge." - ] + "lecture-introduction-to-python-strings": { + "title": "Introduction to Strings", + "intro": ["In these lessons, you will learn about strings in Python."] }, - "python-algorithms": { - "note": "Coming Winter 2025", + "lecture-numbers-and-mathematical-operations": { + "title": "Numbers and Mathematical Operations", "intro": [ - "In this module, you will learn about common algorithms including binary search, merge sort, selection sort, and more. You will build workshops and labs to practice these concepts and take a short quiz to test your knowledge." + "In these lessons, you will learn about numbers and mathematical operations in Python." ] }, - "python-graphs-and-trees": { - "note": "Coming Winter 2025", + "lecture-booleans-and-conditionals": { + "title": "Booleans and Conditionals", "intro": [ - "In this module, you will learn about graphs in computer science as well as adjacency lists, trees, tries, and more. You will build workshops and labs to practice these concepts and take a short quiz to test your knowledge." + "In these lessons, you will learn about booleans and conditionals in Python." ] }, - "python-dynamic-programming": { - "note": "Coming Winter 2025", + "lecture-understanding-functions-and-scope": { + "title": "Understanding Functions and Scope", "intro": [ - "In this module, you will learn about dynamic programming and practice these concepts by building a fibonacci sequence lab. Then you will take a short quiz to test your knowledge." - ] - }, - "python-certification-exam": { - "note": "Coming Winter 2025", - "intro": ["Pass this exam to earn your Python Certification."] - } - }, - "blocks": { - "lecture-introduction-to-python": { - "title": "Introduction to Python", - "intro": [ - "In these lessons, you will learn the fundamentals of Python. You'll learn about variables, data types, operators, control flow, functions, and more." + "In these lessons, you will learn about functions and scope in Python." ] }, "workshop-caesar-cipher": { @@ -6739,7 +6724,7 @@ ] }, "lab-rpg-character": { - "title": "Build an RPG character", + "title": "Build an RPG Character", "intro": [ "In this lab you will practice basic python by building an RPG character." ] @@ -7154,14 +7139,6 @@ "lab-number-guessing-game": "Build a Number Guessing Game", "relational-databases-certification-exam": "Relational Databases Certification Exam" }, - "module-intros": { - "relational-databases-certification-exam": { - "note": "Coming Winter 2025", - "intro": [ - "Pass this exam to earn your Relational Databases Certification." - ] - } - }, "blocks": { "lecture-working-with-code-editors-and-ides": { "title": "Working with Code Editors and IDEs", @@ -7353,6 +7330,12 @@ "Review relational databases concepts to prepare for the exam." ] }, + "quiz-node-js-core-modules": { + "title": "NodeJS Core Modules Quiz", + "intro": [ + "Test what you've learned about Node.js core modules with this quiz." + ] + }, "exam-relational-databases-certification": { "title": "Relational Databases Certification Exam", "intro": [ @@ -7375,7 +7358,8 @@ "back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam" }, "modules": { - "nodejs-core-libraries": "Node.js Core Libraries", + "introduction-to-nodejs": "Introduction to Node.js", + "nodejs-core-modules": "Node.js Core Modules", "node-package-manager": "Node Package Manager", "http-and-the-web-standards-model": "HTTP and the Web Standards Model", "rest-api-and-web-services": "REST API and Web Services", @@ -7390,10 +7374,16 @@ "back-end-development-and-apis-certification-exam": "Back End Development and APIs Certification Exam" }, "module-intros": { - "nodejs-core-libraries": { + "introduction-to-nodejs": { "note": "Coming Late 2026", "intro": [ - "In this module, you will learn about common Node.js core libraries including the fs, os, path and more. Then you will get to practice what you have learned through workshops and labs and test your knowledge through a short quiz." + "In this module, you will learn the basics of working with Node.js." + ] + }, + "nodejs-core-modules": { + "note": "Coming Late 2026", + "intro": [ + "In this module, you will learn about common Node.js core modules including the fs, os, path and more. Then you will get to practice what you have learned through workshops and labs and test your knowledge through a short quiz." ] }, "node-package-manager": { @@ -7470,6 +7460,24 @@ } }, "blocks": { + "lecture-working-with-nodejs-and-event-driven-architecture": { + "title": "Working with NodeJS and event driven architecture", + "intro": [ + "Learn about Node.js core libraries, how to install Node.js on your computer, and the advantages and disadvantages of using Node.js on the backend." + ] + }, + "review-node-js-core-modules": { + "title": "Node JS Core Modules Review", + "intro": [ + "Review Node JS Core Modules concepts to prepare for the upcoming quiz." + ] + }, + "review-node-js-intro": { + "title": "NodeJS Intro Review", + "intro": [ + "Review the basics of NodeJS to prepare for the upcoming quiz." + ] + }, "quiz-node-js-intro": { "title": "NodeJS Intro Quiz", "intro": ["Test what you have learned about NodeJS in this quiz."] @@ -8419,6 +8427,13 @@ "In this workshop, you'll use Flexbox to build a responsive photo gallery webpage." ] }, + "lab-pricing-plans-layout": { + "title": "Design a Pricing Plans Layout Page", + "intro": [ + "In this lab, you'll use flexbox to create a common three-card tier layout.", + "You'll practice aligning elements using flexbox properties like flex, flex-grow, order, and more." + ] + }, "lab-page-of-playing-cards": { "title": "Build a Page of Playing Cards", "intro": [ @@ -8792,37 +8807,29 @@ "zh-a1-module-discussing-team-skills": "Discussing Team Skills" }, "module-intros": { - "zh-a1-module-introduction-and-certification-overview": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "zh-a1-module-initials-and-finals": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "zh-a1-module-greetings-and-basic-introductions": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, - "zh-a1-module-asking-and-giving-basic-information": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] - }, "zh-a1-module-introducing-others": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding short monologues that introduce information about other people, such as name, role, nationality, and age." + ] }, "zh-a1-module-getting-to-know-the-team": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding a short conversation that asks and answers simple questions about colleagues." + ] }, "zh-a1-module-talking-about-personal-skills": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding short monologues about what people can and cannot do, such as languages and work skills." + ] }, "zh-a1-module-discussing-team-skills": { - "note": "Coming Winter 2025", - "intro": ["PLACEHOLDER: Write the module intro here."] + "note": "Coming 2026", + "intro": [ + "In this module, you will practice understanding a short conversation about who can do which tasks on a team and how a project starts." + ] } }, "blocks": { @@ -8830,8 +8837,8 @@ "title": "Certification Introduction", "intro": ["", ""] }, - "zh-a1-learn-single-finals": { - "title": "Single Finals", + "zh-a1-learn-simple-finals": { + "title": "Simple Finals", "intro": ["", ""] }, "zh-a1-learn-initials": { diff --git a/client/i18n/locales/ukrainian/translations.json b/client/i18n/locales/ukrainian/translations.json index 6304fc4fd19cb6..db0256947f14a6 100644 --- a/client/i18n/locales/ukrainian/translations.json +++ b/client/i18n/locales/ukrainian/translations.json @@ -208,6 +208,7 @@ "core-certs-heading": "Рекомендована програма (бета-версія):", "learn-english-heading": "Вивчайте англійську мову для розробників:", "learn-spanish-heading": "Learn Professional Spanish:", + "learn-chinese-heading": "Learn Professional Chinese:", "professional-certs-heading": "Професійні сертифікації:", "interview-prep-heading": "Підготуйтесь до посади розробника:", "legacy-curriculum-heading": "Архівовані курси:", @@ -1115,6 +1116,7 @@ "issued": "Виданий", "fulltext": "<0>Цей сертифікат засвідчує, що <1>{{user}} <2>успішно закінчив(-ла) сертифікацію <3>«{{title}}» <4>{{time}}, <5>виконавши приблизно {{completionTime}} год навчання", "fulltextNoHours": "<0>Цей сертифікат підтверджує, що <1>{{user}} <2>успішно завершив(-ла) сертифікацію <3>{{title}} <4>{{time}}", + "fulltextLanguageExam": "<0>This certifies that <1>{{user}} <2>has successfully passed the <3>{{title}} <4>exam on {{time}} <5>demonstrating competence in grammar, listening, and reading portions of the CEFR standards for this level based on the content covered in the curriculum.", "quincy-larson-signature": "Підпис Квінсі Ларсона", "julia-liuson-signature": "Підпис Джулії Люсон", "project": { diff --git a/client/src/components/landing/components/landing-top.tsx b/client/src/components/landing/components/landing-top.tsx index 851aaef46a51f3..38782959c06ecd 100644 --- a/client/src/components/landing/components/landing-top.tsx +++ b/client/src/components/landing/components/landing-top.tsx @@ -28,7 +28,7 @@ function LandingTop(): JSX.Element { fluid={true} className='landing-top lading-top-c gradient-container' > - + diff --git a/client/src/components/landing/landing.css b/client/src/components/landing/landing.css index 4124e4f85b929f..5246b7820cc6fe 100644 --- a/client/src/components/landing/landing.css +++ b/client/src/components/landing/landing.css @@ -392,7 +392,6 @@ figcaption.caption { display: flex; flex-direction: column; justify-content: center; - width: 100%; gap: 20px; } @@ -406,12 +405,17 @@ figcaption.caption { .landing-top-two-column { flex-direction: row; align-items: center; + width: min(100%, 1300px); + margin-inline: auto; } .landing-top-two-column .landing-top-left { flex: 0 0 50%; max-width: 50%; z-index: 1; + padding-left: 0px; + padding-right: 15px; + margin-left: -15px; } .landing-top-two-column .landing-top-right { @@ -419,11 +423,17 @@ figcaption.caption { min-width: 0; overflow: visible; } + + .certification-section, + .faq-section { + width: min(100%, 1300px); + margin-inline: auto; + } } .landing-top .landing-top-two-column figure, .landing-top .landing-top-two-column figure img { - margin-left: -100px; + margin-left: -120px; margin-top: 0px; height: 550px; width: 850px; diff --git a/client/src/components/profile/components/utils/certification.ts b/client/src/components/profile/components/utils/certification.ts index 016e619ce5d2fe..08489415187f11 100644 --- a/client/src/components/profile/components/utils/certification.ts +++ b/client/src/components/profile/components/utils/certification.ts @@ -4,6 +4,7 @@ import { User } from '../../../../redux/prop-types'; export const getCertifications = (user: User) => { const { isA2EnglishCert, + isB1EnglishCert, isRespWebDesignCert, isRespWebDesignCertV9, is2018DataVisCert, @@ -32,6 +33,7 @@ export const getCertifications = (user: User) => { return { hasModernCert: isA2EnglishCert || + isB1EnglishCert || isRespWebDesignCertV9 || isJavascriptCertV9 || isFoundationalCSharpCertV8 || @@ -63,6 +65,11 @@ export const getCertifications = (user: User) => { title: 'A2 English for Developers Certification (Beta)', certSlug: Certification.A2English }, + { + show: isB1EnglishCert, + title: 'B1 English for Developers Certification (Beta)', + certSlug: Certification.B1English + }, { show: isRespWebDesignCertV9, title: 'Responsive Web Design Certification', diff --git a/client/src/components/profile/profile.test.tsx b/client/src/components/profile/profile.test.tsx index 9e1b9a0c9f5b31..02ec8a7b3c8ff7 100644 --- a/client/src/components/profile/profile.test.tsx +++ b/client/src/components/profile/profile.test.tsx @@ -55,6 +55,7 @@ const userProps = { isDonating: false, is2018DataVisCert: true, isA2EnglishCert: true, + isB1EnglishCert: true, isApisMicroservicesCert: true, isBackEndCert: true, isDataVisCert: true, diff --git a/client/src/pages/learn/back-end-development-and-apis-v9/quiz-node-js-core-modules/index.md b/client/src/pages/learn/back-end-development-and-apis-v9/quiz-node-js-core-modules/index.md new file mode 100644 index 00000000000000..c41c634b3e89db --- /dev/null +++ b/client/src/pages/learn/back-end-development-and-apis-v9/quiz-node-js-core-modules/index.md @@ -0,0 +1,9 @@ +--- +title: Introduction to the NodeJS Core Modules Quiz +block: quiz-node-js-core-modules +superBlock: back-end-development-and-apis-v9 +--- + +## Introduction to the NodeJS Core Modules Quiz + +This page is for the NodeJS Core Modules Quiz diff --git a/client/src/pages/learn/back-end-development-and-apis-v9/review-node-js-core-modules/index.md b/client/src/pages/learn/back-end-development-and-apis-v9/review-node-js-core-modules/index.md new file mode 100644 index 00000000000000..6d06cf9cf466a5 --- /dev/null +++ b/client/src/pages/learn/back-end-development-and-apis-v9/review-node-js-core-modules/index.md @@ -0,0 +1,9 @@ +--- +title: Introduction to the Node.js Core Modules Review +block: review-node-js-core-modules +superBlock: back-end-development-and-apis-v9 +--- + +## Introduction to the Node.js Core Modules Review + +This page is for the Node.js Core Modules Review diff --git a/client/src/pages/learn/responsive-web-design-v9/lab-debug-donation-form/index.md b/client/src/pages/learn/responsive-web-design-v9/lab-debug-donation-form/index.md new file mode 100644 index 00000000000000..65080575c171cc --- /dev/null +++ b/client/src/pages/learn/responsive-web-design-v9/lab-debug-donation-form/index.md @@ -0,0 +1,9 @@ +--- +title: Introduction to the Debug a Donation Form +block: lab-debug-donation-form +superBlock: responsive-web-design-v9 +--- + +## Introduction to the Debug a Donation Form + +In this lab you will debug a donation form by fixing HTML syntax errors and improving accessibility. diff --git a/client/src/pages/learn/responsive-web-design-v9/workshop-html-video-player/index.md b/client/src/pages/learn/responsive-web-design-v9/workshop-html-video-player/index.md new file mode 100644 index 00000000000000..52d6eb1f28d2d7 --- /dev/null +++ b/client/src/pages/learn/responsive-web-design-v9/workshop-html-video-player/index.md @@ -0,0 +1,9 @@ +--- +title: Introduction to the Build an HTML Video Player +block: workshop-html-video-player +superBlock: responsive-web-design-v9 +--- + +## Introduction to the Build an HTML Video Player + +In this workshop, you'll use HTML to create a basic video player. This project will cover the `video` element, the video player setup, and more. diff --git a/client/src/templates/Challenges/components/challenge-transcript.test.tsx b/client/src/templates/Challenges/components/challenge-transcript.test.tsx index 644e998dec2d38..588af47d0e5592 100644 --- a/client/src/templates/Challenges/components/challenge-transcript.test.tsx +++ b/client/src/templates/Challenges/components/challenge-transcript.test.tsx @@ -58,4 +58,43 @@ describe('', () => { expect(setSpy).not.toHaveBeenCalled(); setSpy.mockRestore(); }); + + it('should render the transcript as a table when isDialogue is true', () => { + store.set('fcc-transcript-expanded', true); + + render( + + ); + const table = screen.getByRole('table'); + expect(table).toBeVisible(); + expect(screen.getByRole('cell', { name: 'Hello' })).toBeVisible(); + expect(screen.getByRole('cell', { name: 'World' })).toBeVisible(); + }); + + it('should render the transcript with PrismFormatted when isDialogue is false', () => { + store.set('fcc-transcript-expanded', true); + + render( + + ); + + const preElement = screen.getByRole('region'); + expect(preElement).toBeVisible(); + expect(preElement.tagName).toBe('PRE'); + + // eslint-disable-next-line testing-library/no-node-access + const codeElement = preElement.querySelector('code'); + expect(codeElement).toBeInTheDocument(); + expect(preElement).toHaveTextContent('console.log("hi")'); + }); }); diff --git a/client/src/templates/Challenges/components/challenge-transcript.tsx b/client/src/templates/Challenges/components/challenge-transcript.tsx index 0ee53c12550b5c..d4670084bf43f4 100644 --- a/client/src/templates/Challenges/components/challenge-transcript.tsx +++ b/client/src/templates/Challenges/components/challenge-transcript.tsx @@ -3,16 +3,19 @@ import { useTranslation } from 'react-i18next'; import { Spacer } from '@freecodecamp/ui'; import store from 'store'; +import PrismFormatted from './prism-formatted'; import './challenge-transcript.css'; interface ChallengeTranscriptProps { transcript: string; shouldPersistExpanded?: boolean; + isDialogue?: boolean; } function ChallengeTranscript({ transcript, - shouldPersistExpanded + shouldPersistExpanded, + isDialogue }: ChallengeTranscriptProps): JSX.Element { const { t } = useTranslation(); @@ -42,20 +45,24 @@ function ChallengeTranscript({ {t('learn.transcript')} - - - {transcript - .split('\n') - .filter(line => line.trim() !== '') - .map((line, idx) => { - return ( - - - ); - })} - -
-
+ {isDialogue ? ( + + + {transcript + .split('\n') + .filter(line => line.trim() !== '') + .map((line, idx) => { + return ( + + + ); + })} + +
+
+ ) : ( + + )} diff --git a/client/src/templates/Challenges/components/scene/scene.tsx b/client/src/templates/Challenges/components/scene/scene.tsx index 7db9ef3ce37d91..c50ac90c3006e6 100644 --- a/client/src/templates/Challenges/components/scene/scene.tsx +++ b/client/src/templates/Challenges/components/scene/scene.tsx @@ -437,7 +437,7 @@ export function Scene({ )} - + ); diff --git a/client/src/templates/Challenges/fill-in-the-blank/show.tsx b/client/src/templates/Challenges/fill-in-the-blank/show.tsx index f761487ebe2921..014700cd0f44dd 100644 --- a/client/src/templates/Challenges/fill-in-the-blank/show.tsx +++ b/client/src/templates/Challenges/fill-in-the-blank/show.tsx @@ -279,7 +279,12 @@ const ShowFillInTheBlank = ({ {scene && } - {transcript && } + {transcript && ( + + )} {instructions && ( <> diff --git a/curriculum/challenges/english/blocks/daily-coding-challenges-javascript/691f7773cddba1caf1bf5ecb.md b/curriculum/challenges/english/blocks/daily-coding-challenges-javascript/691f7773cddba1caf1bf5ecb.md index d4964999b71d2e..a9f3cd2f58bbcb 100644 --- a/curriculum/challenges/english/blocks/daily-coding-challenges-javascript/691f7773cddba1caf1bf5ecb.md +++ b/curriculum/challenges/english/blocks/daily-coding-challenges-javascript/691f7773cddba1caf1bf5ecb.md @@ -38,6 +38,12 @@ assert.deepEqual(purgeMostFrequent(["red", "blue", "green", "red", "blue", "gree assert.deepEqual(purgeMostFrequent([5, 5, 5, 5]), []); ``` +`purgeMostFrequent([10, 12, 7, 3, 7, 7, 12, 12])` should return `[10, 3]`. + +```js +assert.deepEqual(purgeMostFrequent([10, 12, 7, 3, 7, 7, 12, 12]), [10, 3]); +``` + # --seed-- ## --seed-contents-- diff --git a/curriculum/challenges/english/blocks/daily-coding-challenges-javascript/69272dcf1c24b44fd79137c3.md b/curriculum/challenges/english/blocks/daily-coding-challenges-javascript/69272dcf1c24b44fd79137c3.md index 1d9e6db93fe84d..d72e73541fdf4d 100644 --- a/curriculum/challenges/english/blocks/daily-coding-challenges-javascript/69272dcf1c24b44fd79137c3.md +++ b/curriculum/challenges/english/blocks/daily-coding-challenges-javascript/69272dcf1c24b44fd79137c3.md @@ -40,7 +40,7 @@ assert.equal(toScreamingSnakeCase("UserPassword"), "USER_PASSWORD"); `toScreamingSnakeCase("user_id")` should return `"USER_ID"`. ```js -assert.equal(toScreamingSnakeCase("userEmail"), "USER_EMAIL"); +assert.equal(toScreamingSnakeCase("user_id"), "USER_ID"); ``` `toScreamingSnakeCase("user-address")` should return `"USER_ADDRESS"`. diff --git a/curriculum/challenges/english/blocks/daily-coding-challenges-javascript/69272dcf1c24b44fd79137c6.md b/curriculum/challenges/english/blocks/daily-coding-challenges-javascript/69272dcf1c24b44fd79137c6.md index d23917a95bb645..6398b5ab1c9ed0 100644 --- a/curriculum/challenges/english/blocks/daily-coding-challenges-javascript/69272dcf1c24b44fd79137c6.md +++ b/curriculum/challenges/english/blocks/daily-coding-challenges-javascript/69272dcf1c24b44fd79137c6.md @@ -19,31 +19,31 @@ Note: The console may not display HTML tags in strings when logging messages. Ch # --hints-- -`parseItalic("*This is italic*")` should return `"This is italic"`. +`parseItalics("*This is italic*")` should return `"This is italic"`. ```js assert.equal(parseItalics("*This is italic*"), "This is italic"); ``` -`parseItalic("_This is also italic_")` should return `"This is also italic"`. +`parseItalics("_This is also italic_")` should return `"This is also italic"`. ```js assert.equal(parseItalics("_This is also italic_"), "This is also italic"); ``` -`parseItalic("*This is not italic *")` should return `"*This is not italic *"`. +`parseItalics("*This is not italic *")` should return `"*This is not italic *"`. ```js assert.equal(parseItalics("*This is not italic *"), "*This is not italic *"); ``` -`parseItalic("_ This is also not italic_")` should return `"_ This is also not italic_"`. +`parseItalics("_ This is also not italic_")` should return `"_ This is also not italic_"`. ```js assert.equal(parseItalics("_ This is also not italic_"), "_ This is also not italic_"); ``` -`parseItalic("The *quick* brown fox _jumps_ over the *lazy* dog.")` should return `"The quick brown fox jumps over the lazy dog."`. +`parseItalics("The *quick* brown fox _jumps_ over the *lazy* dog.")` should return `"The quick brown fox jumps over the lazy dog."`. ```js assert.equal(parseItalics("The *quick* brown fox _jumps_ over the *lazy* dog."), "The quick brown fox jumps over the lazy dog."); diff --git a/curriculum/challenges/english/blocks/daily-coding-challenges-javascript/69306364df283fcaff2e1ad7.md b/curriculum/challenges/english/blocks/daily-coding-challenges-javascript/69306364df283fcaff2e1ad7.md index 474f934c3fd813..11baf2479edbcd 100644 --- a/curriculum/challenges/english/blocks/daily-coding-challenges-javascript/69306364df283fcaff2e1ad7.md +++ b/curriculum/challenges/english/blocks/daily-coding-challenges-javascript/69306364df283fcaff2e1ad7.md @@ -15,7 +15,7 @@ In the given matrix: - An `"R"` is a seat occupied by a right-handed person. - An `"L"` is a seat occupied by a left-handed person. -- An `"U"` is an unoccupied seat. +- A `"U"` is an unoccupied seat. - Only unoccupied seats are available to sit at. - The seats in the top row are facing "down", and the seats in the bottom row are facing "up" (like a table), so left and right are relative to the seat's orientation. - Corner seats only have one seat next to them. diff --git a/curriculum/challenges/english/blocks/daily-coding-challenges-javascript/69306364df283fcaff2e1ad9.md b/curriculum/challenges/english/blocks/daily-coding-challenges-javascript/69306364df283fcaff2e1ad9.md index c4cf44b1115203..4fc2a3e68b42a0 100644 --- a/curriculum/challenges/english/blocks/daily-coding-challenges-javascript/69306364df283fcaff2e1ad9.md +++ b/curriculum/challenges/english/blocks/daily-coding-challenges-javascript/69306364df283fcaff2e1ad9.md @@ -9,7 +9,7 @@ dashedName: challenge-148 Given an array with four numbers representing the tire pressures in psi of the four tires in your vehicle, and another array of two numbers representing the minimum and maximum pressure for your tires in bar, return an array of four strings describing each tire's status. -- 1 bar equal 14.5038 psi. +- 1 bar equals 14.5038 psi. Return an array with the following values for each tire: diff --git a/curriculum/challenges/english/blocks/daily-coding-challenges-javascript/6939b873185d8e00d453563b.md b/curriculum/challenges/english/blocks/daily-coding-challenges-javascript/6939b873185d8e00d453563b.md index 9132abc2fff89f..9d2daaf9adf6aa 100644 --- a/curriculum/challenges/english/blocks/daily-coding-challenges-javascript/6939b873185d8e00d453563b.md +++ b/curriculum/challenges/english/blocks/daily-coding-challenges-javascript/6939b873185d8e00d453563b.md @@ -7,7 +7,7 @@ dashedName: challenge-156 # --description-- -Given a positive integer, return `"Odd"` if it's an odd number, and `"Even"` is it's even. +Given a positive integer, return `"Odd"` if it's an odd number, and `"Even"` if it's even. # --hints-- diff --git a/curriculum/challenges/english/blocks/daily-coding-challenges-python/691f7773cddba1caf1bf5ecb.md b/curriculum/challenges/english/blocks/daily-coding-challenges-python/691f7773cddba1caf1bf5ecb.md index 59404db1f28134..a7001ebf5b0615 100644 --- a/curriculum/challenges/english/blocks/daily-coding-challenges-python/691f7773cddba1caf1bf5ecb.md +++ b/curriculum/challenges/english/blocks/daily-coding-challenges-python/691f7773cddba1caf1bf5ecb.md @@ -50,6 +50,15 @@ TestCase().assertEqual(purge_most_frequent([5, 5, 5, 5]), [])`) }}) ``` +`purgeMostFrequent([10, 12, 7, 3, 7, 7, 12, 12])` should return `[10, 3]`. + +```js +({test: () => { runPython(` +from unittest import TestCase +TestCase().assertEqual(purge_most_frequent([10, 12, 7, 3, 7, 7, 12, 12]), [10, 3])`) +}}) +``` + # --seed-- ## --seed-contents-- diff --git a/curriculum/challenges/english/blocks/daily-coding-challenges-python/69306364df283fcaff2e1ad7.md b/curriculum/challenges/english/blocks/daily-coding-challenges-python/69306364df283fcaff2e1ad7.md index 7b521e34eda4ff..a2ba74a7c8c66b 100644 --- a/curriculum/challenges/english/blocks/daily-coding-challenges-python/69306364df283fcaff2e1ad7.md +++ b/curriculum/challenges/english/blocks/daily-coding-challenges-python/69306364df283fcaff2e1ad7.md @@ -15,7 +15,7 @@ In the given matrix: - An `"R"` is a seat occupied by a right-handed person. - An `"L"` is a seat occupied by a left-handed person. -- An `"U"` is an unoccupied seat. +- A `"U"` is an unoccupied seat. - Only unoccupied seats are available to sit at. - The seats in the top row are facing "down", and the seats in the bottom row are facing "up" (like a table), so left and right are relative to the seat's orientation. - Corner seats only have one seat next to them. diff --git a/curriculum/challenges/english/blocks/daily-coding-challenges-python/69306364df283fcaff2e1ad9.md b/curriculum/challenges/english/blocks/daily-coding-challenges-python/69306364df283fcaff2e1ad9.md index 5cfc6c3ff508e0..13f37ffa5bf6ce 100644 --- a/curriculum/challenges/english/blocks/daily-coding-challenges-python/69306364df283fcaff2e1ad9.md +++ b/curriculum/challenges/english/blocks/daily-coding-challenges-python/69306364df283fcaff2e1ad9.md @@ -9,7 +9,7 @@ dashedName: challenge-148 Given an array with four numbers representing the tire pressures in psi of the four tires in your vehicle, and another array of two numbers representing the minimum and maximum pressure for your tires in bar, return an array of four strings describing each tire's status. -- 1 bar equal 14.5038 psi. +- 1 bar equals 14.5038 psi. Return an array with the following values for each tire: diff --git a/curriculum/challenges/english/blocks/daily-coding-challenges-python/6939b873185d8e00d453563b.md b/curriculum/challenges/english/blocks/daily-coding-challenges-python/6939b873185d8e00d453563b.md index 43e62d122abc34..fddb7047894460 100644 --- a/curriculum/challenges/english/blocks/daily-coding-challenges-python/6939b873185d8e00d453563b.md +++ b/curriculum/challenges/english/blocks/daily-coding-challenges-python/6939b873185d8e00d453563b.md @@ -7,7 +7,7 @@ dashedName: challenge-156 # --description-- -Given a positive integer, return `"Odd"` if it's an odd number, and `"Even"` is it's even. +Given a positive integer, return `"Odd"` if it's an odd number, and `"Even"` if it's even. # --hints-- diff --git a/curriculum/challenges/english/blocks/es-a1-review-first-questions/6910a23b05a7eb4386e6e730.md b/curriculum/challenges/english/blocks/es-a1-review-first-questions/6910a23b05a7eb4386e6e730.md index 19419b0dcd6a8e..cfa44c0043043d 100644 --- a/curriculum/challenges/english/blocks/es-a1-review-first-questions/6910a23b05a7eb4386e6e730.md +++ b/curriculum/challenges/english/blocks/es-a1-review-first-questions/6910a23b05a7eb4386e6e730.md @@ -14,9 +14,7 @@ Congratulations! You're almost done with this module. The article below will help you review some key grammar points covered in the tasks, so you can feel confident before taking the Module Quiz. -## Grammar Highlights - -### Talking about Origin +## Talking about Origin To say where you are from, you should use: **`Soy` + `de` + [country]**. For example: @@ -28,7 +26,7 @@ To know where someone is from, ask `¿De dónde eres?`.
-### Talking About Nationality +## Talking About Nationality To say your nationality, you should use: **`Soy` + [nationality]**. @@ -57,7 +55,7 @@ Nationalities that end in `-e` or `-í` are usually the same for both genders. F
-### Talking About Profession +## Talking About Profession To say your profession, you should use: **`Soy` + [profession]**. For example: @@ -69,7 +67,7 @@ Use this question to ask someone about their profession: `¿A qué te dedicas?`.
-### Talking About Age +## Talking About Age To say your age in Spanish, you should use: **`Tengo` + [number] + `años`**. For example: @@ -81,7 +79,7 @@ You can use this question to ask someone's age: `¿Cuántos años tienes?`.
-### Being Politely During Introductions +## Being Politely During Introductions There are three important courtesy expressions in Spanish. diff --git a/curriculum/challenges/english/blocks/es-a1-review-first-questions/6910a2da60b9e944f13240a0.md b/curriculum/challenges/english/blocks/es-a1-review-first-questions/6910a2da60b9e944f13240a0.md index 3ee6fd2efbd778..a7be36e3053867 100644 --- a/curriculum/challenges/english/blocks/es-a1-review-first-questions/6910a2da60b9e944f13240a0.md +++ b/curriculum/challenges/english/blocks/es-a1-review-first-questions/6910a2da60b9e944f13240a0.md @@ -10,11 +10,9 @@ lang: es # --description-- -## Glossary - This Glossary is a quick reference for the most important words and phrases from the content you've worked with in this module. The words are organized by category and in alphabetical order. -### Greetings and Introductions +## Greetings and Introductions - `Buenas tardes` - Good afternoon @@ -34,7 +32,7 @@ This Glossary is a quick reference for the most important words and phrases from
-### Questions +## Questions - `¿A qué te dedicas?` - What is your profession? @@ -50,7 +48,7 @@ This Glossary is a quick reference for the most important words and phrases from
-### People and Identity +## People and Identity - `Eres` - You are @@ -58,7 +56,7 @@ This Glossary is a quick reference for the most important words and phrases from
-### Professions and Work +## Professions and Work - `Analista` - Analyst @@ -76,7 +74,7 @@ This Glossary is a quick reference for the most important words and phrases from
-### Location and Origin +## Location and Origin - `Colombia` - Colombia @@ -98,7 +96,7 @@ This Glossary is a quick reference for the most important words and phrases from
-### Numbers +## Numbers - `Treinta` - Thirty diff --git a/curriculum/challenges/english/blocks/es-a1-review-greetings-and-farewells/68c850ed23d494c9be5cb22a.md b/curriculum/challenges/english/blocks/es-a1-review-greetings-and-farewells/68c850ed23d494c9be5cb22a.md index 4170d74a9da7d7..aa2a9f89db4b79 100644 --- a/curriculum/challenges/english/blocks/es-a1-review-greetings-and-farewells/68c850ed23d494c9be5cb22a.md +++ b/curriculum/challenges/english/blocks/es-a1-review-greetings-and-farewells/68c850ed23d494c9be5cb22a.md @@ -16,9 +16,7 @@ The article below will help you review some key grammar points covered in the ta Once you've read it, just mark the task as complete and move on to the next part of the review. -## Grammar Highlights - -### Subject Pronoun Omission +## Subject Pronoun Omission In Spanish, it's common to omit the subject pronoun (like `yo`) because the verb form already tells who the subject is. For example: @@ -28,7 +26,7 @@ In Spanish, it's common to omit the subject pronoun (like `yo`) because the verb
-### Using `soy` to Talk About Identity +## Using `soy` to Talk About Identity The verb `ser` (to be) is used to describe who you are, like your name or profession. @@ -40,7 +38,7 @@ The verb `ser` (to be) is used to describe who you are, like your name or profes
-### No Articles Before Professions +## No Articles Before Professions In Spanish, you **don't use** an article (`un` or `una`) before a profession. @@ -50,7 +48,7 @@ For example: `Soy analista`.
-### Greeting with Time of Day +## Greeting with Time of Day Spanish greetings change depending on the time of day. For example: @@ -64,7 +62,7 @@ Spanish greetings change depending on the time of day. For example:
-### Combined Farewells +## Combined Farewells In Spanish, farewells don’t always have to be combined, but it's common to see them used together. For example: @@ -74,7 +72,7 @@ In Spanish, farewells don’t always have to be combined, but it's common to see
-### Accents Marks and Pronunciation +## Accents Marks and Pronunciation Accent marks in Spanish show where to put the stress and sometimes change the meaning of a word. These are some examples from this lesson: @@ -84,7 +82,7 @@ Accent marks in Spanish show where to put the stress and sometimes change the me
-### Special Letters in Spanish +## Special Letters in Spanish `Ñ` is a separate letter in the Spanish alphabet. Its lowercase version is `ñ`. For example: diff --git a/curriculum/challenges/english/blocks/es-a1-review-introducing-yourself/68dc753010b6b271ac564e93.md b/curriculum/challenges/english/blocks/es-a1-review-introducing-yourself/68dc753010b6b271ac564e93.md index 7677277eeae9d6..8b0cc7b852a9ae 100644 --- a/curriculum/challenges/english/blocks/es-a1-review-introducing-yourself/68dc753010b6b271ac564e93.md +++ b/curriculum/challenges/english/blocks/es-a1-review-introducing-yourself/68dc753010b6b271ac564e93.md @@ -10,9 +10,7 @@ lang: es # --description-- -## Grammar Highlights - -### Conjugation of the Verb `tener` in Present Indicative Tense +## Conjugation of the Verb `tener` in Present Indicative Tense The verb `tener` (to have) is commonly used to talk about age in Spanish. @@ -33,7 +31,7 @@ For example:
-### Nationalities and Gender Agreement +## Nationalities and Gender Agreement In Spanish, nationalities must agree in gender with the person they're describing: @@ -50,7 +48,7 @@ Examples:
-### Greetings by Time of Day +## Greetings by Time of Day Spanish greetings change depending on the time of day: @@ -64,7 +62,7 @@ These are polite and time-sensitive ways to start a conversation. --- -### Farewells +## Farewells Here are some common ways to say goodbye in Spanish: diff --git a/curriculum/challenges/english/blocks/es-a1-review-introducing-yourself/691e2de9727ca24425272790.md b/curriculum/challenges/english/blocks/es-a1-review-introducing-yourself/691e2de9727ca24425272790.md index 17624513dde11e..7581646d231ba2 100644 --- a/curriculum/challenges/english/blocks/es-a1-review-introducing-yourself/691e2de9727ca24425272790.md +++ b/curriculum/challenges/english/blocks/es-a1-review-introducing-yourself/691e2de9727ca24425272790.md @@ -10,9 +10,7 @@ lang: es # --description-- -## Glossary - -Review this glossary as a quick reference of the most important words and phrases in the content you've worked with in this module. +Review this glossary as a quick reference of the most important words and phrases in the content you've worked with in this module. The words are organized by category and in alphabetical order. diff --git a/curriculum/challenges/english/blocks/lab-bisection-method/686ccc2c8b967e17ab18d593.md b/curriculum/challenges/english/blocks/lab-bisection-method/686ccc2c8b967e17ab18d593.md index 069470b64a1763..7a8f52407e462f 100644 --- a/curriculum/challenges/english/blocks/lab-bisection-method/686ccc2c8b967e17ab18d593.md +++ b/curriculum/challenges/english/blocks/lab-bisection-method/686ccc2c8b967e17ab18d593.md @@ -26,7 +26,7 @@ In this lab, you will implement a function that uses the bisection method to fin - Raise a `ValueError` with the message `Square root of negative number is not defined in real numbers` if the number passed to the function is negative. - For numbers `0` and `1`, print the message: `The square root of [number] is [number]` and return the number itself as the square root. - For any other positive number, print the approximate square root with the message: `The square root of [square_target] is approximately [root]` and return the computed root value. - - If no value meets the tolerance condition, print a failure message: `Failed to converge within the [maximum] iterations` and return `None`. + - If no value meets the tolerance condition, print a failure message: `Failed to converge within [maximum] iterations` and return `None`. **Note**: You cannot import any module for this lab. diff --git a/curriculum/challenges/english/blocks/lab-budget-app/5e44413e903586ffb414c94e.md b/curriculum/challenges/english/blocks/lab-budget-app/5e44413e903586ffb414c94e.md index 6fa25d4af25871..d2a869a707ca29 100644 --- a/curriculum/challenges/english/blocks/lab-budget-app/5e44413e903586ffb414c94e.md +++ b/curriculum/challenges/english/blocks/lab-budget-app/5e44413e903586ffb414c94e.md @@ -55,7 +55,7 @@ In this lab, you will build a simple budget app that tracks spending in differen 1. You should have a function outside the `Category` class named `create_spend_chart(categories)` that returns a bar-chart string. To build the chart: - Start with the title `Percentage spent by category`. - - Calculate percentages from withdrawals only and not from deposits. The percentage should be the percentage of the amount spent for each category to the total spent for all categories (rounded to the nearest 10). + - Calculate percentages from withdrawals only and not from deposits. The percentage should be the percentage of the amount spent for each category to the total spent for all categories (rounded down to the nearest 10). - Label the y-axis from `100` down to `0` in steps of 10. - Use `o` characters for the bars. - Include a horizontal line two spaces past the last bar. diff --git a/curriculum/challenges/english/blocks/lab-debug-donation-form/690ddb5e6ee94eb73ed172b0.md b/curriculum/challenges/english/blocks/lab-debug-donation-form/690ddb5e6ee94eb73ed172b0.md new file mode 100644 index 00000000000000..d1aa45c967a001 --- /dev/null +++ b/curriculum/challenges/english/blocks/lab-debug-donation-form/690ddb5e6ee94eb73ed172b0.md @@ -0,0 +1,186 @@ +--- +id: 690ddb5e6ee94eb73ed172b0 +title: Debug a Donation Form +challengeType: 25 +dashedName: debug-donation-form +# Purposefully removed the demo type because this is a debugging project. +--- + +# --description-- + +A local charity has built a donation form website, but there are several issues that need to be fixed. The form isn't accessible and has some HTML syntax errors. + +Your job is to fix all of the errors so the form works correctly and is accessible to all users. Complete the items in the user stories below and click "Run the Tests" to see if you fixed all the errors. + +**User Stories:** + +1. The `input` elements are void elements and should not have closing tags. Remove all `` closing tags from the form. +2. Add `label` elements for each form input field so users know what each field is for. The label text should match what's currently next to each input. +3. The `Email Address:` input type should be an `email` instead of `text`. +4. You should associate each `label` element with its corresponding `input` element using the `for` attribute on the `label` and a matching `id` attribute on the `input`. +5. Add the `required` attribute to the text, email, and number input fields (but not the checkbox or submit button) to ensure users fill in the required information. + +# --hints-- + +You should not have any `` closing tags in your code. + +```js +assert.notMatch(code, /<\/input>/); +``` + +You should have exactly five `input` elements in your form. + +```js +assert.lengthOf(document.querySelectorAll("input"), 5); +``` + +You should have exactly four `label` elements in your form. + +```js +assert.lengthOf(document.querySelectorAll("label"), 4); +``` + +Your first `label` should have the text `Full Name:`. + +```js +const labels = document.querySelectorAll("label"); +assert.match(labels[0]?.textContent, /Full\s*Name\s*:/i); +``` + +Your first `input` should have a `required` attribute. + +```js +const firstInput = document.querySelector("input[name='name']"); +assert.isTrue(firstInput?.hasAttribute("required")); +``` + +Your second `label` should have the text `Email Address:`. + +```js +const labels = document.querySelectorAll("label"); +assert.match(labels[1]?.textContent, /Email\s*Address\s*:/i); +``` + +Your second `input` should have a `required` attribute. + +```js +const secondInput = document.querySelector("input[name='email']"); +assert.isTrue(secondInput?.hasAttribute("required")); +``` + +Your third `label` should have the text `Donation Amount ($):`. + +```js +const labels = document.querySelectorAll("label"); +assert.match(labels[2]?.textContent, /Donation\s*Amount\s*\(\$\)\s*:/i); +``` + +Your third `input` should have a`required` attribute. + +```js +const thirdInput = document.querySelector("input[name='amount']"); +assert.isTrue(thirdInput?.hasAttribute("required")); +``` + +Your fourth `label` should have the text `Subscribe`. + +```js +const labels = document.querySelectorAll("label"); +assert.match(labels[3]?.textContent, /Subscribe/i); +``` + +You should associate every `input` element with a `label` element using the `for` and `id` attributes. + +```js +const els = document.querySelectorAll('input:not([type="submit"])'); +assert.isNotEmpty(els); +els.forEach(input => { + const label = document.querySelector(`label[for="${input.id}"]`); + assert.exists(label); + assert.equal(label.tagName, "LABEL"); +}) +``` + +Your `input` for the email address should be of type `email`. + +```js +const emailInput = document.querySelector("input[name='email']"); +assert.strictEqual(emailInput?.getAttribute("type"), "email"); +``` + +Your checkbox `input` should not have a `required` attribute. + +```js +const checkboxInput = document.querySelector("input[name='newsletter']"); +assert.isFalse(checkboxInput?.hasAttribute("required")); +``` + +Your submit `button` should not have a `required` attribute. + +```js +const submitButton = document.querySelector("input[type='submit']"); +assert.isFalse(submitButton?.hasAttribute("required")); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + Donation Form + + +

Donation Form

+
+ + Full Name: + + + Email Address: + + + Donation Amount ($): + + + + Subscribe + + +
+ + +``` + +# --solutions-- + +```html + + + + + Donation Form + + +

Donation Form

+
+ + + + + + + + + + + + + +
+ + +``` diff --git a/curriculum/challenges/english/blocks/lab-pricing-plans-layout/68e45a2b4ab9b2f48b1cc6df.md b/curriculum/challenges/english/blocks/lab-pricing-plans-layout/68e45a2b4ab9b2f48b1cc6df.md index 0331d56e83b3b1..b240763142932c 100644 --- a/curriculum/challenges/english/blocks/lab-pricing-plans-layout/68e45a2b4ab9b2f48b1cc6df.md +++ b/curriculum/challenges/english/blocks/lab-pricing-plans-layout/68e45a2b4ab9b2f48b1cc6df.md @@ -19,11 +19,11 @@ demoType: onClick - One of the `.pricing-card` elements should have the class `basic-plan` in addition to the `pricing-card` class. - One of the `.pricing-card` elements should have the class `pro-plan` in addition to the `pricing-card` class. - One of the `.pricing-card` elements should have the class `premium-plan` in addition to the `pricing-card` class. -4. Your `.basic-plan` element should have an `h2` element with the text `Basic Plan`. +4. Your `.basic-plan` element should have an `h2` element with the text `Basic`. 5. Your `.basic-plan` element should have a `p` element with the text `$9/month`. -6. Your `.pro-plan` element should have an `h2` element with the text `Pro Plan`. +6. Your `.pro-plan` element should have an `h2` element with the text `Pro`. 7. Your `.pro-plan` element should have a `p` element with the text `$19/month`. -8. Your `.premium-plan` element should have an `h2` element with the text `Premium Plan`. +8. Your `.premium-plan` element should have an `h2` element with the text `Premium`. 9. Your `.premium-plan` element should have a `p` element with the text `$29/month`. 10. Each of your `.pricing-card` elements should: - Use Flexbox to stack its content in a column and justify the space between the children using `space-between`. diff --git a/curriculum/challenges/english/blocks/lab-quiz-game/66f17db06803d11a1bd19a20.md b/curriculum/challenges/english/blocks/lab-quiz-game/66f17db06803d11a1bd19a20.md index dd8b671fde427e..9861527a18a4c4 100644 --- a/curriculum/challenges/english/blocks/lab-quiz-game/66f17db06803d11a1bd19a20.md +++ b/curriculum/challenges/english/blocks/lab-quiz-game/66f17db06803d11a1bd19a20.md @@ -44,7 +44,10 @@ The `category` key should have the value of a string representing a question cat ```js assert.isNotEmpty(questions); -questions.forEach(({category}) => assert.isString(category)); +questions.forEach(({category}) => { + assert.isString(category); + assert.isNotEmpty(category); +}); ``` The `question` key should have the value of a string representing a question. @@ -54,17 +57,22 @@ assert.isNotEmpty(questions); questions.forEach(({question}) => { assert.isString(question); assert.include(question, '?'); + assert.isNotEmpty(question.replaceAll('?', '')); }) ``` -The `choices` key should have the value of an array containing three strings. +The `choices` key should have the value of an array containing three strings different from each other. ```js assert.isNotEmpty(questions); questions.forEach(({choices}) => { assert.isArray(choices); assert.lengthOf(choices, 3); - choices.forEach(choice => assert.isString(choice)); + assert.lengthOf(new Set(choices), 3); + choices.forEach(choice => { + assert.isString(choice); + assert.isNotEmpty(choice); + }); }) ``` @@ -72,7 +80,10 @@ The `answer` key should have the value of a string. ```js assert.isNotEmpty(questions); -questions.forEach(({answer}) => assert.isString(answer)); +questions.forEach(({answer}) => { + assert.isString(answer); + assert.isNotEmpty(answer); +}); ``` The value of `answer` should be included in the `choices` array. diff --git a/curriculum/challenges/english/blocks/lab-selection-sort/680b3ef395479b0e449ecb6e.md b/curriculum/challenges/english/blocks/lab-selection-sort/680b3ef395479b0e449ecb6e.md index 7cb54e213864ef..0f3393d473a09d 100644 --- a/curriculum/challenges/english/blocks/lab-selection-sort/680b3ef395479b0e449ecb6e.md +++ b/curriculum/challenges/english/blocks/lab-selection-sort/680b3ef395479b0e449ecb6e.md @@ -168,7 +168,7 @@ Your `selection_sort` should follow the selection sort algorithm, swapping the m ) ``` -`selection_sort([33, 1, 89, 2, 67, 245])` should return `[1, 2, 33, 89, 67, 245]`. +`selection_sort([33, 1, 89, 2, 67, 245])` should return `[1, 2, 33, 67, 89, 245]`. ```js ( diff --git a/curriculum/challenges/english/blocks/lab-stylized-to-do-list/66c051d13a6a20255a963695.md b/curriculum/challenges/english/blocks/lab-stylized-to-do-list/66c051d13a6a20255a963695.md index 8e9999500ff011..bbe7ad2ad521cb 100644 --- a/curriculum/challenges/english/blocks/lab-stylized-to-do-list/66c051d13a6a20255a963695.md +++ b/curriculum/challenges/english/blocks/lab-stylized-to-do-list/66c051d13a6a20255a963695.md @@ -23,8 +23,8 @@ In this lab, you will practice the different styles that can be applied to links - An unordered list with the class `sub-item`. - A list item with an anchor element in it. The anchor should have the class `sub-item-link`, a valid `href` value, and a `target` value that makes the link open in a new tab. -4. Your anchor elements shouldn't have any default text decoration. -5. You should set the text color of the links to a color of your choice. +4. Your `a` elements should not have any text decorations. +5. You should set the text color of unvisited links to a color of your choice. 6. When your links are visited, the color should change to another color of your choice. 7. When your links are hovered over, the color should change to another color of your choice. 8. When your links are focused, there should be a colored outline around the link. @@ -153,7 +153,7 @@ for (let anchor of anchors) { } ``` -The links on the page should have no underline by default. +Your `a` elements should not have any text decorations. ```js assert.isTrue( @@ -165,6 +165,16 @@ assert.isTrue( ); ``` +Unvisited links should have a text color set to a color of your choice. + +```js +assert.exists( + new __helpers.CSSHelp(document).getStyle('.sub-item-link:link')?.color || + new __helpers.CSSHelp(document).getStyle('a:link')?.color || + new __helpers.CSSHelp(document).getStyle('a.sub-item-link:link')?.color +); +``` + The links should change color when hovered over. ```js diff --git a/curriculum/challenges/english/blocks/learn-how-to-express-concerns/67c7171a70134feaf2f75a55.md b/curriculum/challenges/english/blocks/learn-how-to-express-concerns/67c7171a70134feaf2f75a55.md index 850382fcd6b19d..732ddaf0e686f8 100644 --- a/curriculum/challenges/english/blocks/learn-how-to-express-concerns/67c7171a70134feaf2f75a55.md +++ b/curriculum/challenges/english/blocks/learn-how-to-express-concerns/67c7171a70134feaf2f75a55.md @@ -52,7 +52,7 @@ How the team members will react to the deadline change. # --explanation-- -In this sentence, Maria uses `they` to refer to the **members of the team**. Earlier in the conversation, she mentioned `the team` amd used a singular verb when she said `I need to understand how the team feels about the new project deadline`. Now, she refers to the people individually, so she switches to `they`. Another example: +In this sentence, Maria uses `they` to refer to the **members of the team**. Earlier in the conversation, she mentioned `the team` and used a singular verb when she said `I need to understand how the team feels about the new project deadline`. Now, she refers to the people individually, so she switches to `they`. Another example: - `The committee decides on the rules.` - Notice the usage of the verb in the singular to refer to the group as a whole. diff --git a/curriculum/challenges/english/blocks/learn-how-to-talk-about-past-experiences/670f71de33e0be053934a9c3.md b/curriculum/challenges/english/blocks/learn-how-to-talk-about-past-experiences/670f71de33e0be053934a9c3.md index 9c454fa24f1055..9140b918fdef00 100644 --- a/curriculum/challenges/english/blocks/learn-how-to-talk-about-past-experiences/670f71de33e0be053934a9c3.md +++ b/curriculum/challenges/english/blocks/learn-how-to-talk-about-past-experiences/670f71de33e0be053934a9c3.md @@ -90,7 +90,7 @@ This meeting helps organizations learn from their experiences and improve future }, { "character": "Linda", - "startTime": 0, + "startTime": 1, "finishTime": 4.18, "dialogue": { "text": "I was thinking we could do a quick postmortem of the design project.", diff --git a/curriculum/challenges/english/blocks/lecture-introduction-to-python-strings/694147fe940154f20992261b.md b/curriculum/challenges/english/blocks/lecture-introduction-to-python-strings/694147fe940154f20992261b.md index a76a31409d6641..654940cdfdce9e 100644 --- a/curriculum/challenges/english/blocks/lecture-introduction-to-python-strings/694147fe940154f20992261b.md +++ b/curriculum/challenges/english/blocks/lecture-introduction-to-python-strings/694147fe940154f20992261b.md @@ -7,7 +7,7 @@ dashedName: what-is-string-slicing-and-how-does-it-work # --description-- -In a previous lesson, you learned how each character in a string can be indentified by its index (starting from zero), and accessed using the bracket notation: +In a previous lesson, you learned how each character in a string can be identified by its index (starting from zero), and accessed using the bracket notation: ```python my_str = "Hello world" diff --git a/curriculum/challenges/english/blocks/lecture-introduction-to-python/67fe8567f141d632afaeb71b.md b/curriculum/challenges/english/blocks/lecture-introduction-to-python/67fe8567f141d632afaeb71b.md index 1df70d33688f70..491a7d5528e162 100644 --- a/curriculum/challenges/english/blocks/lecture-introduction-to-python/67fe8567f141d632afaeb71b.md +++ b/curriculum/challenges/english/blocks/lecture-introduction-to-python/67fe8567f141d632afaeb71b.md @@ -9,7 +9,7 @@ dashedName: how-do-you-install-configure-and-use-python-in-your-local-environmen In the last lesson, you learned what Python is and what you can do with it. Now, let's look into how you can set up Python on your local machine. -The best way to install Python on Windows and Mac is to download the installer from the official Python website. We'll also go over running Python on Linux later in this lesson. +The easiest way to install Python on Windows and Mac is to download the installer from the official Python website. We'll also go over running Python on Linux later in this lesson. Go to `https://www.python.org/` and hover over "Downloads". A modal will appear showing the current version of Python for your operating system (OS). diff --git a/curriculum/challenges/english/blocks/lecture-react-strategies-and-debugging/67d2f5f19a0f0b75343f1905.md b/curriculum/challenges/english/blocks/lecture-react-strategies-and-debugging/67d2f5f19a0f0b75343f1905.md index 6fb04bed7743f1..85ccd2c475b4b2 100644 --- a/curriculum/challenges/english/blocks/lecture-react-strategies-and-debugging/67d2f5f19a0f0b75343f1905.md +++ b/curriculum/challenges/english/blocks/lecture-react-strategies-and-debugging/67d2f5f19a0f0b75343f1905.md @@ -55,7 +55,7 @@ export default Users; Because React Server Components only run on the server, you can just fetch data from an API and render just once. Also, since data fetching happens on the server, closer to the source, your app may perform better, especially for people with slow network connections. -Once major gotcha is that all the code for server components remain on the server, and doesn't get shipped to the browser. That means you can't use React hooks with them, and they don't have access to Web APIs or browser event listeners. So how can you add interactivity? +One major gotcha is that all the code for server components remains on the server, and doesn't get shipped to the browser. That means you can't use React hooks with them, and they don't have access to Web APIs or browser event listeners. So how can you add interactivity? In the Next.js app router, all components are server components by default. If you want to add interactivity, you need to mark the component as a client component with the `"use client"` directive. diff --git a/curriculum/challenges/english/blocks/lecture-understanding-object-oriented-programming-and-encapsulation/68420be9af9d89620af7944a.md b/curriculum/challenges/english/blocks/lecture-understanding-object-oriented-programming-and-encapsulation/68420be9af9d89620af7944a.md index 527754f6940af7..5ce4c2adc9572c 100644 --- a/curriculum/challenges/english/blocks/lecture-understanding-object-oriented-programming-and-encapsulation/68420be9af9d89620af7944a.md +++ b/curriculum/challenges/english/blocks/lecture-understanding-object-oriented-programming-and-encapsulation/68420be9af9d89620af7944a.md @@ -144,13 +144,15 @@ class Wallet: return self.__balance acct_one = Wallet() -acct_one.deposit(4) # ValueError('Amount must be positive') -print(acct_one.get_balance()) # 0 +acct_one.deposit(3) +print(acct_one.get_balance()) # 3 acct_one.deposit(50) -print(acct_one.get_balance()) # 50 -acct_one.withdraw(-8) # ValueError('Amount must be positive') -acct_one.withdraw(58) # ValueError('Insufficient funds') +print(acct_one.get_balance()) # 53 + +acct_one.deposit(-4) # ValueError: Amount must be positive +acct_one.withdraw(-8) # ValueError: Amount must be positive +acct_one.withdraw(58) # ValueError: Insufficient funds ``` As you can see, the `__validate` method is private, and runs behind the scenes in the `deposit()` and `withdraw()` public methods to make sure the amount is always valid. diff --git a/curriculum/challenges/english/blocks/lecture-understanding-performance-in-web-applications/67d2f7183a537d7a4908a9ff.md b/curriculum/challenges/english/blocks/lecture-understanding-performance-in-web-applications/67d2f7183a537d7a4908a9ff.md index c9ad7e9a3a07c2..a9fd46fbb1bdaa 100644 --- a/curriculum/challenges/english/blocks/lecture-understanding-performance-in-web-applications/67d2f7183a537d7a4908a9ff.md +++ b/curriculum/challenges/english/blocks/lecture-understanding-performance-in-web-applications/67d2f7183a537d7a4908a9ff.md @@ -17,7 +17,7 @@ Number 1: optimize media assets. Large images and videos are common culprits for - Lazy Loading: Defer loading off-screen images and videos until they're needed. In HTML, add the `loading="lazy"` attribute to your media tags. -Next, we have minimize HTTP requests. Each file your website requests adds to the load time. Reducing the number of HTTP requests can lead to faster page loads. You can: +Next, we have to minimize HTTP requests. Each file your website requests adds to the load time. Reducing the number of HTTP requests can lead to faster page loads. You can: - Combine Files: Merge CSS and JavaScript files to reduce the number of requests. diff --git a/curriculum/challenges/english/blocks/lecture-working-with-data-fetching-and-memoization-in-react/67d2f4ddb4a4306fdf5bbaee.md b/curriculum/challenges/english/blocks/lecture-working-with-data-fetching-and-memoization-in-react/67d2f4ddb4a4306fdf5bbaee.md index 61a11871646238..e100375fedf5c6 100644 --- a/curriculum/challenges/english/blocks/lecture-working-with-data-fetching-and-memoization-in-react/67d2f4ddb4a4306fdf5bbaee.md +++ b/curriculum/challenges/english/blocks/lecture-working-with-data-fetching-and-memoization-in-react/67d2f4ddb4a4306fdf5bbaee.md @@ -96,7 +96,7 @@ function App() { export default App; ``` -The `timer` in the `useEffect`, running every second, will make the `calculateSquare` function runs any time it runs, even when you don't increase the `num` state variable. +The `timer` in the `useEffect`, running every second, will make the `calculateSquare` function run any time it runs, even when you don't increase the `num` state variable. To solve this problem, we can use the `useMemo` hook by wrapping the function call in it and specifying the `num` variable as the dependency: diff --git a/curriculum/challenges/english/blocks/lecture-working-with-loops-and-sequences/6839e38cdf93ee5a00c79676.md b/curriculum/challenges/english/blocks/lecture-working-with-loops-and-sequences/6839e38cdf93ee5a00c79676.md index 7e3f5d153c2164..f0f751c8689542 100644 --- a/curriculum/challenges/english/blocks/lecture-working-with-loops-and-sequences/6839e38cdf93ee5a00c79676.md +++ b/curriculum/challenges/english/blocks/lecture-working-with-loops-and-sequences/6839e38cdf93ee5a00c79676.md @@ -239,7 +239,7 @@ Review the last part of the lesson for the answer. ## --text-- -Which of the following is **NOT** a commonly used method for lists? +Which of the following is **NOT** a list method? ## --answers-- diff --git a/curriculum/challenges/english/blocks/lecture-working-with-loops-and-sequences/6839e4b003571c149bcda122.md b/curriculum/challenges/english/blocks/lecture-working-with-loops-and-sequences/6839e4b003571c149bcda122.md index e29979d2ec4435..99528b30ed56d9 100644 --- a/curriculum/challenges/english/blocks/lecture-working-with-loops-and-sequences/6839e4b003571c149bcda122.md +++ b/curriculum/challenges/english/blocks/lecture-working-with-loops-and-sequences/6839e4b003571c149bcda122.md @@ -141,7 +141,7 @@ Review the beginning of the lesson for the answer. --- -It is used to track of the index for an iterable and return an `enumerate` object. +It is used to keep track of the index of an iterable and return an `enumerate` object. --- diff --git a/curriculum/challenges/english/blocks/lecture-working-with-numbers-and-common-number-methods/673280a1c29d0a0b17316e56.md b/curriculum/challenges/english/blocks/lecture-working-with-numbers-and-common-number-methods/673280a1c29d0a0b17316e56.md index f2e0329d338b67..67057f29c9bcfb 100644 --- a/curriculum/challenges/english/blocks/lecture-working-with-numbers-and-common-number-methods/673280a1c29d0a0b17316e56.md +++ b/curriculum/challenges/english/blocks/lecture-working-with-numbers-and-common-number-methods/673280a1c29d0a0b17316e56.md @@ -119,7 +119,7 @@ console.log((num1 + num2).toFixed(2)); ## --answers-- -`80.23` +`"80.23"` ### --feedback-- @@ -127,11 +127,11 @@ Remember that `toFixed()` rounds the result based on the third decimal digit. --- -`80.24` +`"80.24"` --- -`80.25` +`"80.25"` ### --feedback-- @@ -139,7 +139,7 @@ Remember that `toFixed()` rounds the result based on the third decimal digit. --- -`80.26` +`"80.26"` ### --feedback-- diff --git a/curriculum/challenges/english/blocks/quiz-css-variables/66ed9018f45ce3ece4053eb9.md b/curriculum/challenges/english/blocks/quiz-css-variables/66ed9018f45ce3ece4053eb9.md index 7c0b6750ae3d9c..0dcf11867abf9f 100644 --- a/curriculum/challenges/english/blocks/quiz-css-variables/66ed9018f45ce3ece4053eb9.md +++ b/curriculum/challenges/english/blocks/quiz-css-variables/66ed9018f45ce3ece4053eb9.md @@ -731,7 +731,13 @@ It assigns a default value for the property if none is set. #### --text-- -In the following CSS, how does the custom property `--bg-color` behave? +Consider the following HTML and CSS. What background color will be applied to the `.card` element? + +```html +
+
Content
+
+``` ```css :root { @@ -741,23 +747,27 @@ In the following CSS, how does the custom property `--bg-color` behave? .dark-theme { --bg-color: #333; } + +.card { + background: var(--bg-color); +} ``` #### --distractors-- -Overrides the root value globally. +`white` --- -Applies to all elements by default. +`transparent` --- -Is inherited automatically by all children. +`inherit` #### --answer-- -Only applies within `.dark-theme` scope. +`#333` ### --question-- diff --git a/curriculum/challenges/english/blocks/quiz-node-js-core-modules/692487767b6b728454f53f29.md b/curriculum/challenges/english/blocks/quiz-node-js-core-modules/692487767b6b728454f53f29.md new file mode 100644 index 00000000000000..2c301f191a5c9a --- /dev/null +++ b/curriculum/challenges/english/blocks/quiz-node-js-core-modules/692487767b6b728454f53f29.md @@ -0,0 +1,454 @@ +--- +id: 692487767b6b728454f53f29 +title: NodeJS Core Modules Quiz +challengeType: 8 +dashedName: quiz-node-js-core-modules +--- + +# --description-- + +To pass the quiz, you must correctly answer at least 18 of the 20 questions below. + +# --quizzes-- + +## --quiz-- + +### --question-- + +#### --text-- + +Which `fs` method adds content to an existing file without overwriting it? + +#### --distractors-- + +`writeFile()` + +--- + +`readFile()` + +--- + +`unlink()` + +#### --answer-- + +`appendFile()` + +### --question-- + +#### --text-- + +What happens when you use synchronous methods from the `fs` module? + +#### --distractors-- + +They delete existing files automatically. + +--- + +They run faster than asynchronous ones in all cases. + +--- + +They return Promises by default. + +#### --answer-- + +They block the program until the operation finishes. + +### --question-- + +#### --text-- + +What does the `utf8` parameter do in `fs.readFile()`? + +#### --distractors-- + +It prevents errors from being thrown. + +--- + +It changes the file’s extension. + +--- + +It compresses large files. + +#### --answer-- + +It tells Node to return a readable string instead of a buffer. + +### --question-- + +#### --text-- + +Which `Buffer` method creates a new buffer filled with zeros? + +#### --distractors-- + +`Buffer.from()` + +--- + +`Buffer.concat()` + +--- + +`Buffer.byteLength()` + +#### --answer-- + +`Buffer.alloc()` + +### --question-- + +#### --text-- + +What does `Buffer.toString()` do? + +#### --distractors-- + +Converts a buffer into binary code. + +--- + +Clears the contents of a buffer. + +--- + +Shows buffer byte length. + +#### --answer-- + +Converts buffer contents into a readable string. + +### --question-- + +#### --text-- + +Which `crypto` feature requires a private key to generate a signature? + +#### --distractors-- + +`createHash()` + +--- + +`createCipheriv()` + +--- + +`randomBytes()` + +#### --answer-- + +`sign()` + +### --question-- + +#### --text-- + +Why should you avoid writing your own crypto algorithms directly? + +#### --distractors-- + +It is illegal in Node.js applications. + +--- + +Node.js does not support encryption. + +--- + +JavaScript cannot compute hashes. + +#### --answer-- + +It can be unsafe without well-tested libraries. + +### --question-- + +#### --text-- + +What `crypto` method is recommended for generating secure random tokens instead of `Math.random()`? + +#### --distractors-- + +`randomInt()` + +--- + +`createHmac()` + +--- + +`createCipheriv()` + +#### --answer-- + +`randomBytes()` + +### --question-- + +#### --text-- + +Which OS module method returns the CPU architecture? + +#### --distractors-- + +`os.cpus()` + +--- + +`os.platform()` + +--- + +`os.version()` + +#### --answer-- + +`os.arch()` + +### --question-- + +#### --text-- + +What does `os.userInfo()` return? + +#### --distractors-- + +Only the username. + +--- + +Only the device IP address. + +--- + +Only the logged-in user’s ID. + +#### --answer-- + +Information about the current system user. + +### --question-- + +#### --text-- + +Which `path` method joins segments and normalizes extra slashes? + +#### --distractors-- + +`path.resolve()` + +--- + +`path.extname()` + +--- + +`path.dirname()` + +#### --answer-- + +`path.join()` + +### --question-- + +#### --text-- + +Which `path` method produces an absolute path based on the current working directory? + +#### --distractors-- + +`path.extname()` + +--- + +`path.format()` + +--- + +`path.parse()` + +#### --answer-- + +`path.resolve()` + +### --question-- + +#### --text-- + +What does the global variable `__dirname` represent? + +#### --distractors-- + +The name of the user running Node. + +--- + +The current file’s extension. + +--- + +A relative folder path starting with `./`. + +#### --answer-- + +The absolute path of the directory containing the current file. + +### --question-- + +#### --text-- + +Which process property contains environment variables like `NODE_ENV`? + +#### --distractors-- + +`process.cwd` + +--- + +`process.version` + +--- + +`process.platform` + +#### --answer-- + +`process.env` + +### --question-- + +#### --text-- + +What does the `process.on("exit")` event do? + +#### --distractors-- + +It restarts the Node application. + +--- + +It sends an `exit` signal to child processes. + +--- + +It clears the event loop queue. + +#### --answer-- + +Executes code right before the Node process finishes. + +### --question-- + +#### --text-- + +Which stream type can both read and write data but does not transform it? + +#### --distractors-- + +Readable stream + +--- + +Transform stream + +--- + +Writable stream + +#### --answer-- + +Duplex stream + +### --question-- + +#### --text-- + +What is required to implement reading and writing of large files efficiently? + +#### --distractors-- + +Using only `Buffer.alloc()` + +--- + +Importing the `crypto` module + +--- + +Saving the entire file in memory first + +#### --answer-- + +Using streams to process data in chunks + +### --question-- + +#### --text-- + +Which method links a readable stream to a writable stream? + +#### --distractors-- + +`pipeTo()` + +--- + +`connect()` + +--- + +`streamWrite()` + +#### --answer-- + +`pipe()` + +### --question-- + +#### --text-- + +What stream event indicates there is no more data to write? + +#### --distractors-- + +`close` + +--- + +`drain` + +--- + +`end` + +#### --answer-- + +`finish` + +### --question-- + +#### --text-- + +What is logged if you print a chunk from a readable stream without `toString()`? + +#### --distractors-- + +Plain text content + +--- + +The process PID + +--- + +Operating system name + +#### --answer-- + +A buffer object with binary data diff --git a/curriculum/challenges/english/blocks/review-front-end-libraries/6724e2dbf723fe1c8883cc69.md b/curriculum/challenges/english/blocks/review-front-end-libraries/6724e2dbf723fe1c8883cc69.md index 55af2103f4dc80..22fe311fc2d581 100644 --- a/curriculum/challenges/english/blocks/review-front-end-libraries/6724e2dbf723fe1c8883cc69.md +++ b/curriculum/challenges/english/blocks/review-front-end-libraries/6724e2dbf723fe1c8883cc69.md @@ -944,7 +944,7 @@ export default function Page() { ## State Management -- **Context API**: Context refers to when a parent component makes information available to child components without needing to pass it explicitly through props. `createContext` is used to create a context object which represent the context that other components will read. The `Provider` is used to supply context values to the child components. +- **Context API**: Context refers to when a parent component makes information available to child components without needing to pass it explicitly through props. `createContext` is used to create a context object which represents the context that other components will read. The `Provider` is used to supply context values to the child components. ```js import { useState, createContext } from "react"; diff --git a/curriculum/challenges/english/blocks/review-javascript-comparisons-and-conditionals/6723c554025f449f4f39c3f5.md b/curriculum/challenges/english/blocks/review-javascript-comparisons-and-conditionals/6723c554025f449f4f39c3f5.md index 3cb1601d7ba467..e80180247ef3d1 100644 --- a/curriculum/challenges/english/blocks/review-javascript-comparisons-and-conditionals/6723c554025f449f4f39c3f5.md +++ b/curriculum/challenges/english/blocks/review-javascript-comparisons-and-conditionals/6723c554025f449f4f39c3f5.md @@ -16,7 +16,7 @@ console.log(undefined < 0); // false (NaN < 0 is false) console.log(undefined >= 0); // false (NaN >= 0 is false) ``` -- **Comparisons and `null`**: The `null` type represents the intentional absence of a value. `null` converts to `0` in numeric contexts, which may result in unexpected behavior in numeric comparisions: +- **Comparisons and `null`**: The `null` type represents the intentional absence of a value. `null` converts to `0` in numeric contexts, which may result in unexpected behavior in numeric comparisons: ```js console.log(null < 0); // false (0 < 0 is false) diff --git a/curriculum/challenges/english/blocks/review-javascript/6723d3cfdd0717d3f1bf27e3.md b/curriculum/challenges/english/blocks/review-javascript/6723d3cfdd0717d3f1bf27e3.md index b8069ca1a43570..9960876c9c1a49 100644 --- a/curriculum/challenges/english/blocks/review-javascript/6723d3cfdd0717d3f1bf27e3.md +++ b/curriculum/challenges/english/blocks/review-javascript/6723d3cfdd0717d3f1bf27e3.md @@ -604,7 +604,7 @@ console.log(undefined < 0); // false (NaN < 0 is false) console.log(undefined >= 0); // false (NaN >= 0 is false) ``` -- **Comparisons and `null`**: The `null` type represents the intentional absence of a value. `null` converts to `0` in numeric contexts, which may result in unexpected behavior in numeric comparisions: +- **Comparisons and `null`**: The `null` type represents the intentional absence of a value. `null` converts to `0` in numeric contexts, which may result in unexpected behavior in numeric comparisons: ```js console.log(null < 0); // false (0 < 0 is false) diff --git a/curriculum/challenges/english/blocks/review-node-js-core-modules/69247cd74caa633ccd7e3351.md b/curriculum/challenges/english/blocks/review-node-js-core-modules/69247cd74caa633ccd7e3351.md new file mode 100644 index 00000000000000..e8653985b44a38 --- /dev/null +++ b/curriculum/challenges/english/blocks/review-node-js-core-modules/69247cd74caa633ccd7e3351.md @@ -0,0 +1,359 @@ +--- +id: 69247cd74caa633ccd7e3351 +title: Node.js Core Modules Review +challengeType: 31 +dashedName: review-node-js-core-modules +--- + +# --description-- + +## Introduction to Node.js Core Modules + +- **Node.js Core Modules**: Built-in modules that come pre-installed with Node.js, providing essential functionality for file operations, cryptography, operating system interactions, and more. +- **Standard Modules**: No need for separate installation; available as long as Node.js is installed. +- **Import Syntax**: Use `require()` to import core modules into your application. + +```javascript +const fs = require("fs"); +const crypto = require("crypto"); +const os = require("os"); +``` + +## File System (fs) Module + +- **Purpose**: Provides methods for working with files and folders, including opening, closing, reading, writing, and deleting operations. +- **Import**: `const fs = require("fs");` +- **Flexibility**: Methods available in three forms: callbacks, promises, and synchronous. + +### Method Usage Patterns + +- **Asynchronous with Callbacks**: Default behavior, non-blocking. + +```javascript +fs.writeFile("filePath", "content", "utf8", (err) => { + if (err) throw err; + console.log("File written to!"); +}); +``` + +- **Promises-based**: Preferred for modern applications, uses `async/await`. + +```javascript +const fs = require("fs/promises"); + +async function writeToFile() { + try { + await fs.writeFile("article.md", "## Node fs Module"); + console.log("File written to!"); + } catch (err) { + console.error(err); + } +} +``` + +- **Synchronous**: Blocking operation, suitable for simple scripts. + +```javascript +try { + fs.writeFileSync("article.md", "## Node fs Module", "utf8"); + console.log("File written to!"); +} catch (err) { + console.error(err); +} +``` + +### Core File Operations + +- **`writeFile()` Method**: Creates or overwrites a file with specified content. + +```javascript +await fs.writeFile("article.md", "## Node fs Module: The Complete Guide"); +``` + +- **`appendFile()` Method**: Adds content to the end of an existing file. + +```javascript +await fs.appendFile("article.md", "\n\nIn this article, you will learn..."); +``` + +- **`readFile()` Method**: Reads the contents of a file. + +```javascript +const content = await fs.readFile("article.md", "utf8"); +console.log("File content:", content); +``` + +- **`unlink()` Method**: Deletes a file from the file system. + +```javascript +await fs.unlink("article.md"); +console.log("File deleted successfully"); +``` + +### Character Encoding + +- **UTF-8 Encoding**: Specify `"utf8"` to read files as text strings. +- **Buffer Format**: Without encoding specification, files are read as binary buffer objects. + +```javascript +// Returns string +const textContent = await fs.readFile("file.txt", "utf8"); + +// Returns Buffer +const bufferContent = await fs.readFile("file.txt"); +``` + +## Buffer Module + +- **Purpose**: Handles binary data directly in memory for files, images, and network streams. +- **Import**: `const { Buffer } = require("buffer");` +- **Use Cases**: File I/O, TCP streams, image processing, and binary data manipulation. + +### Buffer Creation + +- **`Buffer.from()` Method**: Creates buffer from strings, arrays, or other data. + +```javascript +// From string +const myStrBuffer = Buffer.from("freeCodeCamp"); +console.log(myStrBuffer); // + +// From array of numbers +const myNumBuffer = Buffer.from([70, 82, 69, 69, 67, 79, 68, 69, 67, 65, 77, 80]); +``` + +- **`Buffer.alloc()` Method**: Creates buffer of specified size filled with zeros. + +```javascript +const someBuffer = Buffer.alloc(10); +console.log(someBuffer); // +``` + +### Buffer Operations + +- **Array-like Access**: Access individual buffer elements using index notation. + +```javascript +console.log(myStrBuffer[0]); // 102 (byte value for 'f') +``` + +- **`toString()` Method**: Converts buffer to readable string. + +```javascript +console.log(myStrBuffer.toString()); // "freeCodeCamp" +``` + +- **`Buffer.write()` Method**: Writes data to an allocated buffer. + +```javascript +someBuffer.write("Hello fCC"); +console.log(someBuffer.toString()); // "Hello fCC" +``` + +- **`Buffer.byteLength()` Method**: Returns number of bytes needed to store a string. + +```javascript +console.log(Buffer.byteLength("Hello freeCodeCamp")); // 18 +``` + +### Additional Buffer Methods + +- **`Buffer.isBuffer()`**: Checks if an object is a buffer. +- **`Buffer.compare()`**: Compares two buffers and returns sort order. +- **`Buffer.concat()`**: Joins multiple buffers into one. + +## Crypto Module + +- **Purpose**: Provides cryptographic functionality, including hashing, encryption, decryption, and digital signatures. +- **Import**: `const crypto = require("crypto");` +- **Security Note**: Use well-tested libraries like `bcrypt` or `jsonwebtoken` for production authentication. + +### Hashing Methods + +- **`createHash()` Method**: Creates one-way hash using algorithms like SHA256, SHA512, or MD5. + +```javascript +const hashedPassword = crypto + .createHash("sha256") + .update("myPassword123") + .digest("hex"); + +console.log("createHash result:", hashedPassword); +``` + +- **`createHmac()` Method**: Creates a hash with a secret key for authentication and data integrity. + +```javascript +const hashedMessage = crypto + .createHmac("sha256", "secret-key") + .update("Hello World") + .digest("hex"); +``` + +### Encryption and Decryption + +- **`createCipheriv()` and `createDecipheriv()` Methods**: Encrypt and decrypt data using algorithms, keys, and initialization vectors. + +```javascript +const key = Buffer.from("12345678901234567890123456789012"); // 32 bytes for AES-256 +const iv = Buffer.from("1234567890123456"); // 16 bytes for AES + +// Encryption +const cipher = crypto.createCipheriv("aes-256-cbc", key, iv); +let encrypted = cipher.update("Hello campers!", "utf8", "hex"); +encrypted += cipher.final("hex"); + +// Decryption +const decipher = crypto.createDecipheriv("aes-256-cbc", key, iv); +let decrypted = decipher.update(encrypted, "hex", "utf8"); +decrypted += decipher.final("utf8"); +``` + +### Random Value Generation + +- **`randomBytes()` Method**: Generates cryptographically secure random bytes. + +```javascript +console.log("Random Bytes:", crypto.randomBytes(16).toString("hex")); +// Output: a6154ef5a296fa176ad0f332bd94d712 +``` + +- **`randomInt()` Method**: Generates secure random integers within specified range. + +```javascript +console.log("Random Int:", crypto.randomInt(0, 100)); // Random number 0-99 +``` + +### Key Management + +- **`createSecretKey()` Method**: Creates cryptographic key objects from raw bytes. + +```javascript +const secret = crypto.createSecretKey(crypto.randomBytes(32)); +console.log(secret.export().toString('hex')); +``` + +### Digital Signatures + +- **`sign()` and `verify()` Methods**: Create and validate digital signatures using private/public key pairs. +- **Use Case**: Proves data authenticity and integrity. + +### Additional Crypto Methods + +- **`createPublicKey()` and `createPrivateKey()`**: Work with externally generated keys. +- **`createDiffieHellman()`**: Enables secure shared secret generation. +- **`Certificate()`**: Handles HTTPS certificate operations. + +## OS Module + +- **Purpose**: Provides operating system-related utilities for system information and cross-platform compatibility. +- **Import**: `const os = require("os");` +- **Use Cases**: System monitoring, cross-platform scripting, hardware information. + +### System Information Methods + +- **`platform()` Method**: Returns operating system platform. + +```javascript +console.log(os.platform()); // 'darwin', 'win32', 'linux', etc. + +// Cross-platform usage +if (os.platform() === 'win32') { + // Windows-specific code +} else { + // Unix-like systems +} +``` + +- **`arch()` Method**: Returns CPU architecture. + +```javascript +console.log(os.arch()); // 'arm64', 'x64', 'arm', 'ia32', etc. +``` + +- **`type()` Method**: Returns official operating system name. + +```javascript +console.log(os.type()); // 'Darwin', 'Linux', 'Windows_NT' +``` + +### Version Information + +- **`release()` Method**: Shows OS kernel version. + +```javascript +console.log(os.release()); // '25.0.0' +``` + +- **`version()` Method**: Returns detailed OS version information. + +```javascript +console.log(os.version()); +// Darwin Kernel Version 25.0.0: Wed Sep 17 21:41:39 PDT 2025 +``` + +### Hardware Information + +- **`cpus()` Method**: Returns an array of CPU core information. + +```javascript +console.log(os.cpus()); // Array of CPU core objects with model, speed, times +``` + +- **`uptime()` Method**: Returns system uptime in seconds. + +```javascript +console.log(os.uptime()); // 23047 (seconds since system boot) +``` + +### Memory Information + +- **`totalmem()` Method**: Returns total system memory in bytes. +- **`freemem()` Method**: Returns available system memory in bytes. + +## Best Practices + +### Performance Considerations + +- **Avoid Synchronous Methods**: Use asynchronous methods in production applications to prevent blocking. +- **Prefer Promises**: Use `async/await` with promises-based API for cleaner, maintainable code. +- **Error Handling**: Always implement proper error handling with try-catch blocks or error callbacks. + +### Security Guidelines + +- **Crypto Module**: Use established libraries for authentication rather than building custom crypto solutions. +- **Input Validation**: Validate file paths and user input to prevent security vulnerabilities. +- **Key Management**: Store cryptographic keys securely, never hardcode them in source code. + +### Cross-Platform Development + +- **OS Module Usage**: Use OS module methods for cross-platform compatibility. +- **Path Handling**: Use `path` module for cross-platform file path operations. +- **Environment Variables**: Check platform-specific environment variables and configurations. + +## Common Use Cases + +### File Operations + +- Configuration file management +- Log file creation and maintenance +- Data export/import functionality +- Template processing + +### Data Security + +- Password hashing for user authentication +- Data encryption for sensitive information +- Random token generation for sessions +- Digital signature verification + +### System Integration + +- Cross-platform application deployment +- System resource monitoring +- Hardware compatibility checks +- Performance optimization based on system capabilities + +# --assignment-- + +Review the Node.js Core Modules topics and concepts. diff --git a/curriculum/challenges/english/blocks/review-python-basics/67f39b40deaec81a3e40e0c5.md b/curriculum/challenges/english/blocks/review-python-basics/67f39b40deaec81a3e40e0c5.md index f57ca13f31d567..a30df5681bf313 100644 --- a/curriculum/challenges/english/blocks/review-python-basics/67f39b40deaec81a3e40e0c5.md +++ b/curriculum/challenges/english/blocks/review-python-basics/67f39b40deaec81a3e40e0c5.md @@ -77,13 +77,6 @@ my_float_var = 4.50 print('Float:', my_float_var) # Float: 4.5 ``` -- **Complex**: A number with a real and imaginary part: - -```py -my_complex_var = 3 + 4j -print('Complex:', my_complex_var) # Complex: (3+4j) -``` - - **String**: A sequence of characters wrapped in quotes: ```py @@ -626,27 +619,6 @@ print(int(True)) # 1 print(int(False)) # 0 ``` -## Decorators - -- **Definition**: Decorators are a special kind of function in Python. They are like wrappers for other functions, so they take another function as an argument. - -```py -def say_hello(): - name = input('What is your name? ') - return 'Hello ' + name - -def uppercase_decorator(func): - def wrapper(): - original_func = func() - modified_func = original_func.upper() - return modified_func - return wrapper - -say_hello_res = uppercase_decorator(say_hello) - -print(say_hello_res()) -``` - ## Scope in Python - **Local Scope**: This is when a variable declared inside a function or class can only be accessed within that function or class. diff --git a/curriculum/challenges/english/blocks/review-python/67f39e391c9b373069def02c.md b/curriculum/challenges/english/blocks/review-python/67f39e391c9b373069def02c.md index 41f99d6e089fa2..5d7ffe711c4c62 100644 --- a/curriculum/challenges/english/blocks/review-python/67f39e391c9b373069def02c.md +++ b/curriculum/challenges/english/blocks/review-python/67f39e391c9b373069def02c.md @@ -77,13 +77,6 @@ my_float_var = 4.50 print('Float:', my_float_var) # Float: 4.5 ``` -- **Complex**: A number with a real and imaginary part: - -```py -my_complex_var = 3 + 4j -print('Complex:', my_complex_var) # Complex: (3+4j) -``` - - **String**: A sequence of characters wrapped in quotes: ```py @@ -626,27 +619,6 @@ print(int(True)) # 1 print(int(False)) # 0 ``` -## Decorators - -- **Definition**: Decorators are a special kind of function in Python. They are like wrappers for other functions, so they take another function as an argument. - -```py -def say_hello(): - name = input('What is your name? ') - return 'Hello ' + name - -def uppercase_decorator(func): - def wrapper(): - original_func = func() - modified_func = original_func.upper() - return modified_func - return wrapper - -say_hello_res = uppercase_decorator(say_hello) - -print(say_hello_res()) -``` - ## Scope in Python - **Local Scope**: This is when a variable declared inside a function or class can only be accessed within that function or class. diff --git a/curriculum/challenges/english/blocks/review-react-forms-data-fetching-and-routing/67c9e932c6c4234532d46394.md b/curriculum/challenges/english/blocks/review-react-forms-data-fetching-and-routing/67c9e932c6c4234532d46394.md index a9b358afdc0f04..7e79fb8862f8ac 100644 --- a/curriculum/challenges/english/blocks/review-react-forms-data-fetching-and-routing/67c9e932c6c4234532d46394.md +++ b/curriculum/challenges/english/blocks/review-react-forms-data-fetching-and-routing/67c9e932c6c4234532d46394.md @@ -458,7 +458,7 @@ export default function Page() { ## State Management -- **Context API**: Context refers to when a parent component makes information available to child components without needing to pass it explicitly through props. `createContext` is used to create a context object which represent the context that other components will read. The `Provider` is used to supply context values to the child components. +- **Context API**: Context refers to when a parent component makes information available to child components without needing to pass it explicitly through props. `createContext` is used to create a context object which represents the context that other components will read. The `Provider` is used to supply context values to the child components. ```jsx import { useState, createContext } from "react"; diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68e97fe79367ad7b5dd6c9cd.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68e97fe79367ad7b5dd6c9cd.md index fb0f801dc32a02..f5a9b6c185ef99 100644 --- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68e97fe79367ad7b5dd6c9cd.md +++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68e97fe79367ad7b5dd6c9cd.md @@ -38,7 +38,6 @@ assert.match(code, /[\s\S]*

[\s\S]*<\/h1>[\s\S]*<\/body>/i); - XYZ Bookstore Page --fcc-editable-region-- diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68ebdbacdd3fa474132cc975.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68ebdbacdd3fa474132cc975.md index 7e085c41a21ba5..09c7905ed404cc 100644 --- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68ebdbacdd3fa474132cc975.md +++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68ebdbacdd3fa474132cc975.md @@ -38,7 +38,6 @@ assert.exists(document.querySelector('h1 + p')); - XYZ Bookstore Page diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec6cd5b7e8f5a8f7319e32.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec6cd5b7e8f5a8f7319e32.md index 78800c033911f9..fd313665011e2f 100644 --- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec6cd5b7e8f5a8f7319e32.md +++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec6cd5b7e8f5a8f7319e32.md @@ -34,7 +34,6 @@ assert.exists(document.querySelector('p + div')); - XYZ Bookstore Page diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec6d9a315221aa31e54816.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec6d9a315221aa31e54816.md index 0ee1e8bc5a3465..a4a8731407095a 100644 --- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec6d9a315221aa31e54816.md +++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec6d9a315221aa31e54816.md @@ -40,7 +40,6 @@ assert.equal(document.querySelector('div')?.className, 'card-container'); - XYZ Bookstore Page diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec6e8d0caee3afaaf142ef.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec6e8d0caee3afaaf142ef.md index 6222fd5b1ab4bf..ae0e01fbe6e6c5 100644 --- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec6e8d0caee3afaaf142ef.md +++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec6e8d0caee3afaaf142ef.md @@ -40,7 +40,6 @@ assert.exists(document.querySelector('.card-container div.card')); - XYZ Bookstore Page diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec9332a9b5b2b32487bd00.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec9332a9b5b2b32487bd00.md index 8a8e2dd99c25d2..16a2df21b47f05 100644 --- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec9332a9b5b2b32487bd00.md +++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec9332a9b5b2b32487bd00.md @@ -42,7 +42,6 @@ assert.equal(document.querySelector('.card')?.id, 'sally-adventure-book'); - XYZ Bookstore Page diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec98b38d83a3c28dd30efe.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec98b38d83a3c28dd30efe.md index a6386c300f5da8..376f098a1714bd 100644 --- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec98b38d83a3c28dd30efe.md +++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec98b38d83a3c28dd30efe.md @@ -32,7 +32,6 @@ assert.equal(document.querySelector('.card h2')?.innerText.trim(), "Sally's SciF - XYZ Bookstore Page diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec99e478211dc578699944.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec99e478211dc578699944.md index 90e6ada55b18d4..21798d76feed46 100644 --- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec99e478211dc578699944.md +++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68ec99e478211dc578699944.md @@ -41,7 +41,6 @@ assert.exists(document.querySelector('.card h2 + p')); - XYZ Bookstore Page diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca11e99e3c5c894ca9d69.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca11e99e3c5c894ca9d69.md index 4b53eaa7554dca..7252c076eb42ab 100644 --- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca11e99e3c5c894ca9d69.md +++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca11e99e3c5c894ca9d69.md @@ -45,7 +45,6 @@ assert.equal(document.querySelector('.card button')?.innerText.trim(), 'Buy Now' - XYZ Bookstore Page diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca2a795b333ca5fee30a8.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca2a795b333ca5fee30a8.md index 93a44b25c2728a..3183bb297e945e 100644 --- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca2a795b333ca5fee30a8.md +++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca2a795b333ca5fee30a8.md @@ -37,7 +37,6 @@ assert.exists(document.querySelector('.card + .card')); - XYZ Bookstore Page diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca3cfeebef2cd8cc5f814.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca3cfeebef2cd8cc5f814.md index bb3e4c0ef12028..1abf7c2375a996 100644 --- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca3cfeebef2cd8cc5f814.md +++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca3cfeebef2cd8cc5f814.md @@ -33,7 +33,6 @@ assert.equal(cards[1]?.id, 'dave-cooking-book'); - XYZ Bookstore Page diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca4c4b0f952cf09fabe09.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca4c4b0f952cf09fabe09.md index 11b3cbb88a204c..f8475667928a61 100644 --- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca4c4b0f952cf09fabe09.md +++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca4c4b0f952cf09fabe09.md @@ -33,7 +33,6 @@ assert.equal(cards[1]?.querySelector('h2')?.innerText.trim(), "Dave's Cooking Ad - XYZ Bookstore Page diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca5412b5dd9d06b3d6404.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca5412b5dd9d06b3d6404.md index b93c5d4a6c2ab7..52faf9f6f7ede8 100644 --- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca5412b5dd9d06b3d6404.md +++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca5412b5dd9d06b3d6404.md @@ -44,7 +44,6 @@ assert.exists(cards[1]?.querySelector('h2 + p')); - XYZ Bookstore Page diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca5c0065c82d256d29ca3.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca5c0065c82d256d29ca3.md index e5526bd1701413..04cf807d61cf48 100644 --- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca5c0065c82d256d29ca3.md +++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca5c0065c82d256d29ca3.md @@ -49,7 +49,6 @@ assert.equal(cards[1]?.querySelector('button')?.innerText.trim(), 'Buy Now'); - XYZ Bookstore Page diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca6364c5616d393389a30.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca6364c5616d393389a30.md index a2a5ce332d2182..c2c4def38f52c0 100644 --- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca6364c5616d393389a30.md +++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca6364c5616d393389a30.md @@ -50,7 +50,6 @@ assert.exists(document.querySelector('p + .btn-container')); - XYZ Bookstore Page diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca6e5a6759ed4ea0034dc.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca6e5a6759ed4ea0034dc.md index 45a67e2391622b..c4175343b9ef99 100644 --- a/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca6e5a6759ed4ea0034dc.md +++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/68eca6e5a6759ed4ea0034dc.md @@ -82,7 +82,6 @@ assert.equal(buttons[1]?.innerText.trim(), 'Checkout'); - XYZ Bookstore Page @@ -118,7 +117,6 @@ assert.equal(buttons[1]?.innerText.trim(), 'Checkout'); - XYZ Bookstore Page diff --git a/curriculum/challenges/english/blocks/workshop-bookstore-page/69134d14150d51f8066a3246.md b/curriculum/challenges/english/blocks/workshop-bookstore-page/69134d14150d51f8066a3246.md index 3dc982544efeca..e971f205df9c2c 100644 --- a/curriculum/challenges/english/blocks/workshop-bookstore-page/69134d14150d51f8066a3246.md +++ b/curriculum/challenges/english/blocks/workshop-bookstore-page/69134d14150d51f8066a3246.md @@ -7,14 +7,11 @@ dashedName: step-3 # --description-- -Now, improve the structure of your HTML document to ensure your page is encoded correctly and looks good on all screen sizes. +Now, improve the structure of your HTML document to ensure your page is encoded correctly. -Add a language attribute to the `html` element and set it to `en`. Then, inside the `head` element add: +Add a `lang` attribute to the `html` element and set it to `"en"`. Then, inside the `head` element add the `` element. -- a `` tag -- a `` tag - -Now add the `body` element below the head section. This is where all of your visible page content will go. +Lastly, add a `body` element below the `head` section. This is where all of your visible page content will go. # --hints-- @@ -30,12 +27,6 @@ Your code should include a `` element. assert.exists(document.querySelector('head > meta[charset="utf-8"]')); ``` -Your code should include a viewport `meta` element. - -```js -assert.exists(document.querySelector('head > meta[name="viewport"][content="width=device-width, initial-scale=1.0"]')); -``` - Your code should include opening and closing `` tags. ```js diff --git a/curriculum/challenges/english/blocks/workshop-calorie-counter/63bf5adfe2981b332eb007b6.md b/curriculum/challenges/english/blocks/workshop-calorie-counter/63bf5adfe2981b332eb007b6.md index b4cace99131e09..a29d0ee8c39916 100644 --- a/curriculum/challenges/english/blocks/workshop-calorie-counter/63bf5adfe2981b332eb007b6.md +++ b/curriculum/challenges/english/blocks/workshop-calorie-counter/63bf5adfe2981b332eb007b6.md @@ -7,17 +7,17 @@ dashedName: step-32 # --description-- -The `+` modifier in a regex allows you to match a pattern that occurs one or more times. To match your digit pattern one or more times, add a plus after each of the digit character classes. For example: `[0-9]+`. +The `+` quantifier in a regular expression allows you to match a pattern that occurs one or more times. To match your digit pattern one or more times, add a plus after each of the digit character classes. For example: `[0-9]+`. # --hints-- -You should add the `+` modifier to the character class before `e` in your regular expression. +You should add the `+` quantifier to the character class before `e` in your regular expression. ```js assert.match(isInvalidInput.toString(), /regex\s*=\s*\/\[0-9\]\+e/); ``` -You should add the `+` modifier to the character class after `e` in your regular expression. +You should add the `+` quantifier to the character class after `e` in your regular expression. ```js assert.match(isInvalidInput.toString(), /regex\s*=\s*\/\[0-9\]\+e\[0-9\]\+\//); diff --git a/curriculum/challenges/english/blocks/workshop-city-skyline/5d822fd413a79914d39e9904.md b/curriculum/challenges/english/blocks/workshop-city-skyline/5d822fd413a79914d39e9904.md index 1b9d707de3bba0..b4c6d67c6122b8 100644 --- a/curriculum/challenges/english/blocks/workshop-city-skyline/5d822fd413a79914d39e9904.md +++ b/curriculum/challenges/english/blocks/workshop-city-skyline/5d822fd413a79914d39e9904.md @@ -17,7 +17,7 @@ gradient-type( ); ``` -Fill in `.bb3` with a `repeating-linear-gradient`. Use `90deg` for the direction, your `building-color3` for the first two colors, and `window-color3` at `15%` for the third. When you don't specify a distance for a color, it will use the values that makes sense. In this case, the first two colors will default to `0%` and `7.5%` because it starts at `0%`, and `7.5%` is half of the `15%`. +Fill in `.bb3` with a `repeating-linear-gradient`. Use `90deg` for the direction, your `building-color3` for the first two colors, and `window-color3` at `15%` for the third. When you don't specify a distance for a color, it will use the values that make sense. In this case, the first two colors will default to `0%` and `7.5%` because it starts at `0%`, and `7.5%` is half of the `15%`. # --hints-- diff --git a/curriculum/challenges/english/blocks/workshop-city-skyline/5d822fd413a79914d39e9938.md b/curriculum/challenges/english/blocks/workshop-city-skyline/5d822fd413a79914d39e9938.md index b1904ae26a1a79..59825934c3932e 100644 --- a/curriculum/challenges/english/blocks/workshop-city-skyline/5d822fd413a79914d39e9938.md +++ b/curriculum/challenges/english/blocks/workshop-city-skyline/5d822fd413a79914d39e9938.md @@ -32,7 +32,7 @@ assert.match(new __helpers.CSSHelp(document).getStyle(".sky")?.background, /radi You should give the `radial-gradient` a third color of `#bbeeff` at `100%`. ```js -assert.match(new __helpers.CSSHelp(document).getStyle(".sky")?.background, /radial-gradient\(rgb\(255, 207, 51\)( 0%)?, rgb\(255, 207, 51\) 20%, rgb\(255, 255, 102\) 21%, rgb\(187, 238, 255\) 100%\)/); +assert.match(new __helpers.CSSHelp(document).getStyle(".sky")?.background, /radial-gradient\(rgb\(255, 207, 51\)( 0%)?, rgb\(255, 207, 51\) 20%, rgb\(255, 255, 102\) 21%, rgb\(187, 238, 255\)( 100%)?\)/); ``` # --seed-- diff --git a/curriculum/challenges/english/blocks/workshop-email-simulator/685d53b5e4f5784562a12d1b.md b/curriculum/challenges/english/blocks/workshop-email-simulator/685d53b5e4f5784562a12d1b.md index 732ac244c283bc..3b6a0f4175d2ee 100644 --- a/curriculum/challenges/english/blocks/workshop-email-simulator/685d53b5e4f5784562a12d1b.md +++ b/curriculum/challenges/english/blocks/workshop-email-simulator/685d53b5e4f5784562a12d1b.md @@ -9,7 +9,7 @@ dashedName: step-45 Users should get confirmation when they successfully send an email. Let's improve the user experience by adding feedback to the `send_email` method. -In the `send_email` method of the `User` class, add a print statement after the email is sent that shows confirmation. The message should include both the sender's name and the receiver's name in this format: `Email sent from [sender_name] to [receiver_name]!\n` +In the `send_email` method of the `User` class, add a `print` statement after the email is sent that shows confirmation. The message should be `Email sent from [sender_name] to [receiver_name]!\n`, where `[sender_name]` is replaced by the sender's name and `[receiver_name]` is replaced by the receiver's name. # --hints-- diff --git a/curriculum/challenges/english/blocks/workshop-html-video-player/68f18724d71db1dda8d6fec7.md b/curriculum/challenges/english/blocks/workshop-html-video-player/68f18724d71db1dda8d6fec7.md new file mode 100644 index 00000000000000..c8c29501d43136 --- /dev/null +++ b/curriculum/challenges/english/blocks/workshop-html-video-player/68f18724d71db1dda8d6fec7.md @@ -0,0 +1,48 @@ +--- +id: 68f18724d71db1dda8d6fec7 +title: Step 1 +challengeType: 0 +dashedName: step-1 +demoType: onLoad +--- + +# --description-- + +In this workshop, you will build an HTML video player. The HTML boilerplate has been provided for you. + +Create an `h1` element and give it the text `Working with the HTML Video Element`. + +# --hints-- + +You should have an `h1` element. + +```js +assert.exists(document.querySelector('h1')); +``` + +Your `h1` element should contain the text `Working with the HTML Video Element`. + +```js +const h1 = document.querySelector('h1'); +assert.strictEqual(h1?.textContent.trim(), 'Working with the HTML Video Element'); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Working with the HTML Video Element + + +--fcc-editable-region-- + +--fcc-editable-region-- + + +``` diff --git a/curriculum/challenges/english/blocks/workshop-html-video-player/68f1eb9ad0a7575e4dbc31d5.md b/curriculum/challenges/english/blocks/workshop-html-video-player/68f1eb9ad0a7575e4dbc31d5.md new file mode 100644 index 00000000000000..ab969b995d7743 --- /dev/null +++ b/curriculum/challenges/english/blocks/workshop-html-video-player/68f1eb9ad0a7575e4dbc31d5.md @@ -0,0 +1,45 @@ +--- +id: 68f1eb9ad0a7575e4dbc31d5 +title: Step 2 +challengeType: 0 +dashedName: step-2 +--- + +# --description-- + +Next, create a `video` element below the `h1`. Over the next few steps, you will add the necessary attributes to make the video player functional. + +# --hints-- + +You should have a `video` element. + +```js +assert.exists(document.querySelector('video')); +``` + +The new `video` element should be below the `h1`. + +```js +assert.exists(document.querySelector('h1 + video')); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Working with the HTML Video Element + + +

Working with the HTML Video Element

+--fcc-editable-region-- + +--fcc-editable-region-- + + +``` diff --git a/curriculum/challenges/english/blocks/workshop-html-video-player/68f1f371fefd448b4f70b898.md b/curriculum/challenges/english/blocks/workshop-html-video-player/68f1f371fefd448b4f70b898.md new file mode 100644 index 00000000000000..814428a2d2aab9 --- /dev/null +++ b/curriculum/challenges/english/blocks/workshop-html-video-player/68f1f371fefd448b4f70b898.md @@ -0,0 +1,43 @@ +--- +id: 68f1f371fefd448b4f70b898 +title: Step 3 +challengeType: 0 +dashedName: step-3 +--- + +# --description-- + +In a previous lesson, you learned about different attributes available to the `video` element. The `width` attribute determines the width of the video in pixels. + +Add the `width` attribute to the `video` element with a value of `640`. + +# --hints-- + +Your `video` element should have the attribute `width` with the value `640`. + +```js +const video = document.querySelector('video'); +assert.strictEqual(video?.getAttribute('width'), '640'); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Working with the HTML Video Element + + +

Working with the HTML Video Element

+--fcc-editable-region-- + + + +``` diff --git a/curriculum/challenges/english/blocks/workshop-html-video-player/68f1f57723debf9383c75947.md b/curriculum/challenges/english/blocks/workshop-html-video-player/68f1f57723debf9383c75947.md new file mode 100644 index 00000000000000..89cf8473c2597f --- /dev/null +++ b/curriculum/challenges/english/blocks/workshop-html-video-player/68f1f57723debf9383c75947.md @@ -0,0 +1,45 @@ +--- +id: 68f1f57723debf9383c75947 +title: Step 4 +challengeType: 0 +dashedName: step-4 +--- + +# --description-- + +The `loop` attribute will restart the video once playback is completed. Think of an internet meme that repeats playback. Omitting the `loop` attribute will make the video playback once. + +The `loop` attribute is a boolean attribute and does not need a value. + +Add the `loop` attribute to the `video` element. + +# --hints-- + +Your `video` element should have the `loop` attribute. + +```js +const video = document.querySelector('video'); +assert.isTrue(video?.hasAttribute('loop')); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Working with the HTML Video Element + + +

Working with the HTML Video Element

+--fcc-editable-region-- + + + +``` diff --git a/curriculum/challenges/english/blocks/workshop-html-video-player/68f1f6f97af9749a42260a43.md b/curriculum/challenges/english/blocks/workshop-html-video-player/68f1f6f97af9749a42260a43.md new file mode 100644 index 00000000000000..f7adf94d19b4d9 --- /dev/null +++ b/curriculum/challenges/english/blocks/workshop-html-video-player/68f1f6f97af9749a42260a43.md @@ -0,0 +1,47 @@ +--- +id: 68f1f6f97af9749a42260a43 +title: Step 5 +challengeType: 0 +dashedName: step-5 +--- + +# --description-- + +The `controls` attribute provides playback controls including playback, rewind, and volume control for the `video` element. + +The `controls` attribute is a boolean attribute and does not need a value. + +Add the `controls` attribute to the `video` element. + +Now you should see the video element displayed on the page. + +# --hints-- + +Your `video` element should have the `controls` attribute. + +```js +const video = document.querySelector('video'); +assert.isTrue(video?.hasAttribute('controls')); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Working with the HTML Video Element + + +

Working with the HTML Video Element

+--fcc-editable-region-- + + + +``` diff --git a/curriculum/challenges/english/blocks/workshop-html-video-player/68f1f8c248306da204655117.md b/curriculum/challenges/english/blocks/workshop-html-video-player/68f1f8c248306da204655117.md new file mode 100644 index 00000000000000..213f43edd505af --- /dev/null +++ b/curriculum/challenges/english/blocks/workshop-html-video-player/68f1f8c248306da204655117.md @@ -0,0 +1,45 @@ +--- +id: 68f1f8c248306da204655117 +title: Step 6 +challengeType: 0 +dashedName: step-6 +--- + +# --description-- + +The `muted` attribute will silence audio on initial playback. If you have `controls` enabled, the user will be able to unmute audio. Omitting the `muted` attribute will play audio on initial playback. + +The `muted` attribute is a boolean attribute and does not need a value. + +Add the `muted` attribute to the `video` element. + +# --hints-- + +Your `video` element should have the `muted` attribute. + +```js +const video = document.querySelector('video'); +assert.isTrue(video?.hasAttribute('muted')); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Working with the HTML Video Element + + +

Working with the HTML Video Element

+--fcc-editable-region-- + + + +``` diff --git a/curriculum/challenges/english/blocks/workshop-html-video-player/68f1f993460f06a64c033061.md b/curriculum/challenges/english/blocks/workshop-html-video-player/68f1f993460f06a64c033061.md new file mode 100644 index 00000000000000..c6f5198f15ca61 --- /dev/null +++ b/curriculum/challenges/english/blocks/workshop-html-video-player/68f1f993460f06a64c033061.md @@ -0,0 +1,48 @@ +--- +id: 68f1f993460f06a64c033061 +title: Step 7 +challengeType: 0 +dashedName: step-7 +--- + +# --description-- + +The `poster` attribute is a thumbnail image of the video. Think of the videos you watch on YouTube. It's displayed while the video is downloading. If the attribute is omitted, the first video frame is shown during the download phase. + +Now, add the `poster` attribute with the value `https://cdn.freecodecamp.org/curriculum/labs/past-event2.jpg` to your `video` element. + +# --hints-- + +Your `video` element should have the `poster` attribute with the value `https://cdn.freecodecamp.org/curriculum/labs/past-event2.jpg`. + +```js +const video = document.querySelector('video'); +assert.strictEqual(video?.getAttribute('poster'), 'https://cdn.freecodecamp.org/curriculum/labs/past-event2.jpg'); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Working with the HTML Video Element + + +

Working with the HTML Video Element

+--fcc-editable-region-- + + + +``` diff --git a/curriculum/challenges/english/blocks/workshop-html-video-player/68f1fac259a4afabb478b960.md b/curriculum/challenges/english/blocks/workshop-html-video-player/68f1fac259a4afabb478b960.md new file mode 100644 index 00000000000000..c7b533baa3822b --- /dev/null +++ b/curriculum/challenges/english/blocks/workshop-html-video-player/68f1fac259a4afabb478b960.md @@ -0,0 +1,60 @@ +--- +id: 68f1fac259a4afabb478b960 +title: Step 8 +challengeType: 0 +dashedName: step-8 +--- + +# --description-- + +You might have noticed you didn't link to the actual video. You will do that in the next phase. When it comes to video file types, there are differences in browser support. To accommodate this, you can use `source` elements inside the `video` element and the browser will select the first compatible `source`. + +Here is an example of a `source` element: + +```html + +``` + +The `source` element is a void element so it does not have a closing tag. + +Add a `source` element inside of your `video` element. + + +# --hints-- + +You should have a `source` element inside of your `video` element. + +```js +assert.exists(document.querySelector('video > source')); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Working with the HTML Video Element + + +

Working with the HTML Video Element

+ + + +``` diff --git a/curriculum/challenges/english/blocks/workshop-html-video-player/68f268880219c2485bd71d2a.md b/curriculum/challenges/english/blocks/workshop-html-video-player/68f268880219c2485bd71d2a.md new file mode 100644 index 00000000000000..79c84e24f307cb --- /dev/null +++ b/curriculum/challenges/english/blocks/workshop-html-video-player/68f268880219c2485bd71d2a.md @@ -0,0 +1,58 @@ +--- +id: 68f268880219c2485bd71d2a +title: Step 9 +challengeType: 0 +dashedName: step-9 +--- + +# --description-- + +To specify the media resource for the video, you will need to add the `src` attribute to the `source` element. + +Add the `src` attribute with the value `https://cdn.freecodecamp.org/curriculum/labs/what-is-the-map-method-and-how-does-it-work.mp4`. + +# --hints-- + +Your `video` element should have a `src` attribute. + +```js +const source = document.querySelector('source'); +assert.isTrue(source?.hasAttribute('src')); +``` + +Your `source` element should have a `src` attribute with the value `https://cdn.freecodecamp.org/curriculum/labs/what-is-the-map-method-and-how-does-it-work.mp4`. + +```js +const source = document.querySelector('source'); +assert.strictEqual(source?.getAttribute('src'), +'https://cdn.freecodecamp.org/curriculum/labs/what-is-the-map-method-and-how-does-it-work.mp4'); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Working with the HTML Video Element + + +

Working with the HTML Video Element

+ + + +``` diff --git a/curriculum/challenges/english/blocks/workshop-html-video-player/68f26a5f79e97c5032c10642.md b/curriculum/challenges/english/blocks/workshop-html-video-player/68f26a5f79e97c5032c10642.md new file mode 100644 index 00000000000000..349cf49b3ccad3 --- /dev/null +++ b/curriculum/challenges/english/blocks/workshop-html-video-player/68f26a5f79e97c5032c10642.md @@ -0,0 +1,66 @@ +--- +id: 68f26a5f79e97c5032c10642 +title: Step 10 +challengeType: 0 +dashedName: step-10 +--- + +# --description-- + +You have used a video file with an `mp4` file extension, and you need to tell the browser that so it knows how to read the file. + +You will use the `type` attribute to specify the `video/mp4` MIME type. + +MIME (Multipurpose Internet Mail Extensions) is a standard to describe documents in other forms besides ASCII text, for example, audio, video, and images. + +MP4, formally known as MPEG-4 Part 14, is a digital multimedia container format. It is widely used for storing video and audio, but it can also include other data types like subtitles and still images. MP4 files are designed for streaming over the Internet and are compatible with many devices and platforms. + +Now, add the `type` attribute and the value `video/mp4`. + +# --hints-- + +Your `source` element should have a `type` attribute. + +```js +const source = document.querySelector('source'); +assert.isTrue(source?.hasAttribute('type')); +``` + +Your `source` element should have a `type` attribute with the value `video/mp4`. + +```js +const source = document.querySelector('source'); +assert.strictEqual(source?.getAttribute('type'), 'video/mp4'); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Working with the HTML Video Element + + +

Working with the HTML Video Element

+ + + +``` diff --git a/curriculum/challenges/english/blocks/workshop-html-video-player/68f26d52b13e0f5b6e2d2e09.md b/curriculum/challenges/english/blocks/workshop-html-video-player/68f26d52b13e0f5b6e2d2e09.md new file mode 100644 index 00000000000000..bb22d64c80d4f8 --- /dev/null +++ b/curriculum/challenges/english/blocks/workshop-html-video-player/68f26d52b13e0f5b6e2d2e09.md @@ -0,0 +1,83 @@ +--- +id: 68f26d52b13e0f5b6e2d2e09 +title: Step 11 +challengeType: 0 +dashedName: step-11 +--- + +# --description-- + +Another common MIME type is the `video/webm` MIME type. + +WebM is an open-source audiovisual media file format developed by Google, primarily designed for web-based media content. It supports video codecs like VP8, VP9, and AV1, and audio codecs such as Vorbis and Opus, making it a popular choice for HTML5 video and audio elements. + +Below your first `source` element, add another `source` element and give it a `src` attribute with the value `https://cdn.freecodecamp.org/curriculum/labs/mapmethod.webm` and a `type` attribute with the value `video/webm`. + +# --hints-- + +You should have a second `source` element. + +```js +assert.exists(document.querySelector('video > source:nth-of-type(2)')); +``` + +Your second `source` element should have a `src` attribute. + +```js +const source = document.querySelector('source:nth-of-type(2)'); +assert.isTrue(source?.hasAttribute('src')); +``` + +Your second `source` element should have a `src` attribute with a value of `https://cdn.freecodecamp.org/curriculum/labs/mapmethod.webm`. + +```js +const source = document.querySelector('source:nth-of-type(2)'); +assert.strictEqual(source?.getAttribute('src'), 'https://cdn.freecodecamp.org/curriculum/labs/mapmethod.webm'); +``` + +Your second `source` element should have a `type` attribute. + +```js +const source = document.querySelector('source:nth-of-type(2)'); +assert.isTrue(source?.hasAttribute('type')); +``` + +Your second `source` element should have a `type` attribute with a value of `video/webm`. + +```js +const source = document.querySelector('source:nth-of-type(2)'); +assert.strictEqual(source?.getAttribute('type'), 'video/webm'); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Working with the HTML Video Element + + +

Working with the HTML Video Element

+ + + +``` diff --git a/curriculum/challenges/english/blocks/workshop-html-video-player/68f2701b2160c765f23b60f8.md b/curriculum/challenges/english/blocks/workshop-html-video-player/68f2701b2160c765f23b60f8.md new file mode 100644 index 00000000000000..fe248de9c735de --- /dev/null +++ b/curriculum/challenges/english/blocks/workshop-html-video-player/68f2701b2160c765f23b60f8.md @@ -0,0 +1,87 @@ +--- +id: 68f2701b2160c765f23b60f8 +title: Step 12 +challengeType: 0 +dashedName: step-12 +--- + +# --description-- + +Another common MIME type is the `video/ogg` MIME type. + +Ogg is a digital multimedia container format designed to provide for efficient streaming and manipulation of digital multimedia. It is maintained by the Xiph.Org Foundation and is free and open, unrestricted by software patents. Its name is derived from "ogging", jargon from the computer game Netrek. + +Below your second `source` element, add a third `source` element and give it a `src` attribute with the value `https://cdn.freecodecamp.org/curriculum/labs/mapmethod.ogg` and a `type` attribute with the value `video/ogg`. + +# --hints-- + +You should have a third `source` element. + +```js +assert.exists(document.querySelector('video > source:nth-of-type(3)')); +``` + +Your third `source` element should have a `src` attribute. + +```js +const source = document.querySelector('source:nth-of-type(3)'); +assert.isTrue(source?.hasAttribute('src')); +``` + +Your third `source` element should have a `src` attribute with a value of `https://cdn.freecodecamp.org/curriculum/labs/mapmethod.ogg`. + +```js +const source = document.querySelector('source:nth-of-type(3)'); +assert.strictEqual(source?.getAttribute('src'), 'https://cdn.freecodecamp.org/curriculum/labs/mapmethod.ogg'); +``` + +Your third `source` element should have a `type` attribute. + +```js +const source = document.querySelector('source:nth-of-type(3)'); +assert.isTrue(source?.hasAttribute('type')); +``` + +Your third `source` element should have a `type` attribute with a value of `video/ogg`. + +```js +const source = document.querySelector('source:nth-of-type(3)'); +assert.strictEqual(source?.getAttribute('type'), 'video/ogg'); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Working with the HTML Video Element + + +

Working with the HTML Video Element

+ + + +``` diff --git a/curriculum/challenges/english/blocks/workshop-html-video-player/68f27139bddf9f6bf2821acf.md b/curriculum/challenges/english/blocks/workshop-html-video-player/68f27139bddf9f6bf2821acf.md new file mode 100644 index 00000000000000..7a6a634dbff035 --- /dev/null +++ b/curriculum/challenges/english/blocks/workshop-html-video-player/68f27139bddf9f6bf2821acf.md @@ -0,0 +1,133 @@ +--- +id: 68f27139bddf9f6bf2821acf +title: Step 13 +challengeType: 0 +dashedName: step-13 +--- + +# --description-- + +The last `source` element you will add will be for the `video/quicktime` MIME type. + +QuickTime is an extensible multimedia architecture created by Apple, which supports playing, streaming, encoding, and transcoding a variety of digital media formats. Not as popular as the MP4 format, you may need it for legacy application support. + +Below your third `source` element, add a fourth `source` element and give it a `src` attribute with the value `https://cdn.freecodecamp.org/curriculum/labs/mapmethod.mov` and `type` attribute with the value `video/quicktime`. + +Congratulations! You completed the HTML Video Player Workshop. + +# --hints-- + +You should have a fourth `source` element. + +```js +assert.exists(document.querySelector('video > source:nth-of-type(4)')); +``` + +Your fourth `source` element should have a `src` attribute. + +```js +const source = document.querySelector('source:nth-of-type(4)'); +assert.isTrue(source?.hasAttribute('src')); +``` + +Your fourth `source` element should have a `src` attribute with a value of `https://cdn.freecodecamp.org/curriculum/labs/mapmethod.mov`. + +```js +const source = document.querySelector('source:nth-of-type(4)'); +assert.strictEqual(source?.getAttribute('src'), 'https://cdn.freecodecamp.org/curriculum/labs/mapmethod.mov'); +``` + +Your fourth `source` element should have a `type` attribute. + +```js +const source = document.querySelector('source:nth-of-type(4)'); +assert.isTrue(source?.hasAttribute('type')); +``` + +Your fourth `source` element should have a `type` attribute with a value of `video/quicktime`. + +```js +const source = document.querySelector('source:nth-of-type(4)'); +assert.strictEqual(source?.getAttribute('type'), 'video/quicktime'); +``` + +# --seed-- + +## --seed-contents-- + +```html + + + + + + Working with the HTML Video Element + + +

Working with the HTML Video Element

+ + + +``` + +# --solutions-- + +```html + + + + + + Working with the HTML Video Element + + +

Working with the HTML Video Element

+ + + +``` diff --git a/curriculum/i18n-curriculum b/curriculum/i18n-curriculum index 59c8100b45eafc..a2e59ee106629d 160000 --- a/curriculum/i18n-curriculum +++ b/curriculum/i18n-curriculum @@ -1 +1 @@ -Subproject commit 59c8100b45eafc103591c7e5da114ab5fa9427fe +Subproject commit a2e59ee106629d7fb5a1480f3037dda7a6fde657 diff --git a/curriculum/structure/blocks/lab-debug-donation-form.json b/curriculum/structure/blocks/lab-debug-donation-form.json new file mode 100644 index 00000000000000..c1cd1596490513 --- /dev/null +++ b/curriculum/structure/blocks/lab-debug-donation-form.json @@ -0,0 +1,15 @@ +{ + "name": "Debug a Donation Form", + "isUpcomingChange": false, + "dashedName": "lab-debug-donation-form", + "helpCategory": "HTML-CSS", + "blockLayout": "link", + "challengeOrder": [ + { + "id": "690ddb5e6ee94eb73ed172b0", + "title": "Debug a Donation Form" + } + ], + "blockLabel": "lab", + "usesMultifileEditor": true +} diff --git a/curriculum/structure/blocks/quiz-node-js-core-modules.json b/curriculum/structure/blocks/quiz-node-js-core-modules.json new file mode 100644 index 00000000000000..bec8e4e87da170 --- /dev/null +++ b/curriculum/structure/blocks/quiz-node-js-core-modules.json @@ -0,0 +1,14 @@ +{ + "name": "NodeJS Core Modules Quiz", + "isUpcomingChange": true, + "dashedName": "quiz-node-js-core-modules", + "helpCategory": "Backend Development", + "challengeOrder": [ + { + "id": "692487767b6b728454f53f29", + "title": "NodeJS Core Modules Quiz" + } + ], + "blockLabel": "quiz", + "blockLayout": "link" +} diff --git a/curriculum/structure/blocks/review-node-js-core-modules.json b/curriculum/structure/blocks/review-node-js-core-modules.json new file mode 100644 index 00000000000000..0eaad703cd9a97 --- /dev/null +++ b/curriculum/structure/blocks/review-node-js-core-modules.json @@ -0,0 +1,14 @@ +{ + "name": "Node.js Core Modules Review", + "isUpcomingChange": true, + "dashedName": "review-node-js-core-modules", + "helpCategory": "Backend Development", + "blockLayout": "link", + "challengeOrder": [ + { + "id": "69247cd74caa633ccd7e3351", + "title": "Node.js Core Modules Review" + } + ], + "blockLabel": "review" +} diff --git a/curriculum/structure/blocks/workshop-html-video-player.json b/curriculum/structure/blocks/workshop-html-video-player.json new file mode 100644 index 00000000000000..96afa24cd94383 --- /dev/null +++ b/curriculum/structure/blocks/workshop-html-video-player.json @@ -0,0 +1,25 @@ +{ + "name": "Build an HTML Video Player", + "isUpcomingChange": false, + "dashedName": "workshop-html-video-player", + "helpCategory": "HTML-CSS", + "blockLayout": "challenge-grid", + "challengeOrder": [ + { "id": "68f18724d71db1dda8d6fec7", "title": "Step 1" }, + { "id": "68f1eb9ad0a7575e4dbc31d5", "title": "Step 2" }, + { "id": "68f1f371fefd448b4f70b898", "title": "Step 3" }, + { "id": "68f1f57723debf9383c75947", "title": "Step 4" }, + { "id": "68f1f6f97af9749a42260a43", "title": "Step 5" }, + { "id": "68f1f8c248306da204655117", "title": "Step 6" }, + { "id": "68f1f993460f06a64c033061", "title": "Step 7" }, + { "id": "68f1fac259a4afabb478b960", "title": "Step 8" }, + { "id": "68f268880219c2485bd71d2a", "title": "Step 9" }, + { "id": "68f26a5f79e97c5032c10642", "title": "Step 10" }, + { "id": "68f26d52b13e0f5b6e2d2e09", "title": "Step 11" }, + { "id": "68f2701b2160c765f23b60f8", "title": "Step 12" }, + { "id": "68f27139bddf9f6bf2821acf", "title": "Step 13" } + ], + "blockLabel": "workshop", + "usesMultifileEditor": true, + "hasEditableBoundaries": true +} diff --git a/curriculum/structure/superblocks/back-end-development-and-apis-v9.json b/curriculum/structure/superblocks/back-end-development-and-apis-v9.json index 0d3ce0600ee651..cc3aed11103460 100644 --- a/curriculum/structure/superblocks/back-end-development-and-apis-v9.json +++ b/curriculum/structure/superblocks/back-end-development-and-apis-v9.json @@ -16,7 +16,7 @@ { "dashedName": "nodejs-core-modules", "comingSoon": true, - "blocks": [] + "blocks": ["review-node-js-core-modules", "quiz-node-js-core-modules"] }, { "dashedName": "node-package-manager", diff --git a/curriculum/structure/superblocks/responsive-web-design-v9.json b/curriculum/structure/superblocks/responsive-web-design-v9.json index 86a3450f1cca27..82854d866ebf37 100644 --- a/curriculum/structure/superblocks/responsive-web-design-v9.json +++ b/curriculum/structure/superblocks/responsive-web-design-v9.json @@ -18,6 +18,7 @@ "lecture-understanding-how-html-affects-seo", "lab-travel-agency-page", "lecture-working-with-audio-and-video-elements", + "workshop-html-video-player", "lab-html-audio-and-video-player", "lecture-working-with-images-and-svgs", "workshop-build-a-heart-icon", @@ -69,6 +70,7 @@ "workshop-debug-coding-journey-blog-page", "lecture-accessible-tables-forms", "workshop-tech-conference-schedule", + "lab-debug-donation-form", "lecture-introduction-to-aria", "workshop-accessible-audio-controller", "lecture-accessible-media-elements", diff --git a/e2e/action-row.spec.ts b/e2e/action-row.spec.ts index 2b1f39620f14a0..bd7cc09b3de804 100644 --- a/e2e/action-row.spec.ts +++ b/e2e/action-row.spec.ts @@ -9,7 +9,7 @@ test.describe('Desktop view', () => { test.describe('Pages with previews', () => { test.beforeEach(async ({ page }) => { await page.goto( - '/learn/2022/responsive-web-design/build-a-survey-form-project/build-a-survey-form' + '/learn/responsive-web-design-v9/lab-event-flyer-page/build-an-event-flyer-page' ); }); @@ -42,7 +42,7 @@ test.describe('Desktop view', () => { } const instructionsPanelTitle = page.getByRole('heading', { - name: 'Build a Survey Form' + name: 'Build an Event Flyer Page' }); await expect(instructionsPanelTitle).toBeHidden(); }); @@ -90,9 +90,7 @@ test.describe('Desktop view', () => { test('Preview Buttons should not appear when preview is disabled', async ({ page }) => { - await page.goto( - '/learn/javascript-algorithms-and-data-structures-v8/learn-introductory-javascript-by-building-a-pyramid-generator/step-1' - ); + await page.goto('/learn/javascript-v9/workshop-greeting-bot/step-1'); const previewButton = page.getByTestId('preview-pane-button'); await expect(previewButton).toHaveCount(0); }); @@ -104,7 +102,7 @@ test.describe('Mobile view', () => { test('Action row is hidden', async ({ page }) => { await page.goto( - '/learn/2022/responsive-web-design/build-a-survey-form-project/build-a-survey-form' + '/learn/responsive-web-design-v9/lab-survey-form/build-a-survey-form' ); const actionRow = page.getByTestId('action-row'); await expect(actionRow).toBeHidden(); diff --git a/e2e/basic-css.spec.ts b/e2e/basic-css.spec.ts deleted file mode 100644 index eff7058bba9fa9..00000000000000 --- a/e2e/basic-css.spec.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { test, expect } from '@playwright/test'; - -const locations = { - index: '/learn/responsive-web-design/#basic-css' -}; - -const lessonNames = [ - 'Change the Color of Text', - 'Use CSS Selectors to Style Elements', - 'Use a CSS Class to Style an Element', - 'Style Multiple Elements with a CSS Class', - 'Change the Font Size of an Element', - 'Set the Font Family of an Element', - 'Import a Google Font', - 'Specify How Fonts Should Degrade', - 'Size Your Images', - 'Add Borders Around Your Elements', - 'Add Rounded Corners with border-radius', - 'Make Circular Images with a border-radius', - 'Give a Background Color to a div Element', - 'Set the id of an Element', - 'Use an id Attribute to Style an Element', - 'Adjust the Padding of an Element', - 'Adjust the Margin of an Element', - 'Add a Negative Margin to an Element', - 'Add Different Padding to Each Side of an Element', - 'Add Different Margins to Each Side of an Element', - 'Use Clockwise Notation to Specify the Padding of an Element', - 'Use Clockwise Notation to Specify the Margin of an Element', - 'Use Attribute Selectors to Style Elements', - 'Understand Absolute versus Relative Units', - 'Style the HTML Body Element', - 'Inherit Styles from the Body Element', - 'Prioritize One Style Over Another', - 'Override Styles in Subsequent CSS', - 'Override Class Declarations by Styling ID Attributes', - 'Override Class Declarations with Inline Styles', - 'Override All Other Styles by using Important', - 'Use Hex Code for Specific Colors', - 'Use Hex Code to Mix Colors', - 'Use Abbreviated Hex Code', - 'Use RGB values to Color Elements', - 'Use RGB to Mix Colors', - 'Use CSS Variables to change several elements at once', - 'Create a custom CSS Variable', - 'Use a custom CSS Variable', - 'Attach a Fallback value to a CSS Variable', - 'Improve Compatibility with Browser Fallbacks', - 'Inherit CSS Variables', - 'Change a variable for a specific area', - 'Use a media query to change a variable' -]; - -const warningMessage = - 'Note: Some browser extensions, such as ad-blockers and dark mode extensions can interfere with the tests. If you face issues, we recommend disabling extensions that modify the content or layout of pages, while taking the course.'; - -test.describe('Responsive Web Design Projects - Basic CSS', () => { - test('renders', async ({ page }) => { - await page.goto(locations.index); - - await expect(page.getByText(warningMessage)).toBeVisible(); - - for (const lessonName of lessonNames) { - await expect( - page.getByRole('link', { name: lessonName, exact: false }) - ).toBeVisible(); - } - }); -}); diff --git a/e2e/bread-crumb.spec.ts b/e2e/bread-crumb.spec.ts index a8b44e3a03222b..0464043a528291 100644 --- a/e2e/bread-crumb.spec.ts +++ b/e2e/bread-crumb.spec.ts @@ -2,7 +2,7 @@ import { test, expect } from '@playwright/test'; test.beforeEach(async ({ page }) => { await page.goto( - '/learn/2022/responsive-web-design/learn-html-by-building-a-cat-photo-app/step-2' + '/learn/responsive-web-design-v9/workshop-cat-photo-app/step-2' ); }); @@ -13,24 +13,24 @@ test.describe('Challenge Breadcrumb Tests', () => { await expect(superBlock).toBeVisible(); const superBlockLink = superBlock.getByRole('link', { - name: 'Responsive Web Design' + name: 'Responsive Web Design Certification' }); await expect(superBlockLink).toBeVisible(); await expect(superBlockLink).toHaveAttribute( 'href', - '/learn/2022/responsive-web-design' + '/learn/responsive-web-design-v9' ); const block = page.getByTestId(testId).getByRole('listitem').last(); await expect(superBlock).toBeVisible(); const blockLink = block.getByRole('link', { - name: 'Learn HTML by Building a Cat Photo App' + name: 'Build a Cat Photo App' }); await expect(blockLink).toBeVisible(); await expect(blockLink).toHaveAttribute( 'href', - '/learn/2022/responsive-web-design/#learn-html-by-building-a-cat-photo-app' + '/learn/responsive-web-design-v9/#workshop-cat-photo-app' ); }; diff --git a/e2e/cert-username-case-navigation.spec.ts b/e2e/cert-username-case-navigation.spec.ts index 6b597fa33d1a25..3d57b94664d30e 100644 --- a/e2e/cert-username-case-navigation.spec.ts +++ b/e2e/cert-username-case-navigation.spec.ts @@ -16,7 +16,7 @@ test.describe('Public profile certifications', () => { await expect( page.getByRole('link', { name: /View.+Certification/ }) - ).toHaveCount(24); + ).toHaveCount(25); }); test('Should show claimed certifications if the username includes uppercase characters', async ({ @@ -48,7 +48,7 @@ test.describe('Public profile certifications', () => { await page.waitForURL('/certifiedboozer'); await expect( page.getByRole('link', { name: /View.+Certification/ }) - ).toHaveCount(24); + ).toHaveCount(25); }); test.afterAll(() => { diff --git a/shared/config/certification-settings.ts b/shared/config/certification-settings.ts index 35b18f36a7fc79..40947a925d1283 100644 --- a/shared/config/certification-settings.ts +++ b/shared/config/certification-settings.ts @@ -55,6 +55,7 @@ export function isCertification(x: string): x is Certification { // live and not legacy. export const currentCertifications = [ Certification.A2English, + Certification.B1English, Certification.FoundationalCSharp, Certification.JsV9, Certification.PythonV9, @@ -96,7 +97,6 @@ export const upcomingCertifications = [ Certification.FrontEndDevLibsV9, Certification.BackEndDevApisV9, Certification.FullStackDeveloperV9, - Certification.B1English, Certification.A2Spanish, Certification.A2Chinese, Certification.A1Chinese diff --git a/tools/scripts/seed/user-data.js b/tools/scripts/seed/user-data.js index 9bf7c6b33f673b..c3bd4f397a67f8 100644 --- a/tools/scripts/seed/user-data.js +++ b/tools/scripts/seed/user-data.js @@ -221,6 +221,7 @@ module.exports.fullyCertifiedUser = { currentChallengeId: '', isHonest: true, isA2EnglishCert: true, + isB1EnglishCert: true, isFrontEndCert: true, isDataVisCert: true, isBackEndCert: true,