bcquality/custom/knowledge/architecture/al-identifiers-must-be-english.md
Michael Dieringer dd5637b1db Custom-laget bestaar nu begge CI-checks: 72 validator-fejl -> 0
Normalisering af alle 39 custom knowledge-filer til READ-kontraktens
skema (validate_frontmatter.py + Test-KnowledgeIndex.ps1 begge groenne):

- R01/R02: 28 filer manglede frontmatter eller brugte aeldre skemaer
  (title/category/severity/rule-id m.fl.) - alle har nu praecis de 6
  kraevede noegler; keywords haandskrevet pr. fil da de driver
  worklist-selektionen i INDEX/knowledge-index
- R09: manglende Description-sektion - regel-agtige foersteoverskrifter
  (Core Rule/Rule/Regel/Core Principle) omdoebt, eller sektion indsat
  efter titlen hvor intro-tekst fandtes
- R10: fenced code blocks konverteret til 4-space indrykkede blokke
  i alle filer (indhold uaendret)
- R11: 4 filer over 100 linjer fortaettet redaktionelt uden semantisk
  tab (ai-eval-scores 143->100, git-lifecycle 121->97,
  permission-sets 113->99, test-feature-scenario-tags 105->91)
- R05: AL0197->al0197, add_repo->add-repo; keyword-lister trimmet
  til maks 10

Ingen regler er fjernet eller aendret i betydning - kun form.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-01 23:47:31 +02:00

2.2 KiB

bc-version domain keywords technologies countries application-area
all
architecture
identifiers
naming
english
captions
translation
al
w1
all

AL Naming Convention: English Identifiers Only

Description

All AL identifiers must be written in English, regardless of the developer's native language. "Translations are handled separately via XLIFF files — never by writing Danish, German or other language identifiers in AL source code."

What This Covers

The rule applies to:

  • Variable and procedure names
  • Parameter and field names
  • Object identifiers (tables, codeunits, pages, enums, reports)
  • Enum value names
  • Label identifiers and default text

Captions and ToolTips may use target language in source files but require XLIFF translations for supported locales.

Practical Example

Wrong approach: Using Danish identifiers like Beløb (amount) or BeregnTotalbeløb (calculate total amount)

Correct approach: Write Amount: Decimal and CalculateTotalAmount() in code, with Danish translations managed separately through XLIFF configuration files.

Developer Conversation Handling

When developers describe requirements in their native language—such as "opret en variabel til beløbet"—the agent translates the intent into English identifiers (Amount: Decimal) rather than transliterating the original words directly into code.

This separation ensures source code remains universally readable while localization remains flexible and maintainable.

BCApps Reference

The entire BCApps codebase — maintained by Microsoft engineers across many nationalities, including Danes — uses exclusively English identifiers without exception. Across hundreds of thousands of lines of AL, no native-language identifiers appear anywhere in the source.

  • Source: https://github.com/microsoft/BCApps
  • Pattern: Every variable, procedure, field, and object name in BCApps is English. All localization is handled via caption properties and XLIFF files — never by changing identifier names.
  • Why this matters: BCApps is a multi-contributor open source project. Non-English identifiers would make the code unreadable to international contributors — the same argument applies to any CURABIS PTE shared across teams.