Bộ gõ Thương Hiệt

Bộ gõ Thương Hiệt (tiếng Anh: "Cangjie input method" hoặc "Tsang-chieh input method", tiếng Trung: 倉頡輸入法) là bộ gõ chữ Hán, giúp người dùng có thể nhập chữ Hán vào máy tính thông qua bàn phím tiêu chuẩn. Được Châu Bang Phục (朱邦復, Chu Bong-Foo) sáng tạo năm 1976, bộ gõ này được đặt theo tên của Thương Hiệt, nhân vật thần thoại được xem là sáng tạo ra chữ Hán; theo gợi ý của Tưởng Vĩ Quốc (蔣緯國), khi ấy là Bộ trưởng Bộ Quốc phòng Trung Hoa Dân Quốc. Ban đầu, bộ gõ chỉ hỗ trợ chữ Hán phồn thể, nhưng hiện nay bộ gõ Thương Hiệt đã được nâng cấp để hỗ trợ cả chữ giản thể.

Thương Hiệt là bộ gõ chữ Hán đầu tiên có dạng bàn phím QWERTY, trong khi các phương thức nhập chữ Hán trước đó đều có từ 40-2.400 phím, ngoại trừ phương pháp mã hóa 3 góc (Three Corner coding method, 三角編碼索引) chỉ sử dụng bàn phím số. Châu Bang Phục nhận thấy rằng bàn phím QWERTY sẽ ngày một phổ biến và trở thành tiêu chuẩn quốc tế, và cho rằng nên lấy nó làm phương tiện nhập liệu văn bản chữ Hán. Năm 1982, Châu Bang Phục từ bỏ bằng sáng chế Bộ gõ Thương Hiệt bởi ông cho rằng nó thuộc về di sản văn hóa Trung Hoa. Kể từ đó, bộ gõ này được cung cấp miễn phí, bất kỳ ai cũng được quyền sử dụng và hiệu chỉnh tùy ý, khiến Thương Hiệt trở thành một bộ gõ thông dụng trên các hệ máy hỗ trợ chữ Hán phồn thể.

Trong tên các tập tin và những nơi khác, tên của bộ gõ thường được viết tắt là cj.

Bộ gõ Thương Hiệt dựa vào tự dạng (tức hình dạng của chữ Hán) để đánh chữ, khác hẳn với bộ gõ Bính âm vốn lấy ngữ âm làm cơ sở. Mỗi một đồ họa cơ bản có một “tự căn” (字根) làm đại diện, tổng số là 24, ứng với mỗi ký tự Latinh trên bàn phím QWERTY tiêu chuẩn. Phím X dùng để nhập các "chữ khó" không gõ được bằng mã thông thường. Trong các biểu diễn phím-ký tự, chúng được chia thành bốn nhóm nhỏ: Philosophical Set (tương ứng các ký tự từ 'A' đến 'G' và đại diện cho mặt trời, mặt trăng và ngũ hành), Strokes Set (tương ứng các ký tự từ 'H' đến 'N' thể hiện các nét ngắn và tinh tế), Body-Related Set (tương ứng các ký tự từ 'O' đến 'R' đại diện cho các bộ phận khác nhau trong giải phẫu cơ thể người), và Shapes Set (tương ứng các ký tự từ 'S' đến 'Y' và thể hiện các nét phức tạp và bao hàm).

Thành phần tạo chữ cơ bản trong bộ gõ Thương Hiệt thường được gọi là "tự căn" (字根), thành phần dựa trên phép dựng hình; chứ không phải bộ thủ truyền thống, cũng không dựa trên thứ tự nét bút.

== Tổng quát ==
=== Phím và "tự căn" ===
Có 24 tự căn nhưng có đến 26 phím; 24 tự căn liên kết với 76 phụ trợ tự hình (輔助 字形), trong nhiều trường hợp là các phiên bản xoay hoặc hoán vị của các tự căn. Ví dụ, phím A (日) có thể đại diện cho chính nó, rộng hơn một chút 曰 hoặc xoay 90°.

24 phím được xếp thành 4 nhóm

- Triết lý (哲理): tương ứng với các phím từ A đến G đại diện cho âm dương ngũ hành
- Bút hoạch (筆畫): tương ứng với các phím từ H đến N đại diện cho các nét ngắn
- Nhân thể (人體): tương ứng với các phím từ O đến R đại diện cho các bộ phận cơ thể con người
- Tự hình (字形): tương ứng với các phím từ S đến Y đại diện cho hình dạng chữ, các kí tự phức tạp và bị bao vây

=== Các quy tắc cơ bản ===
Người đánh máy phải quen với một số quy tắc phân tách để lấy mã Thương Hiệt:

- Hướng tách: trái sang phải, trên xuống dưới, ngoài vào trong
- Các chữ không được kết nối hình học được chia thành 2 phần (ví dụ: 你) xác định 2 phần theo hướng tách (ví dụ, 人 và 尔) , sau đó lấy mã đầu và cuối của phần thứ nhất, và mã đầu, nhì và cuối của phần thứ hai
- Các chữ không được kết nối hình học được chia thành nhiều phần (ví dụ: 謝) xác định phần đầu tiên theo hướng tách (ví dụ, 言) rồi lấy mã đầu và cuối của phần đó. Tiếp theo tách phần còn lại thành các phần con (tức là, 身 và 寸) rồi lấy mã đầu và cuối của phần con đầu tiên, sau đó lấy mã cuối của phần con cuối

Các quy tắc tuân theo các nguyên tắc sau:

- Tinh giản (精簡): nếu có nhiều cách tách, cách tách ngắn hơn được coi là đúng
- Hoàn chỉnh (完整): nếu có nhiều cách tách với cùng độ dài, cách tách phức tạp hơn được coi là đúng
- Tự hình đặc trưng (字型 特徵): Các cách tách phải phản ảnh hình dạng của tự căn, nghĩa là:
- Tránh sử dụng một mã 2 lần hoặc nhiều hơn
- Hình dạng của chữ không nên bị cắt ở góc
- Tỉnh lược (省略)
- Bộ phận tỉnh lược (部分 省略): khi số lượng mã vượt số mã cho phép, các mã bổ sung sẽ bị bỏ qua
- Bao hàm tỉnh lược (包含 省略): khi một phần của kí tự được tách và phần bao vây được tách, các phần còn lại sẽ bị bỏ qua

=== Các ví dụ ===
- 車 xa
- Chữ này được kết nối hình học, bao gồm một cấu trúc dọc duy nhất. Vì vậy, ta lấy mã Thương Hiệt đầu tiên, thứ hai và cuối cùng từ trên xuống dưới
- Do đó, mã Thương Hiệt là 十田十 (JWJ) tương ứng với các tự căn trong ví dụ này
- 謝 tạ
- Chữ này gồm các phần không được kết nối hình học được sắp xếp theo chiều ngang. Tách lần đầu ta được 2 phần 言 và 射
- Phần đầu tiên, 言, không liên kết hình học từ trên xuống dưới; chúng ta lấy phần đầu (亠, phụ trợ tự hình của 卜 ) và phần cuối (口, tự căn của 口) ta được 卜口 (YR)
- Phần thứ hai, 射, không liên kết hình học theo chiều ngang. Tách theo chiều ngang ta được 身 và 寸
-  Đối với phần con đầu tiên 身, ta lấy mã đầu và cuối. Cả 2 đều là nét xiên nên ta có 竹竹 (HH)
-  Đối với phần con thứ hai 寸, ta lấy mã cuối. Phần này không liên kết hình học nên ta lấy phần bao ngoài trước, phần thứ hai là nét chấm ở giữa. Nét chấm là 戈 (I)
- Do đó, mã Thương Hiệt là 卜口竹竹戈 (YRHHI)
- 谢, giản thể của 謝
- Ví dụ này giống với trên, trừ phần đầu là 讠. Nét đầu là nét chấm, nét cuối hình chữ V nên ta có mã 戈女 (IV)
- Làm tương tự như trên, ta có mã Thương Hiệt là 戈女竹竹戈 (IVHHI)

=== Ngoại lệ ===
Một số chữ được tách theo cùng 1 cách cho dù các quy tắc nói rằng chúng có được tách theo cách này hay không. Có ít các trường hợp như vậy

Một số chữ không thể tách. Chúng được biểu thị bằng phím X 難 trên bàn phím