[油猴脚本]逛chh遇到繁体回帖 看得觉得累?

  • a
    ahtczww
    最近玩臺服的POE,下了繁體的輸入法。。所以就打繁體字了。
  • b
    beergate
    富贵色的“轮轮女版版”无法直视啊
  • c
    chainofhonor
    1. // ==UserScript==
    2. // @name 繁簡自由切換
    3. // @name:zh-CN 简繁自由切换
    4. // @name:ja 简繁
    5. // @name:en Switch Traditional Chinese and Simplified Chinese
    6. // @namespace hoothin
    7. // @version 1.1.2
    8. // @description 任意轉換網頁中的簡體中文與繁體中文(默認簡體→繁體)
    9. // @description:zh-CN 任意转换网页中的简体中文与繁体中文(默认繁体→简体)
    10. // @description:ja 简繁中国語に変換
    11. // @description:en Just Switch Traditional Chinese and Simplified Chinese
    12. // @author hoothin
    13. // @include *
    14. // @grant GM_setValue
    15. // @grant GM_getValue
    16. // @grant GM_registerMenuCommand
    17. // @contributionURL https://www.paypal.com/cgi-bin/webscr?cmd=_donations&[email protected]&item_name=Greasy+Fork+donation
    18. // @contributionAmount 1
    19. // ==/UserScript==

    20. (function() {
    21. 'use strict';
    22. var auto=true;//是否自動切換至OS使用的默認語言
    23. var shortcutKey=119;//快捷鍵keyCode
    24. var lang = navigator.appName=="Netscape"?navigator.language:navigator.userLanguage;
    25. lang = lang.toLowerCase();
    26. var isSimple = (lang === "zh-cn" || lang === "zh-hans" || lang === "zh-sg" || lang === "zh-my");
    27. var action = 0;//1:noChange, 2:showSimplified, 3:showTraditional

    28. function stranText(txt){
    29. if(!txt)return "";
    30. if(action == 2){return simplized(txt);}
    31. else if(action == 3){return traditionalized(txt);}
    32. }

    33. function stranBody(pNode){
    34. var childs;
    35. if(pNode){
    36. childs=pNode.childNodes;
    37. }else{
    38. childs=document.documentElement.childNodes;
    39. }
    40. if(childs)
    41. for(var i=0;i<childs.length;i++){
    42. var child=childs.item(i);
    43. if(/BR|META|SCRIPT|HR|TEXTAREA/.test(child.tagName))continue;
    44. if(child.title){
    45. let title=stranText(child.title);
    46. if(child.title != title){
    47. child.title=title;
    48. }
    49. }
    50. if(child.alt){
    51. let alt=stranText(child.alt);
    52. if(child.alt != alt){
    53. child.alt=alt;
    54. }
    55. }
    56. if(child.tagName == "INPUT" && child.value !== "" && child.type != "text" && child.type != "search" && child.type != "hidden"){
    57. let value=stranText(child.value);
    58. if(child.value != value){
    59. child.value=value;
    60. }
    61. }else if(child.nodeType == 3){
    62. let data=stranText(child.data);
    63. if(child.data != data){
    64. child.data=data;
    65. }
    66. }else stranBody(child);
    67. }
    68. }

    69. var scStr='宁说填屏汇尽并注号标鉴于适于定台制确皑蔼碍爱翱袄奥坝罢摆败颁办绊帮绑镑谤剥饱宝报鲍辈贝钡狈备惫绷笔毕毙闭边编贬变辩辫鳖瘪濒滨宾摈饼拨钵铂驳卜补参蚕残惭惨灿苍舱仓沧厕侧册测层诧搀掺蝉馋谗缠铲产阐颤场尝长偿肠厂畅钞车彻尘陈衬撑称惩诚骋痴迟驰耻齿炽冲虫宠畴踌筹绸丑橱厨锄雏础储触处传疮闯创锤纯绰辞词赐聪葱囱从丛凑窜错达带贷担单郸掸胆惮诞弹当挡党荡档捣岛祷导盗灯邓敌涤递缔点垫电淀钓调谍叠钉顶锭订东动栋冻斗犊独读赌镀锻断缎兑队对吨顿钝夺鹅额讹恶饿儿尔饵贰发罚阀珐矾钒烦范贩饭访纺飞废费纷坟奋愤粪丰枫锋风疯冯缝讽凤肤辐抚辅赋复负讣妇缚该钙盖干赶秆赣冈刚钢纲岗皋镐搁鸽阁铬个给龚宫巩贡钩沟构购够蛊顾剐关观馆惯贯广规硅归龟闺轨诡柜贵刽辊滚锅国过骇韩汉阂鹤贺横轰鸿红后壶护沪户哗华画划话怀坏欢环还缓换唤痪焕涣黄谎挥辉毁贿秽会烩汇讳诲绘荤浑伙获货祸击机积饥讥鸡绩缉极辑级挤几蓟剂济计记际继纪夹荚颊贾钾价驾歼监坚笺间艰缄茧检碱硷拣捡简俭减荐槛鉴践贱见键舰剑饯渐溅涧浆蒋桨奖讲酱胶浇骄娇搅铰矫侥脚饺缴绞轿较秸阶节茎惊经颈静镜径痉竞净纠厩旧驹举据锯惧剧鹃绢杰洁结诫届紧锦仅谨进晋烬尽劲荆觉决诀绝钧军骏开凯颗壳课垦恳抠库裤夸块侩宽矿旷况亏岿窥馈溃扩阔蜡腊莱来赖蓝栏拦篮阑兰澜谰揽览懒缆烂滥捞劳涝乐镭垒类泪篱离里鲤礼丽厉励砾历沥隶俩联莲连镰怜涟帘敛脸链恋炼练粮凉两辆谅疗辽镣猎临邻鳞凛赁龄铃凌灵岭领馏刘龙聋咙笼垄拢陇楼娄搂篓芦卢颅庐炉掳卤虏鲁赂禄录陆驴吕铝侣屡缕虑滤绿峦挛孪滦乱抡轮伦仑沦纶论萝罗逻锣箩骡骆络妈玛码蚂马骂吗买麦卖迈脉瞒馒蛮满谩猫锚铆贸么霉没镁门闷们锰梦谜弥觅绵缅庙灭悯闽鸣铭谬谋亩钠纳难挠脑恼闹馁腻撵捻酿鸟聂啮镊镍柠狞宁拧泞钮纽脓浓农疟诺欧鸥殴呕沤盘庞国爱赔喷鹏骗飘频贫苹凭评泼颇扑铺朴谱脐齐骑岂启气弃讫牵扦钎铅迁签谦钱钳潜浅谴堑枪呛墙蔷强抢锹桥乔侨翘窍窃钦亲轻氢倾顷请庆琼穷趋区躯驱龋颧权劝却鹊让饶扰绕热韧认纫荣绒软锐闰润洒萨鳃赛伞丧骚扫涩杀纱筛晒闪陕赡缮伤赏烧绍赊摄慑设绅审婶肾渗声绳胜圣师狮湿诗尸时蚀实识驶势释饰视试寿兽枢输书赎属术树竖数帅双谁税顺说硕烁丝饲耸怂颂讼诵擞苏诉肃虽绥岁孙损笋缩琐锁獭挞抬摊贪瘫滩坛谭谈叹汤烫涛绦腾誊锑题体屉条贴铁厅听烃铜统头图涂团颓蜕脱鸵驮驼椭洼袜弯湾顽万网韦违围为潍维苇伟伪纬谓卫温闻纹稳问瓮挝蜗涡窝呜钨乌诬无芜吴坞雾务误锡牺袭习铣戏细虾辖峡侠狭厦锨鲜纤咸贤衔闲显险现献县馅羡宪线厢镶乡详响项萧销晓啸蝎协挟携胁谐写泻谢锌衅兴汹锈绣虚嘘须许绪续轩悬选癣绚学勋询寻驯训讯逊压鸦鸭哑亚讶阉烟盐严颜阎艳厌砚彦谚验鸯杨扬疡阳痒养样瑶摇尧遥窑谣药爷页业叶医铱颐遗仪彝蚁艺亿忆义诣议谊译异绎荫阴银饮樱婴鹰应缨莹萤营荧蝇颖哟拥佣痈踊咏涌优忧邮铀犹游诱舆鱼渔娱与屿语吁御狱誉预驭鸳渊辕园员圆缘远愿约跃钥岳粤悦阅云郧匀陨运蕴酝晕韵杂灾载攒暂赞赃脏凿枣灶责择则泽贼赠扎札轧铡闸诈斋债毡盏斩辗崭栈战绽张涨帐账胀赵蛰辙锗这贞针侦诊镇阵挣睁狰帧郑证织职执纸挚掷帜质钟终种肿众诌轴皱昼骤猪诸诛烛瞩嘱贮铸筑驻专砖转赚桩庄装妆壮状锥赘坠缀谆浊兹资渍踪综总纵邹诅组钻致钟么为只凶准启板里雳余链泄';
    70. var tcStr='寧説塡屛匯儘併註號標鑑於適於掂臺製確皚藹礙愛翺襖奧壩罷擺敗頒辦絆幫綁鎊謗剝飽寶報鮑輩貝鋇狽備憊繃筆畢斃閉邊編貶變辯辮鼈癟瀕濱賓擯餅撥缽鉑駁蔔補參蠶殘慚慘燦蒼艙倉滄廁側冊測層詫攙摻蟬饞讒纏鏟産闡顫場嘗長償腸廠暢鈔車徹塵陳襯撐稱懲誠騁癡遲馳恥齒熾沖蟲寵疇躊籌綢醜櫥廚鋤雛礎儲觸處傳瘡闖創錘純綽辭詞賜聰蔥囪從叢湊竄錯達帶貸擔單鄲撣膽憚誕彈當擋黨蕩檔搗島禱導盜燈鄧敵滌遞締點墊電澱釣調諜疊釘頂錠訂東動棟凍鬥犢獨讀賭鍍鍛斷緞兌隊對噸頓鈍奪鵝額訛惡餓兒爾餌貳發罰閥琺礬釩煩範販飯訪紡飛廢費紛墳奮憤糞豐楓鋒風瘋馮縫諷鳳膚輻撫輔賦複負訃婦縛該鈣蓋幹趕稈贛岡剛鋼綱崗臯鎬擱鴿閣鉻個給龔宮鞏貢鈎溝構購夠蠱顧剮關觀館慣貫廣規矽歸龜閨軌詭櫃貴劊輥滾鍋國過駭韓漢閡鶴賀橫轟鴻紅後壺護滬戶嘩華畫劃話懷壞歡環還緩換喚瘓煥渙黃謊揮輝毀賄穢會燴彙諱誨繪葷渾夥獲貨禍擊機積饑譏雞績緝極輯級擠幾薊劑濟計記際繼紀夾莢頰賈鉀價駕殲監堅箋間艱緘繭檢堿鹼揀撿簡儉減薦檻鑒踐賤見鍵艦劍餞漸濺澗漿蔣槳獎講醬膠澆驕嬌攪鉸矯僥腳餃繳絞轎較稭階節莖驚經頸靜鏡徑痙競淨糾廄舊駒舉據鋸懼劇鵑絹傑潔結誡屆緊錦僅謹進晉燼盡勁荊覺決訣絕鈞軍駿開凱顆殼課墾懇摳庫褲誇塊儈寬礦曠況虧巋窺饋潰擴闊蠟臘萊來賴藍欄攔籃闌蘭瀾讕攬覽懶纜爛濫撈勞澇樂鐳壘類淚籬離裏鯉禮麗厲勵礫曆瀝隸倆聯蓮連鐮憐漣簾斂臉鏈戀煉練糧涼兩輛諒療遼鐐獵臨鄰鱗凜賃齡鈴淩靈嶺領餾劉龍聾嚨籠壟攏隴樓婁摟簍蘆盧顱廬爐擄鹵虜魯賂祿錄陸驢呂鋁侶屢縷慮濾綠巒攣孿灤亂掄輪倫侖淪綸論蘿羅邏鑼籮騾駱絡媽瑪碼螞馬罵嗎買麥賣邁脈瞞饅蠻滿謾貓錨鉚貿麽黴沒鎂門悶們錳夢謎彌覓綿緬廟滅憫閩鳴銘謬謀畝鈉納難撓腦惱鬧餒膩攆撚釀鳥聶齧鑷鎳檸獰甯擰濘鈕紐膿濃農瘧諾歐鷗毆嘔漚盤龐國愛賠噴鵬騙飄頻貧蘋憑評潑頗撲鋪樸譜臍齊騎豈啓氣棄訖牽扡釺鉛遷簽謙錢鉗潛淺譴塹槍嗆牆薔強搶鍬橋喬僑翹竅竊欽親輕氫傾頃請慶瓊窮趨區軀驅齲顴權勸卻鵲讓饒擾繞熱韌認紉榮絨軟銳閏潤灑薩鰓賽傘喪騷掃澀殺紗篩曬閃陝贍繕傷賞燒紹賒攝懾設紳審嬸腎滲聲繩勝聖師獅濕詩屍時蝕實識駛勢釋飾視試壽獸樞輸書贖屬術樹豎數帥雙誰稅順說碩爍絲飼聳慫頌訟誦擻蘇訴肅雖綏歲孫損筍縮瑣鎖獺撻擡攤貪癱灘壇譚談歎湯燙濤縧騰謄銻題體屜條貼鐵廳聽烴銅統頭圖塗團頹蛻脫鴕馱駝橢窪襪彎灣頑萬網韋違圍爲濰維葦偉僞緯謂衛溫聞紋穩問甕撾蝸渦窩嗚鎢烏誣無蕪吳塢霧務誤錫犧襲習銑戲細蝦轄峽俠狹廈鍁鮮纖鹹賢銜閑顯險現獻縣餡羨憲線廂鑲鄉詳響項蕭銷曉嘯蠍協挾攜脅諧寫瀉謝鋅釁興洶鏽繡虛噓須許緒續軒懸選癬絢學勳詢尋馴訓訊遜壓鴉鴨啞亞訝閹煙鹽嚴顔閻豔厭硯彥諺驗鴦楊揚瘍陽癢養樣瑤搖堯遙窯謠藥爺頁業葉醫銥頤遺儀彜蟻藝億憶義詣議誼譯異繹蔭陰銀飲櫻嬰鷹應纓瑩螢營熒蠅穎喲擁傭癰踴詠湧優憂郵鈾猶遊誘輿魚漁娛與嶼語籲禦獄譽預馭鴛淵轅園員圓緣遠願約躍鑰嶽粵悅閱雲鄖勻隕運蘊醞暈韻雜災載攢暫贊贓髒鑿棗竈責擇則澤賊贈紮劄軋鍘閘詐齋債氈盞斬輾嶄棧戰綻張漲帳賬脹趙蟄轍鍺這貞針偵診鎮陣掙睜猙幀鄭證織職執紙摯擲幟質鍾終種腫衆謅軸皺晝驟豬諸誅燭矚囑貯鑄築駐專磚轉賺樁莊裝妝壯狀錐贅墜綴諄濁茲資漬蹤綜總縱鄒詛組鑽緻鐘麼為隻兇準啟闆裡靂餘鍊洩';

    71. function traditionalized(orgStr){
    72. var str='', index, char;
    73. for(var i=0;i<orgStr.length;i++){
    74. char=orgStr.charAt(i);
    75. if(char.charCodeAt(0) > 10000){
    76. index=scStr.indexOf(char);
    77. if(index != -1)str+=tcStr.charAt(index);
    78. else str+=char;
    79. }
    80. else str+=char;
    81. }
    82. return str;
    83. }

    84. function simplized(orgStr){
    85. var str='', index, char;
    86. for(var i=0;i<orgStr.length;i++){
    87. char=orgStr.charAt(i);
    88. if(char.charCodeAt(0) > 10000){
    89. index=tcStr.indexOf(char);
    90. if(index != -1)str+=scStr.charAt(index);
    91. else str+=char;
    92. }
    93. else str+=char;
    94. }
    95. return str;
    96. }

    97. function setLanguage(){
    98. GM_setValue("action_" + location.hostname.toString().replace(/\./g,"_"), action);
    99. switch(action){
    100. case 1:
    101. alert("已於該網域禁用簡繁切換");
    102. location.reload();
    103. break;
    104. case 2:
    105. alert("已切换至简体中文");
    106. break;
    107. case 3:
    108. alert("已切換至繁體中文");
    109. break;
    110. }
    111. if(action > 1){
    112. stranBody();
    113. }
    114. }

    115. function switchLanguage(){
    116. if(isSimple){
    117. action--;
    118. action=action<1?3:action;
    119. }else{
    120. action++;
    121. action=action>3?1:action;
    122. }
    123. setLanguage();
    124. }

    125. var saveAction=GM_getValue("action_" + location.hostname.toString().replace(/\./g,"_"));
    126. action=saveAction?saveAction:(isSimple?2:3);
    127. if(auto && action > 1){
    128. setTimeout(function(){
    129. stranBody();
    130. var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
    131. var observer = new MutationObserver(function(records){
    132. records.map(function(record) {
    133. if(record.addedNodes){
    134. [].forEach.call(record.addedNodes,function(item){
    135. stranBody(item);
    136. });
    137. }
    138. });
    139. });
    140. var option = {
    141. 'childList': true,
    142. 'subtree': true
    143. };
    144. observer.observe(document.body, option);
    145. },50);
    146. }

    147. var curLang=isSimple;
    148. document.addEventListener("keydown", function(e) {
    149. if(e.keyCode == shortcutKey && e.ctrlKey) {
    150. if("TEXTAREA"==document.activeElement.tagName){
    151. document.activeElement.innerHTML=curLang?traditionalized(document.activeElement.innerHTML):simplized(document.activeElement.innerHTML);
    152. curLang=!curLang;
    153. }else if("INPUT"==document.activeElement.tagName){
    154. document.activeElement.value=curLang?traditionalized(document.activeElement.value):simplized(document.activeElement.value);
    155. curLang=!curLang;
    156. }else{
    157. action=action==2?3:2;
    158. setLanguage();
    159. }
    160. }
    161. });

    162. GM_registerMenuCommand("繁簡切換【Ctrl+F8】", switchLanguage);
    163. })();
    复制代码


    用我这个吧
  • k
    keoy
    好人呀。。。
  • a
    angelqaz
    正体字一样吧,小时候看书看得多,都是正体字,写作文不小心写了还被扣分,sb老师
  • f
    fsrq
    // @name CHH繁体转简体
    // @namespacehttps://reeye.cn/
    // @version 0.1
    // @description 9102了还在用繁体字?
    // @author 内陆土鳖

    虽然不懂代码,但是字我认得呀
    你这description有点东西
  • h
    hmachine
    繁体阅读体验和简体无区别,写肯定是写不了,另外,i18n yes!
  • l
    lyboo
    小时候玩过三国群英传的一般看繁体都没有压力吧
  • 9
    911degrees
    繁体字倒无所谓 关键是名单里某个人回帖的语气和表情
  • k
    kissybaby
    估计是没看惯的缘故,当年wow玩台服的时候看得太多了,早已习惯
  • y
    ytsquall
    看繁体字觉得累甚至看不懂是一种悲哀
  • 叶拟冉
    我并不觉得~
  • S
    ShinichiYao
    大陆看不懂繁体字的也属于比较稀有的了
  • A
    Astral
    看指针慢半拍+1
    楼主平时还用油猴干啥.有没有什么分享一下的.
  • 叶拟冉
    这个倒真不是, 论坛上 我没加任何一人到黑名单
  • p
    pissonyou
    繁体字没关系啊 主要是看回帖内容吧~
  • 叶拟冉
    感谢理解~~
  • 叶拟冉
    不要在意这些小细节~
  • 叶拟冉
    感谢. 我用的是百度api实时翻译的, 字库应该更全
  • m
    mcy9569
    无所谓,都能看懂,也没特意学过,莫名其妙就看得懂了
  • 叶拟冉

    好像也就在chh上用了几个自己写的脚本.
    一般是碰到觉得麻烦 或看不习惯的网站, 我就会写个脚本来解决.
  • 流感病毒
    小马哥说过,汉字从来没有繁化过
  • g
    george539
    繁体中文没学过但也都认识,北方人,觉得挺神奇。。。
  • b
    bevz
    这个人的发言我看不见
  • k
    kangaroo
    小时候学过一段时间书法 所以繁体还觉得挺好看 只是不方便写 因此正常阅读没问题
  • i
    icefish7
    看繁体无压力,连起来的文章都能看懂
  • i
    ilovekhs
    感觉繁体字看着没有问题吧 还挺有美感的
  • 蓝色宇宙
    小时候每天都看繁体字区域的电视剧,已经完全适应了,不觉得有什么累的。
  • l
    lincq3719
    福建靠台湾这边的从小看台湾电视节目长大的表示无压力
  • 叶拟冉
    可能是身为程序员的缘故, 觉得对这种需要多花一步 在脑海中翻译一下 这种情况比较反感, 明明可以避免却不愿意.

    或许我就是想偷懒一下
  • A
    Astral
    我发现我的脚本全是偷懒用的...以前json字符串自动填写Redmine,然后是一些资源站下载一层一层藏在里面的..之类的...
  • i
    iceman0566
    估计小时候繁体漫画杂志看的多。。。现在竟然看繁体毫无违和感
  • w
    warrentak
    脑内自带繁简转换不是我们大陆人的天赋技能吗23333
  • 伍贰壹捌
    繁体字阅读无障碍,手写繁体字时我跟文盲没区别
  • g
    gzol
    从小看三色台的表示看繁体没压力
  • c
    chainofhonor
    我觉得还是本地对比最好 随时添加 我这个是我自己添加了几个字的了
    API万一百度服务器抽风可能就会出问题