{"id":1887,"date":"2019-08-26T02:03:31","date_gmt":"2019-08-26T10:03:31","guid":{"rendered":"http:\/\/wonghoi.humgar.com\/blog\/?p=1887"},"modified":"2022-03-17T16:22:10","modified_gmt":"2022-03-18T00:22:10","slug":"cantonese-ime-for-windows-10","status":"publish","type":"post","link":"https:\/\/wonghoi.humgar.com\/blog\/2019\/08\/26\/cantonese-ime-for-windows-10\/","title":{"rendered":"Cantonese IME for Windows 10"},"content":{"rendered":"<p>There are not many decent Cantonese IME around. The best option for Windows 7 and before are CPIME. It borderline worked for Windows 8\/10 (desktop mode only), but I heard recently Windows 10 broke it in its <a href=\"https:\/\/www.pinyinjoe.com\/faq\/windows-10-cantonese-phonetic-ime-cpime.htm\">1903<\/a> update.<\/p>\n<p>Dr. Choi kindly wrote another Cantonese IME called <a href=\"https:\/\/sixthhappiness.github.io\/articles\/cantonese-AI-phonetic-IM-year-of-the-dog-release\/index.html\">CAP<\/a>, which I came across while looking for Cantonese IME for Linux. This is the only option that works with Windows 10 natively (apps and desktop).<\/p>\n<hr \/>\n<h2>Getting <a href=\"https:\/\/sixthhappiness.github.io\/articles\/cantonese-AI-phonetic-IM-year-of-the-dog-release\/index.html\">CAP 2018<\/a> to install <br \/>[Deprecated, please use CAP 2021 instead, see below]<\/h2>\n<p>Unfortunately the installer failed on a fresh Windows 10, saying that &#8220;CAP.dll&#8221; cannot be registered. I looked at the error code and it usually suggest a missing dependency for the DLL. I used Dependency Walker to look at what&#8217;s broken and noticed those are Visual C++ 2015 <strong>DEBUG<\/strong> runtime DLLs. Since debug builds aren&#8217;t suppose to have a redistributable runtime (it&#8217;s actually called NonRedist), the only solution is to install the community edition of Visual C++ 2015 to obtain these DLLs.<\/p>\n<p>Note that &#8220;Common Tools <strong>for Visual C++ 2015<\/strong>&#8221; <a href=\"https:\/\/stackoverflow.com\/questions\/33743493\/why-visual-studio-2015-cant-run-exe-file-ucrtbased-dll\">must be included<\/a> (installed) so the IME won&#8217;t be broken (grayed):<\/p>\n<p><a href=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2019\/08\/2019-09-08-18_52_37-Community-2015.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1956\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2019\/08\/2019-09-08-18_52_37-Community-2015.png\" alt=\"\" width=\"651\" height=\"339\" srcset=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2019\/08\/2019-09-08-18_52_37-Community-2015.png 651w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2019\/08\/2019-09-08-18_52_37-Community-2015-300x156.png 300w\" sizes=\"auto, (max-width: 651px) 100vw, 651px\" \/><\/a><\/p>\n<p>The cause is the missing UCRTBASE<strong>D<\/strong>.DLL. The files are located at:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">C:\\Program Files (x86)\\Windows Kits\\10\\bin<\/pre>\n<p>It&#8217;s under the (x86) variant of Program Files regardless of whether it&#8217;s 32-bit or 64-bit.<\/p>\n<p>The missing link to API-MS-WIN-CORE-PATH-L1-1-0.DLL is not important.<\/p>\n<p>After you installed the IME after installing Visual C++ 2015 (any flavor, minimal is OK), you can remove Visual C++ 2015 without breaking the IME, <strong>EXCEPT<\/strong> you need to back up the <strong>UCRTBASED.DLL<\/strong> first and put it next to the core CAP.DLL file for the IME:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">C:\\Program Files\\Sixth Happiness\\CAP\\x64<\/pre>\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Getting <a href=\"https:\/\/sixthhappiness.github.io\/articles\/cantonese-AI-phonetic-IM-year-of-the-ox-release\/index.html\" target=\"_blank\" rel=\"noreferrer noopener\">CAP 2021<\/a> to install<\/h2>\n\n\n\n<p>CAP 2021 still won&#8217;t install on fresh installation of Windows 10, and I ran it through Dependency Walker and noticed it&#8217;s missing VCRUNTIME140_1.dll. Based on this <a rel=\"noreferrer noopener\" href=\"https:\/\/docs.microsoft.com\/en-us\/answers\/questions\/84775\/vcruntime140-1dll-was-not-found.html\" target=\"_blank\">post<\/a>, this is part of the Microsoft Visual C++ 2019 Redistributable:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"409\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2022\/03\/image-36-1024x409.png\" alt=\"\" class=\"wp-image-3796\" srcset=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2022\/03\/image-36-1024x409.png 1024w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2022\/03\/image-36-300x120.png 300w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2022\/03\/image-36-768x307.png 768w, https:\/\/wonghoi.humgar.com\/blog\/wp-content\/uploads\/2022\/03\/image-36.png 1250w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Microsoft rolled the runtimes for 2015, 2017, 2019 and 2022 into <a rel=\"noreferrer noopener\" href=\"https:\/\/docs.microsoft.com\/en-us\/cpp\/windows\/latest-supported-vc-redist?view=msvc-170\" target=\"_blank\">one package<\/a>, so if you want missing 2019 runtime DLLs, you might as well install it. This time the package didn&#8217;t use any debug version of the runtime like in 2018, which makes life much easier. <\/p>\n<div class=\"pvc_clear\"><\/div><p id=\"pvc_stats_1887\" class=\"pvc_stats all  \" data-element-id=\"1887\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p><div class=\"pvc_clear\"><\/div>","protected":false},"excerpt":{"rendered":"<p>There are not many decent Cantonese IME around. The best option for Windows 7 and before are CPIME. It borderline worked for Windows 8\/10 (desktop mode only), but I heard recently Windows 10 broke it in its 1903 update. Dr. &hellip; <a href=\"https:\/\/wonghoi.humgar.com\/blog\/2019\/08\/26\/cantonese-ime-for-windows-10\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_1887\" class=\"pvc_stats all  \" data-element-id=\"1887\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/wonghoi.humgar.com\/blog\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[23,6,4],"tags":[],"class_list":["post-1887","post","type-post","status-publish","format-standard","hentry","category-cantonese","category-note-to-self","category-windows"],"_links":{"self":[{"href":"https:\/\/wonghoi.humgar.com\/blog\/wp-json\/wp\/v2\/posts\/1887","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wonghoi.humgar.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wonghoi.humgar.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wonghoi.humgar.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wonghoi.humgar.com\/blog\/wp-json\/wp\/v2\/comments?post=1887"}],"version-history":[{"count":7,"href":"https:\/\/wonghoi.humgar.com\/blog\/wp-json\/wp\/v2\/posts\/1887\/revisions"}],"predecessor-version":[{"id":3800,"href":"https:\/\/wonghoi.humgar.com\/blog\/wp-json\/wp\/v2\/posts\/1887\/revisions\/3800"}],"wp:attachment":[{"href":"https:\/\/wonghoi.humgar.com\/blog\/wp-json\/wp\/v2\/media?parent=1887"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wonghoi.humgar.com\/blog\/wp-json\/wp\/v2\/categories?post=1887"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wonghoi.humgar.com\/blog\/wp-json\/wp\/v2\/tags?post=1887"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}