2020年8月17日 星期一

[經驗分享] 處理 Rocket.Chat 頻道名稱無法使用中文名稱問題


Rocket.Chat 是一款越來越好的開源團隊溝通平台,正由於它已經脫胎換骨、煥然一新,所以我在新公司的同類型方案選擇採用 Rocket.Chat,而非我先前使用的 Mattermost。





問題狀況

當開始正式使用之後,自己在建立特定用途的頻道時發現不能輸入中文,對於某些場景會造成困擾;剛好客戶也反應同樣的問題,因此來查看一下問題原因。


頻道名稱無法輸入中文


不只是無法以中文名稱存檔,是連輸入中文文字都無法出現。在官方 GitHub 專案上找尋了一下,發現在 2018 年就已經有人反應這個 Issue,並且在該串 Issue 裡已經出現問題解決的關鍵字。



無法使用中文問題已解決


怪了,既然 Issue 已經 Close,可是我的 Rocket.Chat 怎麼還是不能用中文當作頻道名稱呢?沒關係,繼續在專案原始碼裡面找尋線索。

在上面的 Issue 裡有一個關鍵字「UI Allow room names with special chars」,用他來當做條件搜尋,發現了這一段內容:


設定項目關鍵翻譯字串


在語系檔裡面找到這樣的對應,那麼表示在管理介面上應該是有相關的選項可以切換了。







解決方式

首先請以管理者帳號進入管理介面,點選左側的「介面」,右方再將「允許 Room 名稱中的特殊字元」勾選,再按下「保存變更」 。


設定允許使用特殊字元


此時回到前端使用者介面,再次試試建立頻道並輸入中文,會發現已經可以正確輸入,建立完成後在左方的頻道列表也可以如願的看到中文頻道名稱了。


頻道名稱已可正常輸入中文



正確呈現中文頻道名稱





結論

其實這個問題影響的層面不只有中文字元,只要是非英文、數字以及幾個符號,都被列在預設拒絕範圍內,所以是其它語系的使用者,亦可以因為本篇設定而一併解決問題。






參考資料