Giter Site home page Giter Site logo

entelecheia / course-template-i18n Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 1.0 1.84 MB

Multilingual course creation template with interactive documentation support for international audiences

Home Page: https://entelecheia.github.io/course-template-i18n/

License: Creative Commons Attribution 4.0 International

Shell 44.25% Makefile 17.83% JavaScript 6.34% TeX 0.05% Python 6.44% HTML 5.85% CSS 19.24%

course-template-i18n's Introduction

Course Template Internationalization

pypi-image version-image release-date-image license-image codecov jupyter-book-image

Multilingual course creation template with interactive documentation support for international audiences

This project provides a comprehensive and flexible template for creating and managing multilingual online courses. It leverages GitHub for version control and Jupyter Book for interactive content delivery, enabling educators to easily develop, maintain, and share their educational materials across different languages and cultures.

Changelog

See the CHANGELOG for more information.

Contributing

Contributions are welcome! Please see the contributing guidelines for more information.

License

This project is released under the CC-BY-4.0 License.

course-template-i18n's People

Contributors

entelecheia avatar dependabot[bot] avatar

Watchers

 avatar

Forkers

hyper-templates

course-template-i18n's Issues

Make course-template-i18n an example template for hyperfast-course-template copier

Description:

We should enhance the course-template-i18n repository to serve as an exemplary template for use with the hyperfast-course-template copier. This will streamline the process of creating new multilingual courses and improve user experience. To achieve this, we should:

  1. Update the repository structure to align with hyperfast-course-template copier requirements.
  2. Add necessary configuration files for seamless integration with the copier tool.
  3. Provide example content that showcases the multilingual capabilities and best practices for course creation.
  4. Ensure all dependencies and setup instructions are clearly defined for easy replication.
  5. Create a step-by-step guide for users to quickly get started with course creation using this template.

By implementing these changes, we'll make it easier for educators and content creators to leverage our multilingual course creation tools and expand their reach to international audiences.

Convert repo to a Copier template

Description

Currently, this repo provides a template for creating multilingual online courses, but it requires manually cloning or copying the files to get started with a new project. To improve the user experience and make it easier to create new projects from this template, we should convert it to a Copier template.

Copier is a library for rendering project templates. By making this repo a Copier template, users will be able to run a single command to generate a new project based on this template, with the ability to customize certain values during the generation process.

To convert this repo to a Copier template, we need to:

  1. Install Copier and its dependencies.
  2. Create a copier.yml file in the root of the repo, which will contain the template configuration.
  3. Update the README with instructions on how to use Copier to generate a new project from this template.
  4. Consider adding prompts in the copier.yml file to allow users to customize certain values (e.g., project name, author name, etc.) during the project generation process.
  5. Test the Copier template by generating a new project and ensuring everything works as expected.

By making this repo a Copier template, we can significantly improve the user experience and make it easier for educators and developers to create new multilingual online courses based on this template.

Convert course-template-i18n to a Copier template

Description:

We should convert our course-template-i18n repository to a Copier template to enhance its reusability and make it easier for users to create new multilingual course projects based on our template.

Tasks:

  1. Install Copier if not already available in the development environment.
  2. Create a copier.yml file in the root of the repository with the necessary configuration:
    • Define template variables (e.g., project_name, author, supported_languages)
    • Set up questions for user input during project creation
  3. Adjust the existing file structure to work with Copier:
    • Use Jinja2 templating syntax where needed (e.g., for dynamic content)
    • Create a .copier-answers.yml file to store template answers
  4. Update the README.md to include instructions on how to use the Copier template
  5. Test the template by creating a new project using Copier
  6. Update documentation to reflect the new Copier-based workflow
  7. Consider creating a GitHub Action to automatically validate the Copier template on push/PR

Benefits:

  • Streamlined process for creating new multilingual course projects
  • Improved consistency across projects using this template
  • Enhanced flexibility for users to customize their course setup

Implement multilingual support for course content

Description:

Our course-template project currently supports only a single language. To make our course materials more accessible to a global audience, we should implement multilingual support using Jupyter Book's internationalization features. This issue outlines the specific steps to achieve this goal.

Tasks:

  1. Update _config.yml in the docs/ folder to include the following settings:
sphinx:
  config:
    language: en # Define the source language
    html_search_language: en # Adjust as needed for better search parsing
    # i18n related settings
    nb_render_priority:
      gettext: {}
    locale_dirs: ["locale/"]
    gettext_compact: false
    gettext_additional_targets: ["literal-block"]
    gettext_location: false
  1. Generate gettext files (translation templates):

    jupyter book build --builder custom --custom-builder gettext docs
    
  2. Create .po files for the target language:

    sphinx-intl update -p docs/_build/gettext -d docs/locale -l [target_language]
    

    Replace [target_language] with the desired language code (e.g., 'es' for Spanish, 'ko' for Korean).

  3. Translate the content in the generated .po files.

  4. Build the HTML files for the source language:

    jupyter book build docs
    
  5. Generate HTML files for the target language:

    jupyter book config sphinx docs
    sphinx-build -b html -D language=[target_language] docs [path_for_translated_htmls]
    

    Replace [target_language] and [path_for_translated_htmls] as appropriate.

  6. Implement a language switcher in the book's HTML template.

  7. Update build scripts or GitHub Actions to automate the multilingual build process.

  8. Update project documentation to explain the multilingual structure and how to add new languages.

  9. Test the multilingual setup thoroughly, ensuring all languages render correctly and the language switcher works as expected.

Additional Considerations:

  • Decide on a directory structure for multilingual content (e.g., docs/en/, docs/es/, etc.)
  • Ensure the table of contents (_toc.yml) is properly structured for each language.
  • Consider using a translation management tool to streamline the translation process for larger projects.

This enhancement will significantly increase the accessibility of our course materials, making them available to a broader, global audience.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.