-
Notifications
You must be signed in to change notification settings - Fork 414
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
將鼠鬚管就簡體輸入法與繁體輸入法分類各自分為一個輸入法副本。 #648
Conversation
@binotaliu 请重新登入,因为 info.plist 内容变更明显。 Ref: #281 |
其實,我這個 PR 可以留給 lotem 做後續發揮。 |
@ShikiSuen 感謝,重新登入後確實正常了。 |
一、我不推薦這個方式,因為這樣會讓字串變長。螢幕右上角的通知區域的空間本來就很寶貴,而 Apple 從來就不在乎這一點(不然不會在新的 macbook 機種當中引入 notch 攝影機的設計)。 二、很多官方輸入法能做到的功能都是用了 Apple 的私有 API 才完成的,這些 API 不對第三方使用者開放。 |
能弄個clean一些的pull嗎,連typo fix也扔進去了 |
說實話我並不喜歡這個方案,這會讓用戶非常confuse,用戶會期待選擇「鼠须管-简」後輸出即係简化字,而事實上並不會。用戶會來complain爲何選了「鼠须管-简」還是打不出简化字。
|
我提個問題啊: 能在簡繁中文類別下分別註冊是好事。確實如 @LEOYoon-Tsaw LEO 所說,「鼠须管-简」這個名稱誤會很大。要我幹,就分別寫「鼠须管」「鼠鬚管」,不翻譯,不解釋。這樣至少選其中一個的過程中不會有錯誤的理解。 |
@LEOYoon-Tsaw 我這個 PR 可以由 Lotem 編輯的。不過我先撤掉那個 typo fix commit 好了(已經撤掉了)。 @lotem 我从威注音首发版开始就用这套模式。记忆体内只有一个威注音执行绪。RIME 这样搞的话,实际状况应该相同才对。 先用「鼠须管/鼠鬚管」吧(已經推送)。 |
@LEOYoon-Tsaw 你說「用戶會期待選擇「鼠须管-简」後輸出即係简化字,而事實上並不會。」 那就讓 Lotem 做相關的功能綁定就好了。 |
引用 @lotem :「這樣至少選其中一個的過程中不會有錯誤的理解。」 安裝完畢之後,macOS 偏好設定在經過使用者確認新增輸入法之後,會同時出現兩個鼠鬚管(分別對應簡繁區域)。 |
确实,安装时得想法让用户选择一个,或者根据系统语言决定启用哪个。我上条说的是用户在系统设置里手动添加输入法的场景。一般人不会两个都选,在两个中文语言下都看得到鼠须管这一项,也算合理。 |
@lotem 問個跑題的內容好了:你不介意將 Rime 的最低系統需求提升到 macOS 10.15 吧? |
哪裏來的Swift runtime?有用到Swift嗎 |
@LEOYoon-Tsaw 我有在斟酌要不要用 Swift 重寫 Squirrel。 ObjC 實在太麻煩,且沒有類型安全。有時候自己寫的東西有問題,但 ObjC 就能允許這種東西 compile 過關、變成 runtime error。Swift 就機車一點,但至少可以把這類問題掐死在搖籃裡面。而且 Swift 自由很多。唯一不足可能就是 Swift 的 C++ interop 要等到今年年底才可能堪用(因為這是 Swift 5.7 的特性)。不過既然 LibRime 的對外 API 都是 C API,那麼與 Swift 5.5 的 Interop 應該沒問題吧。 |
我也喜歡Swift,就是不知道和librime的交互有沒有坑 |
@LEOYoon-Tsaw 一個穩妥的方法就是得由同時精通 C 與 Swift Package 製作的人來將 LibRime 做成 Swift Package。 @lotem 请问,这个 PR 在可以 merge 之前还有什么需要修改的吗? |
我再看看。要不我搞两个新图标,有没有必要? |
@lotem 搞吧。反正这个 PR 您是可以编辑的。 |
@lotem 对了,新的 macOS 输入法图示的官方 psd / sketch 范本当中的图示(圆角矩形)的圆角幅度与您用的好像有区别。弄新图标的时候或许可以考虑跟进一下。 |
@lotem 如果您 logo 還沒做的話,我有個考量: 對不同副本組裝不同 icon 的方法可以參考威注音的 plist 檔案: |
要搞的话加个开关或者配置参数吧,让我可以关掉/屏蔽这个特性,用现在的展示形态 |
考虑过“韻/韵”,不过现在我倾向于不改图标了,识别度不如现有图标。大多数人应该不会同时启用两个输入法选项。 |
@lotem OK,已經強推了。 |
糟糕。選單列的內容被我改成「Squirrel.Hans」了。 |
行。就这样。不过后续还有安装后注册输入源,需要跟进这项更改。按照前面的讨论,安装后行为不变,只启用简体中文的输入法。怎样让用户选择启用繁体中文,值得考虑。 |
@lotem 我剛剛推送了一個 commit,以讓 Squirrel 在接受 --install 命令時「僅」註冊簡體副本。 |
@lotem 這個 PR 不行就先過了吧,不然我沒辦法準備下一個 PR。 |
自己新建分支就行了,為啥下個PR做不了? |
@LEOYoon-Tsaw 因為會遇到來回 merge 內容時產生 merge commit 的情況,搞得很亂。 |
rebase即可 |
Info.plist
Outdated
<key>tsInputModeScriptKey</key> | ||
<string>smUnicodeScript</string> | ||
</dict> | ||
<key>im.rime.inputmethod.Squirrel.Hant</key> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm very confused. Is this an input mode, conceptually?
For your reference, mozc defined one input source per input mode:
https://github.com/google/mozc/blob/master/src/mac/Info.plist
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is an input mode stating RIME's instance under the region of zh-Hant.
I know nothing about mozc. Wherever TISInputSourceID gets put, this PR will require existing users to reenable RIME, since the tsInputModeListKey of the instances are changed.
P.S.: 我沒分析過 mozc。萬一 mozc 的多副本是用諸如衛星應用等形式做背後支持的話,那將 TISInputSourceID 塞到 tsInputModeListKey 下方就還能說得過去。如果你實在不放心的話,要不要改天我問問 Apple Japan 的 mzp 老師?或者你電郵問一下 Apple Developer Relations?(Apple Developer Relations 應該更負責一些,畢竟你交了會員費。)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
另外,input mode 差分化了之後,可以在輸入法的 input controller 內依據當前不同的 input mode 做出不同的準備行為(比如威注音就是載入不同的簡繁辭庫。)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Apple的代碼文檔說得比較清楚。InputMode和總體的InputMethod都要定義TISInputSourceID,也都可以缺省定義。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, one last request for change.
@@ -2,7 +2,9 @@ | |||
|
|||
NSHumanReadableCopyright = "Copyleft 2017, RIME Developers"; | |||
|
|||
im.rime.inputmethod.Squirrel = "Squirrel"; | |||
im.rime.inputmethod.Squirrel.Rime = "Squirrel"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's simplify im.rime.inputmethod.Squirrel.Rime
to im.rime.inputmethod.Squirrel
, drop .Rime
everywhere in the IDs. because im.rime.inputmethod.Squirrel
is also the bundle identifier, so this string can also serve as localized app name.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please revert this commit.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can take this in merging code.
InputSourceID 去掉 |
謝謝。提交了。 |
該拽取請求用以解決該問題: #645 ,允許使用者在想要的輸入狀態下讓語音輸入功能執行與該簡繁輸入狀態對應的語音文字輸出。