Skip to content

feat(locale): add Azerbaijani translation - #5896

Merged
fguillot merged 1 commit into
kanboard:mainfrom
jamalkamaladdin:feat/az-locale
Sep 11, 2026
Merged

fguillot merged 1 commit into
kanboard:mainfrom
jamalkamaladdin:feat/az-locale

Conversation

@jamalkamaladdin

Copy link
Copy Markdown
Contributor

Adds Azerbaijani (az_AZ) as a new interface language.

  • app/Locale/az_AZ/translations.php — all 1468 strings translated, none left empty
  • app/Model/LanguageModel.php — registered in the three places: getCodes(), the language name map (Azərbaycanca) and the JS code map (az)

Locale conventions

number.decimals_separator is , and number.thousands_separator is ., and the date format is %%d.%%m.%%Y. These follow CLDR for az, where 1234567.89 renders as 1.234.567,89 and 25 November 2020 as 25.11.2020.

Notes on terminology

Azerbaijani and Turkish are close enough that Turkish forms slip into Azerbaijani translations easily, so terminology was fixed up front and then checked mechanically: one stem per concept, so tapşırıq (task), layihə (project), sütun (column), zolaq (swimlane), icraçı (assignee) and teq (tag) never appear spelled two different ways.

Terms with no settled Azerbaijani equivalent were translated by their meaning rather than transliterated:

  • lead time → ümumi müddət and cycle time → icra müddəti — the file itself defines them as creation-to-completion and start-to-completion, so the pair stays distinguishable
  • burndown chart → qalan iş qrafiki, matching the "(Work Remaining)" wording of its own description
  • backlog → gözləyən işlər

Only genuine technical names are kept in English: API, URL, RSS, iCal, Webhook, PHP, SAPI, OAuth2, BOM, HTTP, Markdown, Kanboard.

Checks

  • php -l is clean on both files.
  • The file loads and yields exactly 1468 keys, in the same order as the other locales, with no missing key, no extra key and no empty value.
  • Every %s, %d and %% placeholder matches the source string — verified key by key against an existing locale; 0 differences.
  • Every value was scanned against the Azerbaijani alphabet and against a list of Turkish-only words, with no leftovers.

I was not able to run the PHPUnit suite locally, so tests/units/Model/LanguageTest.php has not been executed on my side — it asserts specific codes rather than a count, so adding az_AZ should not affect it, but CI will confirm.

@fguillot
fguillot merged commit 7403a52 into kanboard:main Sep 11, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants