Visitar URL original
feat(l10n): add Azerbaijani translations by jamalkamaladdin · Pull Request #41816 · neovim/neovim · GitHub
Skip to content

feat(l10n): add Azerbaijani translations - #41816

Merged
justinmk merged 4 commits into
neovim:masterfrom
jamalkamaladdin:feat/az-locale
Oct 5, 2026
Merged

justinmk merged 4 commits into
neovim:masterfrom
jamalkamaladdin:feat/az-locale

Conversation

@jamalkamaladdin

Copy link
Copy Markdown
Contributor

Problem

Neovim has no Azerbaijani (az) message catalog.

Solution

New file src/nvim/po/az.po: 2083 messages, all filled in. 25 of them carry a msgid_plural and are given both forms. Header sets Plural-Forms: nplurals=2; plural=(n != 1);.

Entries are in source order, so a later msgmerge keeps the diff small.

src/nvim/po/CMakeLists.txt: added az to LANGUAGES.

@github-actions github-actions Bot added the build building and installing Neovim using the provided scripts label Sep 9, 2026
@barrettruth barrettruth added the AI assisted 🤖 May contain trace amounts of GMO label Sep 9, 2026
@barrettruth

Copy link
Copy Markdown
Member

Thanks for the contribution. Please write PR bodies yourself!

@glepnir glepnir added the localization l10n label Sep 10, 2026
@jamalkamaladdin

Copy link
Copy Markdown
Contributor Author

We have any merge conflict ?

Comment thread runtime/doc/news.txt Outdated
Comment on lines +258 to +259
• The message catalogs built with `ENABLE_TRANSLATIONS` include Azerbaijani
("az").

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we don't mention docs/l10n updates in news usually

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed.

@justinmk

justinmk commented Oct 5, 2026

Copy link
Copy Markdown
Member

AI findings below. Please do NOT rebase when pushing a fix.

  1. :uptime mistranslated (L7006): "Up %s" is translated as "Yuxarı %s", which means "upward", not "running for". Something like "İş vaxtı: %s" would fit.

  2. Swap-file (E325) dialog hotkeys (L3783, L3786):

    • Quit's hotkey is the non-ASCII ç ("&Çıx"), which can't be typed on a US keyboard layout.
    • r now selects "Edit anyway" instead of Recover. A user who presses r out of habit to recover gets "Edit anyway" and may then save over the file without the recovered changes.
    • tr.po avoids both problems with ASCII hotkeys ("Çı&k", "Kur&tar").
  3. #, c-format flags are on the wrong entries (from L52 on): 240 entries that contain % items lack the flag, and 247 entries without % items have it (e.g. --Deleted-- at L37). msgfmt -c skips format checking on the
    unflagged entries.

    • The file is also not in msgmerge's normal layout: 211 lines are longer than 80 columns, and strings aren't split at \n. Running msgmerge changes about 1,700 lines.
  4. Doubled punctuation:

    • "Argument missing after" (L3201) ends with :, but print_mainerr (main.c) already appends : "%s", so nvim -u prints ...yoxdur:: "-u".
    • "Backwards range given, OK to swap" (L2478) ends with ?, but ask_yesno already appends (y/n)?, so the prompt ends with ? (y/n)?.
  5. Typos (L5919, L5971): "cTRL-U" and "cTRL-F" in the 'scroll'/'window' option descriptions.

  6. "string" and "line" are the same word (sətir) (L3896): E348 "No string under cursor" reads as "no line under cursor", and E928/E1174 ("Sətir tələb olunur") read as "line required".

  7. Inconsistent type names (e.g. L923):

    • Blob: "ikilik məlumat bloku", "bayt bloku", "ikili verilənlər bloku".
    • Float: "sürüşən nöqtəli", "sürüşən vergüllü", "üzən nöqtəli".
    • Callback: "geriçağırış", "geri çağırış", "əks çağırış".
  8. :confirm qa hotkeys (L455): in the Yes/No/Save All/Discard All/Cancel dialog, y selects "Save All" because Yes is b ("Bəli").

  9. Column headers vs. fixed widths (e.g. L5536): translated headers are longer than the fixed-width columns. For example, "Arqumentlər" (11 chars) sits over the 5-wide Args column in :command. The same happens in :jumps (L3398),
    :changes, :registers, :undolist, :syntime and :tags.

  10. [noeol] → [ssyox] (L328): an invented abbreviation that readers won't recognize.

Problem:
news.txt does not list l10n updates.

Solution:
Remove the entry.

AI-assisted
Problem:
az.po had a wrong :uptime string, non-ASCII and conflicting dialog
hotkeys, misplaced c-format flags, doubled punctuation, two typos, one
word for both "string" and "line", mixed type names, column headers
wider than their columns and an invented [noeol] abbreviation.

Solution:
Regenerate the layout with msgmerge --sort-by-file against the current
sources, which also fixes the c-format flags and 80 column wrapping.
Fix each reported translation.

AI-assisted
@jamalkamaladdin

Copy link
Copy Markdown
Contributor Author

Fixed.

@justinmk
justinmk merged commit 1ce1e3e into neovim:master Oct 5, 2026
45 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AI assisted 🤖 May contain trace amounts of GMO build building and installing Neovim using the provided scripts ci:skip-news localization l10n

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants