[Help wanted] Expand Gram's language support: Native speakers needed! #3

Open
opened 2026-07-14 23:47:56 +02:00 by abiwab · 0 comments
abiwab commented 2026-07-14 23:47:56 +02:00 (Migrated from codeberg.org)

Context

Gram currently supports English and French natively. As the project grows, I would love to make it accessible to a wider global audience by expanding our language support.

What needs to be translated?

We are focusing strictly on the core language engine. This means translating the vocabulary Gram uses to parse recipes.
It involves editing just three files in the @gram-lang/i18n package:

  1. units.ts: Measurement units (grams, cups, spoons) and their abbreviations.
  2. time.ts: Time units (minutes, hours, days).
  3. categories.ts: Ingredient categories (dairy, meat, vegetables, etc.).

Note: Translating the documentation or the web playground UI are separate topics that we will tackle later.

The Challenge

Cooking vocabulary is highly specific, and culinary traditions vary significantly from one country to another. Simple machine translation isn't enough to capture the exact culinary terms, abbreviations, or cultural specificities required for a recipe programming language.

This is why I need your help! I am looking for native speakers (or highly fluent individuals) to ensure the translations feel natural to people cooking in that language.

How to get started (It's very easy!)

You don't need to be an expert developer to help. Everything happens in the packages/i18n/src/ directory.

  1. Leave a comment below stating which language you'd like to work on.
  2. To contribute a new language (e.g., Spanish es), open these 3 files:
  3. In each file, look at how the en (English) or fr (French) dictionaries are built.
  4. Create a new dictionary block for your language (e.g., const es = { ... }), translate the arrays of terms, and add your new language to the export at the bottom of the file.
  5. Open a Pull Request! We can discuss any cultural specificities or unique culinary terms directly there.

💡 Note on architecture: As we add more languages, I plan to restructure the i18n package to group files by language (e.g., src/es/units.ts) rather than having everyone edit the same shared files. For your first contribution, however, feel free to just add your language to the existing files as described above!

Languages Tracker

(I will update this list as people volunteer)

  • 🇬🇧 English (Native)
  • 🇫🇷 French (Native)
  • 🇪🇸 Spanish - Looking for volunteer
  • 🇵🇹 Portuguese - Looking for volunteer
  • 🇩🇪 German - Looking for volunteer
  • 🇮🇹 Italian - Looking for volunteer
  • (Your language here!)
## Context Gram currently supports **English** and **French** natively. As the project grows, I would love to make it accessible to a wider global audience by expanding our language support. ## What needs to be translated? We are focusing strictly on the **core language engine**. This means translating the vocabulary Gram uses to parse recipes. It involves editing just three files in the `@gram-lang/i18n` package: 1. `units.ts`: Measurement units (grams, cups, spoons) and their abbreviations. 2. `time.ts`: Time units (minutes, hours, days). 3. `categories.ts`: Ingredient categories (dairy, meat, vegetables, etc.). *Note: Translating the documentation or the web playground UI are separate topics that we will tackle later.* ## The Challenge Cooking vocabulary is highly specific, and culinary traditions vary significantly from one country to another. Simple machine translation isn't enough to capture the exact culinary terms, abbreviations, or cultural specificities required for a recipe programming language. **This is why I need your help!** I am looking for native speakers (or highly fluent individuals) to ensure the translations feel natural to people cooking in that language. ## How to get started (It's very easy!) You don't need to be an expert developer to help. Everything happens in the `packages/i18n/src/` directory. 1. **Leave a comment below** stating which language you'd like to work on. 2. To contribute a new language (e.g., Spanish `es`), open these 3 files: - [`src/units.ts`](https://codeberg.org/abiwab/gram/src/branch/main/packages/i18n/src/units.ts) - [`src/time.ts`](https://codeberg.org/abiwab/gram/src/branch/main/packages/i18n/src/time.ts) - [`src/categories.ts`](https://codeberg.org/abiwab/gram/src/branch/main/packages/i18n/src/categories.ts) 3. In each file, look at how the `en` (English) or `fr` (French) dictionaries are built. 4. Create a new dictionary block for your language (e.g., `const es = { ... }`), translate the arrays of terms, and add your new language to the export at the bottom of the file. 5. Open a Pull Request! We can discuss any cultural specificities or unique culinary terms directly there. > 💡 **Note on architecture:** As we add more languages, I plan to restructure the `i18n` package to group files by language (e.g., `src/es/units.ts`) rather than having everyone edit the same shared files. For your first contribution, however, feel free to just add your language to the existing files as described above! ## Languages Tracker *(I will update this list as people volunteer)* - [x] 🇬🇧 English (Native) - [x] 🇫🇷 French (Native) - [ ] 🇪🇸 Spanish - *Looking for volunteer* - [ ] 🇵🇹 Portuguese - *Looking for volunteer* - [ ] 🇩🇪 German - *Looking for volunteer* - [ ] 🇮🇹 Italian - *Looking for volunteer* - [ ] *(Your language here!)*
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
gram-lang/gram#3
No description provided.