Scope and Purpose
CAN CSA Z243.58-92 (2018) is the Canadian adoption of ISO 639:1988, modified for national application, providing standardized codes for the representation of languages for information interchange. Originally published in 1992 and reaffirmed in 2018, this standard ensures consistent and unambiguous identification of languages across Canadian and international information systems, databases, and documentation.
The standard defines both two-letter (alpha-2) and three-letter (alpha-3) codes for a comprehensive set of languages, including Indigenous languages of Canada. It is essential for metadata management, content localization, library cataloging, and any system requiring language tagging. CAN CSA Z243.58-92 (2018) applies to all organizations that exchange information in electronic or printed form, including government agencies, libraries, publishers, and software developers.
Key objectives include:
- Establishing a unified coding system for languages to facilitate cross-system interoperability.
- Supporting Canadian linguistic diversity by including codes for First Nations, Métis, and Inuit languages.
- Aligning with international practices (ISO 639) while addressing national requirements.
- Providing a maintenance framework for the addition, correction, or deprecation of language codes.
Technical Requirements
Code Structure and Assignment
CAN CSA Z243.58-92 (2018) specifies two levels of code sets:
| Code Type | Length | Examples | Application |
| Alpha-2 | 2 letters | en (English), fr (French), iu (Inuktitut), cr (Cree) | Primary use in metadata, HTML language attributes, system locales |
| Alpha-3 | 3 letters | eng, fra, iku, cre | Used when greater granularity or coverage is needed |
The alpha-2 codes are derived from ISO 639-1, and the alpha-3 codes correspond to ISO 639-2 (bibliographic and terminology codes). CAN CSA Z243.58-92 (2018) adopts the international lists with Canadian deviations, primarily to cover Indigenous languages that historically lacked representation. Each code is assigned uniquely to a language, and any change requires formal revision through the CSA maintenance agency.
Local Extensions for Indigenous Languages
A distinguishing feature of this standard is its inclusion of over 30 Indigenous languages spoken within Canada. The codes follow the same format as international entries but are documented in an annex. Below is a sample of the Indigenous language codes specified:
| Language | Alpha-2 Code | Alpha-3 Code | ISO Equivalence |
| Inuktitut | iu | iku | ISO 639-1/2 |
| Cree | cr | cre | ISO 639-1/2 |
| Ojibwe | oj | oji | ISO 639-1/2 |
| Blackfoot | bla | bla (alpha-3 only) | ISO 639-2 |
| Gwich’in | gwi | gwi (alpha-3 only) | ISO 639-2 |
For languages not listed in the international tables, the standard provides reserved ranges for future assignment, subject to review by the CSA technical committee.
Implementation Highlights
Integrating CAN CSA Z243.58-92 (2018) into information systems involves the following technical and operational steps:
- Code Mapping: Existing systems using other language coding schemes (e.g., RFC 3066 or Windows LCIDs) should provide a mapping table to the CSA codes. Many frameworks (e.g., Java Locale, BCP 47) can be configured to align with these codes.
- Validation: Implement input validation to reject invalid or deprecated codes. The standard defines a registry of valid codes, which should be regularly updated.
- Metadata Tagging: Use the alpha-2 codes in HTML/XHTML
lang attributes and XML xml:lang attributes. For example: <html lang="iu"> for Inuktitut content. - Database Design: Store language codes as fixed-length CHAR(2) or CHAR(3) with a foreign key to a language code lookup table. Avoid storing language names in text to maintain normalization.
- Content Management: When managing multilingual content, use the CSA codes as the primary identifier for language variants. This ensures consistency across translation workflows.
Tip: When deploying applications in Canadian government environments, use the alpha-3 codes for languages that do not have an alpha-2 equivalent (e.g., gwi for Gwich’in). This ensures full coverage of Indigenous languages without relying on private-use extensions.
Note: Some legacy systems built before the 2018 reaffirmation may still use outdated or deprecated codes. The CSA maintenance agency recommends a full audit of code usage when upgrading to the 2018 edition.
Compliance Notes
Verification and Auditing
Conformance to CAN CSA Z243.58-92 (2018) should be assessed through systematic reviews of language coding practices. Key compliance checks include:
- All language codes used in exchanged data belong to the approved list in the standard.
- Alpha-2 codes are used where available; otherwise, alpha-3 codes are applied.
- No private-use or unofficial codes are present in interchange data unless explicitly agreed by parties.
- Deprecated codes (e.g.,
iw for Hebrew, replaced by he) have been phased out.
For organizations seeking formal compliance, the Canadian Standards Association offers a certification program (optional) that audits against this standard. The audit examines documentation, system interfaces, and data samples.
Maintenance and Updates
The standard is maintained by the CSA Technical Committee on Information Technology under the category Z243. Proposals for new codes, changes, or deletions can be submitted by any stakeholder. The committee reviews proposals semiannually. After the reaffirmation in 2018, the standard is stable, but users should monitor CSA’s web site for minor amendments or new editions.
Best Practice: To remain compliant with the latest requirements, incorporate a periodic check (e.g., annually) against the CSA registry of language codes. Many software libraries now bundle the CSA tables as part of their localization packages.
Important: Using non‑standard codes (e.g., ad-hoc abbreviations) in Canadian government or federally regulated data exchanges may lead to interoperability issues and non‑compliance with Treasury Board directives on multilingual information. Always refer to the latest reaffirmed edition.
Frequently Asked Questions
Q: Is CAN CSA Z243.58-92 (2018) identical to ISO 639?
A: No. The Canadian standard adopts ISO 639:1988 with modifications. It primarily adds codes for Indigenous languages of Canada and includes documentation rules to accommodate national requirements. Users should treat it as a superset of the international base standard, always preferring the CSA version for Canadian contexts.
Q: How can I obtain the full list of codes?
A: The complete list is published in the official standard document available from CSA Group (www.csagroup.org). Many open-source locales (e.g., CLDR) also incorporate the Canadian modifications, but for authoritative reference, the CSA document should be used.
Q: Are the alpha-3 codes compatible with MARC code lists for libraries?
A: Yes, the alpha-3 codes in CAN CSA Z243.58-92 (2018) are consistent with ISO 639-2, which is used by library cataloging standards (MARC, RDA). However, some Indigenous language codes in the Canadian standard may have slight differences in preferred term names compared to Library of Congress lists. Libraries should verify against the CSA code table when cataloguing Canadian-language materials.
Q: Does the standard include codes for dialects?
A: ISO 639 historically covers macrolanguages (e.g., ‘Cree’ covers dialects like Plains Cree, Woods Cree). CAN CSA Z243.58-92 (2018) follows the same practice. For sub-language dialect distinctions, the standard recommends using the macrolanguage code combined with additional qualifiers outside the scope of this standard (e.g., using locale variants or BCP 47 subtags). Discussions for finer-grained dialect codes are part of future revision proposals.
© 2026 Canadian Standards Association. This article is provided for informational purposes and does not replace the official standard document. Users should consult the latest reaffirmed version of CAN CSA Z243.58-92 for authoritative requirements.