italia / italia/publiccode-editor

add Greek localisation

Open
#652 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
TypeScript
Stars
32
Forks
33
Avg merge
3d 15h
Merged PRs (30d)
16

Description

## Context

Derived from requirement **RF-PCE-002**. Part of #647.

## Scope

Add the Greek (`el`) UI localisation: translate every string the editor exposes, using
`en.json` as the reference for the key structure.

Greek is the first locale in the editor that does not use the Latin alphabet, so this
one carries some work the other translations do not: the design system's typography has
to render the script correctly, and nothing in the layout may assume Latin-script string
widths.

## Affected areas

- `src/i18n/locales/el.json` — new file, mirroring the keys of `en.json` (~23 KB)
- `src/i18n/index.ts` — register the locale so it appears in the language picker
- `formatLanguageLabel()` in `src/i18n/index.ts` — it uppercases the `Intl.DisplayNames`
output, and uppercasing Greek removes accents (Ελληνικά → ΕΛΛΗΝΙΚΑ). That is correct
Greek orthography, but the result should be checked rather than assumed.

## Non-functional constraints

- **RNF-PCE-006 — Long-term sustainability**: the translation has to stay complete after
merge, so it must pass the completeness check introduced in #647.

## Acceptance criteria

- [ ] `el.json` covers every key present in `en.json`
- [ ] The locale is selectable in the language picker
- [ ] The translation is reviewed by a Greek speaker
- [ ] Terminology is consistent with the `publiccode.yml` specification: field names and
standard terms keep their meaning rather than being translated ad hoc
- [ ] Greek text renders correctly in the Bootstrap Italia / Design React Kit
typography, with no missing glyphs or fallback fonts
- [ ] No layout breakage in the form, warnings panel or language picker from non-Latin
script

Contributor guide

Open the contributing guide

Research direction

Start with src/i18n/locales/en.json and the completeness check introduced in #647, then inspect src/i18n/index.ts, including formatLanguageLabel(). Add the Greek locale with matching keys, register it in the language picker, and verify Greek typography and layout in the form, warnings panel, and picker. Done means the completeness check passes, terminology is reviewed by a Greek speaker, and no missing glyphs or layout breakage remain.

Written by the indexing model from the issue text.

Assessment

Tech stack
bootstrap, react, typescript
Domain
frontend, localization
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.