-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rebuilding #20
Comments
各IMEの対応品詞の調査Google IMEDetails
macOS Japanese Input Methodhttps://support.apple.com/ja-jp/guide/japanese-input-method/jpim10211/mac Details
Microsoft IMEDetails
Gboard品詞なし(!?) |
IME設定の整理interface ImeConfig {
name: string // ex. "Google IME"
lang: string // ex. "ja-JP"
encoding: "" // ex. "UTF-16LE"
dataType: "" // ex. "CSV"
hasWordClass: boolean // ユーザー辞書内に品詞欄があるか
hasWordIgnore?: boolean // 抑制単語を品詞に持っているか
} |
品詞対応方法の検討当初は、
そこで、統一的に品詞ラベルを提供する品詞ラベル辞書を内部で持ち、その中に各IMEの品詞ラベルを記載することで bIdの品詞マッピングGBoardは品詞を設定する欄が存在しないので省く。 Details
|
基本的に日本語のみ対応を目指したモジュールなのに英語なので、ここからIssueは日本語で書く方針に切り替える |
IME制御品詞である抑制単語への対応Google IMEやATOKなど、一部のIMEは抑制単語という品詞を持ち、これによって検索候補に表示しないよう制御している。 まず、抑制単語に対応しているIMEは |
各IMEのファイル形式サンプル貼付Google IMEかみつばき 神椿 組織
かみつばき 噛み椿 名詞
かふ 花譜 人名
かみつばきけんせつちゅう 神椿建設中。 固有名詞 macOS Japanese Input Methodhttps://support.apple.com/ja-jp/guide/japanese-input-method/jpim10228/mac <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>phrase</key>
<string>雲母坂</string>
<key>shortcut</key>
<string>きららざか</string>
</dict>
<dict>
<key>phrase</key>
<string>Props</string>
<key>shortcut</key>
<string>こどうぐ</string>
</dict>
</array>
</plist> ことえり時代のCSV形式でも導入可能なため、bIdではCSV形式のみサポートする。
Microsoft IME冒頭数行にわたる あああああ あいえうえ 姓名接頭語
ええええ あいえい あわ行五段
tttt ああああああ ま行五段
てすと テスト 短縮よみ あああああ
てすと テスト2 短縮よみ あああああ
てすと テスト3 姓 えええええ
てすと テスト4 短縮よみ うううううう
てすと テスト6 人名
てすと てすと さ行五段 GBoard# Gboard Dictionary version:1
たんこ 単語 ja-JP
どろ 吐露 ja-JP |
ユーザーに提供するJSONスキーマの検討以下をquicktypeでJSONスキーマにする想定 IMEの型定義/** 対応しているIME */
type ImeType = "Google IME" | "macOS IME" | "Microsoft IME" | "GBoard"; 品詞の型定義/** bIdで利用可能な品詞名 */
type Wordclass = "" | ""; ユーザー辞書/**
* ユーザー辞書の型定義
*/
type UserDictionary = {
/** 品詞 */
type: Wordclass;
/** 対象文言 */
word: string;
/** 読み方 */
reading: string;
/** 抑制単語かどうか */
isSuppress?: boolean;
/** サジェストのみに表示するかどうか */
isSuggest?: boolean;
/** 対象文言についての説明 */
description?: string;
} 品詞マッピング/**
* 品詞マッピングの型定義
*/
type WordclassMapping = {
/** bIdで利用する品詞 */
[word in Wordclass]: {
/** 各IMEの対応品詞 */
[ime in Exclude<ImeType, "GBoard">]: string;
}
} |
シーケンス図の作成sequenceDiagram
participant user as ユーザー
participant app as アプリ画面
participant core as コア機能
user ->> app: JSONないしCSVをファイルで渡す
app ->> core: ファイルからデータを抜き出して渡す
core ->> core: ファイル拡張子を確認
break ファイルが.jsonや.csv以外の場合
core -->> app: "detail: file-type-error"を返却
app -->> user: ファイル形式エラーとして画面に表示
end
core ->> core: ファイルデータをJSONに変換
break JSONデータに想定外のプロパティが含まれていた場合
core -->> app: "detail: json-property-error"を返却
app -->> user: データ形式エラーとして画面に表示
end
loop
core ->> core: JSONデータを各IMEのテキストデータに整形
core ->> core: テキストデータをファイルに出力
end
core -->> app: ファイルを圧縮し、圧縮ファイルを返却
app -->> user: 圧縮ファイルのダウンロードリンクを生成
|
アプリについてコア機能をDenoで書いてdntでNode.jsモジュールに変換、それをElectronで使う形にしたい Electronの選定理由Electronはパッケージングが充実しており、各OS認証も標準で持っている。 Webアプリを作るかアプリをダウンロードせずに使いたい需要もあると思っているので、作成予定。 |
アプリについては重いタスクになるので、別のIssueで作成する |
現在のbIdは拡張が難しいため、拡張性を高めるために再構築する。
目標
今後、ここも拡張できるように考える多言語化はきりがないので、一旦日本語のみ)ImeConfig
に集約するImeConfig[]
に項目を追加するだけで、簡単に新規IMEに対応できるようにするタスク
設計
構築
The text was updated successfully, but these errors were encountered: