2014/03/27

TinyMCE Toolbar Missing

Plone 表單的 RichText 欄位,預設使用 TinyMCE 編輯器,在正體中文環境下,如果遇到 Toolbar 無法顯示的問題,可以執行下列確認動作。

首先要確認 Products.TinyMCE 的版本,這問題在 1.3.5 版本 (2013-08-14 release) 之後有處理掉,而 Plone 4.3.2 預設搭配 Products.TinyMCE 1.3.5,理論上會解決這問題。

因為 Plone 4.3.2 只有 Linux 和 Mac OS X 的安裝檔,Windows 使用者要是下載 Plone 4.3.1 安裝檔,就會遇到這問題。

除了在 Linux 安裝新版 Plone 之外,如果想要手動修訂這問題,可以找到 eggs/Products.TinyMCE-x.y.z-py2.7.egg/Products/TinyMCE/utility.py 檔案,自行加上需要的修訂內容

         AVAILABLE_LANGUAGES = set(
         'sq ar hy az eu be bn nb bs br bg ca ch zh hr cs da dv nl en et fi fr gl '
         'ka de el gu he hi hu is id ia it ja ko lv lt lb mk ms ml mn se no nn fa '
-        'pl pt ps ro ru sc sr ii si sk sl es sv ta tt te th tr tw uk ur cy vi zu'.split())
+        'pl pt ps ro ru sc sr ii si sk sl es sv ta tt te th tr zh-cn zh-tw uk ur cy vi zu'.split())

         if 'LANGUAGE' in context.REQUEST:
-            results['language'] = context.REQUEST.LANGUAGE[:2]
-            if results['language'] not in AVAILABLE_LANGUAGES:
+            if context.REQUEST.LANGUAGE in AVAILABLE_LANGUAGES:
+                results['language'] = context.REQUEST.LANGUAGE
+            elif context.REQUEST.LANGUAGE[:2] in AVAILABLE_LANGUAGES:
+                results['language'] = context.REQUEST.LANGUAGE[:2]
+            else:
                 results['language'] = "en"
         else:
             results['language'] = "en"

如果還是不行,可以用 Google Chrome Browser 的 Inspector 檢查 JavaScript 的狀況,這些資訊通常可當作下一步追蹤的線索。

No comments: