Skip to content

Commit

Permalink
修改自動注音作業:(1) 可查漢字之羅馬拼音;(2) 可轉換成注音符號;(3) 接受人工手動注音與自動注音並存。
Browse files Browse the repository at this point in the history
  • Loading branch information
AlanJui committed Oct 4, 2024
1 parent 440177c commit 0335c3b
Show file tree
Hide file tree
Showing 12 changed files with 391 additions and 138 deletions.
7 changes: 7 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,13 @@
// 如需詳細資訊,請瀏覽: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "p711_TL_Tng_Zu_Im",
"type": "debugpy",
"request": "launch",
"program": "p711_TL_Tng_Zu_Im.py",
"console": "integratedTerminal",
},
{
"name": "mod_台羅音標漢字庫",
"type": "debugpy",
Expand Down
140 changes: 140 additions & 0 deletions Documents/Loo_Ma_Phing_Im/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
# 羅馬拼音

## 需求

### 功能摘要

- 功能名稱:TL_Tng_Zu_Im (台羅轉注音)

- 功能描述:將傳入之【台羅拼音】羅馬字母轉換成【方音符號】之注音符號。

- 範例說明:

- 漢字:不
- 羅馬拼音:put4
- 聲母:p
- 韻母:ut
- 聲調:4

```python
def TL_Tng_Zu_Im(siann_bu, un_bu, siann_tiau):
# 處理作業
return {
'聲母': zu_im_siann_bu,
'韻母': zu_im_un_bu,
'聲調': zu_im_siann_tiau,
}



zu_im_fu_ho = TL_Tng_Zu_Im(siann_bu='p', un_bu='ut', siann_tiau=4)
# 進行斷言
assert zu_im_fu_ho['聲母'] == '', "聲母不正確"
assert zu_im_fu_ho['韻母'] == 'ㄨㆵ', "韻母不正確"
assert zu_im_fu_ho['聲調'] == '', "聲調不正確"
```


### 資料表結構

#### 【韻母表】

```sh
CREATE TABLE 韻母表 (
識別號 INTEGER NOT NULL
UNIQUE,
韻母編碼 TEXT,
十五音字母 TEXT,
韻母序 INTEGER,
舒促 TEXT,
國際音標 TEXT,
台語音標 TEXT,
方音符號 TEXT,
白話字 TEXT,
台羅拚音 TEXT,
閩拼 TEXT,
PRIMARY KEY (
識別號 AUTOINCREMENT
)
);
```

#### 【聲母表】

```sh
CREATE TABLE 聲母表 (
識別號 INTEGER NOT NULL
UNIQUE,
十五音字母 TEXT,
國際音標 TEXT,
台語音標 TEXT,
方音符號 TEXT,
白話字 TEXT,
台羅拚音 INTEGER,
閩拼 TEXT,
備註 TEXT,
PRIMARY KEY (
識別號 AUTOINCREMENT
)
);
```

#### 【聲調表】

```sh
CREATE TABLE 聲調表 (
識別號 INTEGER NOT NULL,
台羅八聲調 INTEGER,
方音符號 TEXT,
四聲調 TEXT,
雅俗通聲調 TEXT,
舒促聲 TEXT,
PRIMARY KEY (
識別號 AUTOINCREMENT
)
);
```


## 參考

### 變更資料表

```sh
PRAGMA foreign_keys = 0;

CREATE TABLE sqlitestudio_temp_table AS SELECT *
FROM 聲調表;

DROP TABLE 聲調表;

CREATE TABLE 聲調表 (
識別號 INTEGER NOT NULL,
台羅八聲調 INTEGER,
方音符號 TEXT,
四聲調 TEXT,
雅俗通聲調 TEXT,
舒促聲 TEXT,
PRIMARY KEY (
識別號 AUTOINCREMENT
)
);

INSERT INTO 聲調表 (
識別號,
台羅八聲調,
四聲調,
雅俗通聲調,
舒促聲
)
SELECT 識別號,
台羅八聲調,
四聲調,
聲調,
舒促聲
FROM sqlitestudio_temp_table;

DROP TABLE sqlitestudio_temp_table;

PRAGMA foreign_keys = 1;
```
Binary file modified Tai_Loo_Han_Ji_Khoo.db
Binary file not shown.
6 changes: 1 addition & 5 deletions a702_Batch_Zu_Tong_Piau_Zu_Im.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,12 +41,8 @@
named_range = wb.names['顯示注音輸入'] # 選擇名為 "顯示注音輸入" 的命名範圍# 選擇名為 "顯示注音輸入" 的命名範圍
named_range.refers_to_range.value = True

# 清空儲存格內容
sheet = wb.sheets['漢字注音'] # 選擇指定的工作表# 選擇工作表
sheet.range('D3:R166').clear_contents() # 清除 C3:R166 範圍的內容

# (1) A720: 將 V3 儲存格內的漢字,逐個填入標音用方格。
fill_hanji_in_cells(wb)
# fill_hanji_in_cells(wb)

# (2) A731: 自動為漢字查找讀音,並抄寫到漢字的上方(拼音)及下方(注音)。
ca_han_ji_thak_im(wb, '漢字注音', 'V3')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,108 +17,108 @@

<div class='Siang_Pai'><p>
<span></span>
<ruby><rb></rb><rt>kim1</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>kong1</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>puann1</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>na2</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>pho1</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>lo5</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>bit8</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>king1</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>kim1</rt><rtc>ㄍㄧㆬ˙</rtc></ruby>
<ruby><rb></rb><rt>kong1</rt><rtc>ㄍㆲ˙</rtc></ruby>
<ruby><rb></rb><rt>puann1</rt><rtc>ㄅㄨㆩ˙</rtc></ruby>
<ruby><rb></rb><rt>jiok4</rt><rtc>ㆡㄧㆦㆻ</rtc></ruby>
<ruby><rb></rb><rt>phoo¹</rt><rtc>ㄆㆦˉ</rtc></ruby>
<ruby><rb></rb><rt>lo5</rt><rtc>ㄌㄜˊ</rtc></ruby>
<ruby><rb></rb><rt>bit8</rt><rtc>ㆠㄧㆵ˙</rtc></ruby>
<ruby><rb></rb><rt>king1</rt><rtc>ㄍㄧㄥ˙</rtc></ruby>
<span></span>
</p><p>
<ruby><rb></rb><rt>huat4</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>e6</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>in1</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>iu5</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>hun1</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>te7</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>it4</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>huat4</rt><rtc>ㄏㄨㄚㆵ</rtc></ruby>
<ruby><rb></rb><rt>e6</rt><rtc>ㆤˋ</rtc></ruby>
<ruby><rb></rb><rt>in1</rt><rtc>ㄧㄣ˙</rtc></ruby>
<ruby><rb></rb><rt>iu5</rt><rtc>ㄧㄨˊ</rtc></ruby>
<ruby><rb></rb><rt>hun1</rt><rtc>ㄏㄨㄣ˙</rtc></ruby>
<ruby><rb></rb><rt>te7</rt><rtc>ㄉㆤ˪</rtc></ruby>
<ruby><rb></rb><rt>it4</rt><rtc>ㄧㆵ</rtc></ruby>
</p><p>
<ruby><rb></rb><rt>ju5</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>si6</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>ngoo2</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>bun5</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>ju5</rt><rtc>ㆡㄨˊ</rtc></ruby>
<ruby><rb></rb><rt>si6</rt><rtc>ㄙㄧˋ</rtc></ruby>
<ruby><rb></rb><rt>ngoo2</rt><rtc>ㄫㆦˋ</rtc></ruby>
<ruby><rb></rb><rt>bun5</rt><rtc>ㆠㄨㄣˊ</rtc></ruby>
<span></span>
<ruby><rb></rb><rt>it4</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>si5</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>it4</rt><rtc>ㄧㆵ</rtc></ruby>
<ruby><rb></rb><rt>si5</rt><rtc>ㄙㄧˊ</rtc></ruby>
<span></span>
<ruby><rb></rb><rt>put8</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>tsai6</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>put8</rt><rtc>ㄅㄨㆵ˙</rtc></ruby>
<ruby><rb></rb><rt>tsai6</rt><rtc>ㄗㄞˋ</rtc></ruby>
<ruby><rb></rb><rt></rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>ue7</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>kok4</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>ki5</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>tshiu7</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>kip4</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>koo1</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>tak8</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>uan5</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>ue7</rt><rtc>ㄨㆤ˪</rtc></ruby>
<ruby><rb></rb><rt>kok4</rt><rtc>ㄍㆦㆻ</rtc></ruby>
<ruby><rb></rb><rt>ki5</rt><rtc>ㄍㄧˊ</rtc></ruby>
<ruby><rb></rb><rt>tshiu7</rt><rtc>ㄘㄧㄨ˪</rtc></ruby>
<ruby><rb></rb><rt>kip4</rt><rtc>ㄍ一ㆴ</rtc></ruby>
<ruby><rb></rb><rt>koo1</rt><rtc>ㄍㆦ˙</rtc></ruby>
<ruby><rb></rb><rt>tak8</rt><rtc>ㄉㄚㆻ˙</rtc></ruby>
<ruby><rb></rb><rt>uan5</rt><rtc>ㄨㄢˊ</rtc></ruby>
<span></span>
<ruby><rb></rb><rt>ir2</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>tua7</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>pi2</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>khu1</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>tsing3</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>tshainn1</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>ji7</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>pah4</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>goo6</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>tsap8</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>lang5</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>ku1</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>ir2</rt><rtc>ˋ</rtc></ruby>
<ruby><rb></rb><rt>tua7</rt><rtc>ㄉㄨㄚ˪</rtc></ruby>
<ruby><rb></rb><rt>pi2</rt><rtc>ㄅㄧˋ</rtc></ruby>
<ruby><rb></rb><rt>khu1</rt><rtc>ㄎㄨ˙</rtc></ruby>
<ruby><rb></rb><rt>tsing3</rt><rtc>ㄗㄧㄥ˫</rtc></ruby>
<ruby><rb></rb><rt>tshainn1</rt><rtc>ㄘㆮ˙</rtc></ruby>
<ruby><rb></rb><rt>ji7</rt><rtc>ㆡㄧ˪</rtc></ruby>
<ruby><rb></rb><rt>pah4</rt><rtc>ㄅㄚㆷ</rtc></ruby>
<ruby><rb></rb><rt>goo6</rt><rtc>ㆣㆦˋ</rtc></ruby>
<ruby><rb></rb><rt>tsap8</rt><rtc>ㄗㄚㆴ˙</rtc></ruby>
<ruby><rb></rb><rt>jin⁵</rt><rtc>ㆢㄧㄣˊ</rtc></ruby>
<ruby><rb></rb><rt>ku1</rt><rtc>ㄍㄨ˙</rtc></ruby>
<span></span>
<ruby><rb></rb><rt>nia7</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>si5</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>nia7</rt><rtc>ㄋㄧㄚ˪</rtc></ruby>
<ruby><rb></rb><rt>si5</rt><rtc>ㄙㄧˊ</rtc></ruby>
<span></span>
<ruby><rb></rb><rt>se3</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>tsun1</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>sit8</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>si5</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>se3</rt><rtc>ㄙㆤ˫</rtc></ruby>
<ruby><rb></rb><rt>tsun1</rt><rtc>ㄗㄨㄣ˙</rtc></ruby>
<ruby><rb></rb><rt>sit8</rt><rtc>ㄙㄧㆵ˙</rtc></ruby>
<ruby><rb></rb><rt>si5</rt><rtc>ㄙㄧˊ</rtc></ruby>
<span></span>
<ruby><rb></rb><rt>tio0</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>i1</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>ti5</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>puat4</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>tio0</rt><rtc>ㄉㄧㄜ˙</rtc></ruby>
<ruby><rb></rb><rt>i1</rt><rtc>ㄧ˙</rtc></ruby>
<ruby><rb></rb><rt>ti5</rt><rtc>ㄉㄧˊ</rtc></ruby>
<ruby><rb></rb><rt>puat4</rt><rtc>ㄅㄨㄚㆵ</rtc></ruby>
<span></span>
<ruby><rb></rb><rt>jip8</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>jip8</rt><rtc>ㆡ一ㆴ˙</rtc></ruby>
<ruby><rb></rb><rt></rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>ue7</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>tua7</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>siann5</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>khit4</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>sit8</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>ue7</rt><rtc>ㄨㆤ˪</rtc></ruby>
<ruby><rb></rb><rt>tua7</rt><rtc>ㄉㄨㄚ˪</rtc></ruby>
<ruby><rb></rb><rt>siann5</rt><rtc>ㄙˊ</rtc></ruby>
<ruby><rb></rb><rt>khit4</rt><rtc>ㄎㄧㆵ</rtc></ruby>
<ruby><rb></rb><rt>sit8</rt><rtc>ㄙㄧㆵ˙</rtc></ruby>
<span></span>
<ruby><rb></rb><rt>u1</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>ki5</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>siann5</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>tiong1</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>tshur3</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>te7</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>khit4</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>i2</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>u1</rt><rtc>ㄨ˙</rtc></ruby>
<ruby><rb></rb><rt>ki5</rt><rtc>ㄍㄧˊ</rtc></ruby>
<ruby><rb></rb><rt>siann5</rt><rtc>ㄙˊ</rtc></ruby>
<ruby><rb></rb><rt>tiong1</rt><rtc>ㄉㄧㆲ˙</rtc></ruby>
<ruby><rb></rb><rt>tshur3</rt><rtc>ㄘ˫</rtc></ruby>
<ruby><rb></rb><rt>te7</rt><rtc>ㄉㆤ˪</rtc></ruby>
<ruby><rb></rb><rt>khit4</rt><rtc>ㄎㄧㆵ</rtc></ruby>
<ruby><rb></rb><rt>i2</rt><rtc>ㄧˋ</rtc></ruby>
<span></span>
<ruby><rb></rb><rt>huan5</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>tsi3</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>puinn2</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>tshir3</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>huan5</rt><rtc>ㄏㄨㄢˊ</rtc></ruby>
<ruby><rb></rb><rt>tsi3</rt><rtc>ㄗㄧ˫</rtc></ruby>
<ruby><rb></rb><rt>puinn2</rt><rtc>ㄅㄨㆪˋ</rtc></ruby>
<ruby><rb></rb><rt>tshir3</rt><rtc>ㄘ˫</rtc></ruby>
<span></span>
<ruby><rb></rb><rt>puinn7</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>sit8</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>git4</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>puinn7</rt><rtc>ㄅㄨㆪ˪</rtc></ruby>
<ruby><rb></rb><rt>sit8</rt><rtc>ㄙㄧㆵ˙</rtc></ruby>
<ruby><rb></rb><rt>git4</rt><rtc>ㆣㄧㆵ</rtc></ruby>
<span></span>
<ruby><rb></rb><rt>siu1</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>i1</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>puat4</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>siu1</rt><rtc>ㄙㄧㄨ˙</rtc></ruby>
<ruby><rb></rb><rt>i1</rt><rtc>ㄧ˙</rtc></ruby>
<ruby><rb></rb><rt>puat4</rt><rtc>ㄅㄨㄚㆵ</rtc></ruby>
<span></span>
<ruby><rb></rb><rt>se2</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>tsiok4</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>i2</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>se2</rt><rtc>ㄙㆤˋ</rtc></ruby>
<ruby><rb></rb><rt>tsiok4</rt><rtc>ㄗㄧㆦㆻ</rtc></ruby>
<ruby><rb></rb><rt>i2</rt><rtc>ㄧˋ</rtc></ruby>
<span></span>
<ruby><rb></rb><rt>hu1</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>tso7</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>ji5</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>tser6</rt><rtc></rtc></ruby>
<ruby><rb></rb><rt>hu1</rt><rtc>ㄏㄨ˙</rtc></ruby>
<ruby><rb></rb><rt>tso7</rt><rtc>ㄗㄜ˪</rtc></ruby>
<ruby><rb></rb><rt>ji5</rt><rtc>ㆡㄧˊ</rtc></ruby>
<ruby><rb></rb><rt>tser6</rt><rtc>ㄗˋ</rtc></ruby>
<span></span>
</p></div>
</body>
Expand Down
Binary file not shown.
Binary file not shown.
Loading

0 comments on commit 0335c3b

Please sign in to comment.