這可能是目前最方便的網站中英文切換(理論支援所有語言)
一、簡述
公司最近做的一個官網專案,要求把頁面成國際化,實現中英文切換,為此,我在網上找了一些中英文切換的解決方案,大概為如下兩種:
1、使用谷歌整站翻譯Api
- 優點:只須呼叫介面,即可輕鬆完成整站翻譯,翻譯準確度還行。
- 缺點:需要梯子。
2、自己編寫中英文對照表,用js控制
- 優點:一對一翻譯,所以準確度最高。
- 缺點:需要編寫大量中英文對照表,只適合於少量的固定翻譯。
由於公司的要求是把整站進行翻譯,且官網中存在新聞,即存在大量不可預料的資料,同時考慮到富文字資料不好翻譯。所以,總的來說,第一種方案最為合適,不過可惜,需要梯子,沒辦法,只能別尋出路。好在微軟也有一個類似谷歌整站翻譯的Api:
其實,微軟提供的Demo實現上也很簡單,分如下幾步:
- 引入The Translator Web Widget API
- 監聽dom載入完畢,呼叫Microsoft.Translator.Widget.Translate()整站翻譯。
二、實現
1、封裝language.js
根據上面的對微軟提供的Demo的研究,我們對此進一步封裝,因為中英文切換一般都是一次點選後,往後的統一每個頁面都需要或不需要翻譯,這就需要記錄一個狀態值,這裡選用html5提供的storage來儲存這個狀態,並向外提供一個修改該狀態並重新整理頁面的方法。故,該js(language.js)編寫如下:
$(function(){ // do something var script=document.createElement("script"); script.type="text/javascript"; script.src="http://www.microsoftTranslator.com/ajax/v3/WidgetV3.ashx?siteData=ueOIGRSKkd965FeEGM5JtQ**"; document.getElementsByTagName('head')[0].appendChild(script); var value = sessionStorage.getItem("language"); document.onreadystatechange = function () { if (document.readyState == 'complete') { if(value==="1"){ Microsoft.Translator.Widget.Translate('zh-CHS', 'en', onProgress, onError, onComplete, onRestoreOriginal, 2000); } } } function onProgress(value) { } function onError(error) { } function onComplete() { $("#WidgetFloaterPanels").hide(); } function onRestoreOriginal() { } }); function translate(){ var value = sessionStorage.getItem("language"); if(value==="1"){ sessionStorage.setItem("language", "0"); }else{ sessionStorage.setItem("language", "1"); } window.location.reload();//重新整理當前頁面. }
2、編寫測試頁面
編寫一個測試頁面(test.html)。要使用上面的language.js,必須進行以下三步:
- 設定頁面編碼為utf-8
- 引入jquery和language.js
- 設定按鈕的點選事件,去呼叫中英文切換函式:translate();
<!DOCTYPE html>
<head>
<title>Microsoft Widget API Sample</title>
<meta charset="UTF-8"/>
<script type="text/javascript" src="jquery-1.11.3.js"></script>
<script type="text/javascript" src="language.js"></script>
</head>
<body>
<button id="change">中英文切換</button
</br></br></br></br></br></br></br></br></br></br></br></br></br></br></br>
<div style="text-align: center" >
你好
</div>
</body>
<script type="text/javascript">
$("#change").click(function(){
translate();
})
</script>
</html>
試試看效果吧,反正我覺得還行~
三、其他
上面編寫的language.js中寫死了中文轉英文(zh-CHS轉en),如果專案需要其他語言的轉換,對language.js進行自定義擴充套件即可。
相關推薦
這可能是目前最方便的網站中英文切換(理論支援所有語言)
一、簡述 公司最近做的一個官網專案,要求把頁面成國際化,實現中英文切換,為此,我在網上找了一些中英文切換的解決方案,大概為如下兩種: 1、使用谷歌整站翻譯Api 優點:只須呼叫介面,即可輕鬆完成整站翻譯,翻譯準確度還行。 缺點:需要梯子。
這可能是最全的Android:Process (程序)講解了
官方是這樣描述的: Tools for managing OS processes. 管理作業系統程序的工具類。 下面就來詳細介紹下關於Process的點滴: 概述 預設情況下,同一應用的所有元件均在相同的程序中執行,且大多數應用都不會改變這一點。
只包含中英文的UTF-8與Unicode的轉換(不支援其它語言)
1.UTF8轉Unicode // 把UTF-8轉換成Unicode void UTF_8ToUnicode(char *pIn,TCHAR* pOut) { char* uchar = (char *)pOut; uchar[1] = ((pIn[0] &
這可能是最簡明扼要的 js事件冒泡機制+阻止默認事件 講解了
不支持 自身 eve font def back 綁定 向上 版本 哎 js事件冒泡機制和阻止冒泡 阻止默認行為好像永遠也整不清楚,記了忘 忘了記。。。醉了 這篇文章寫完以後下次再忘記 就呼自己一巴掌,忘一次一巴掌 首先要明白兩個概念——事件和事件流 事件指的
這可能是最好玩的python GUI入門例項!
簡單的說,GUI程式設計就是給程式加上圖形化介面. python的指令碼開發簡單,有時候只需幾行程式碼就能實現豐富的功能,而且python本身是跨平臺的,所以深受程式設計師的喜愛. 如果給程式加一個圖形化介面,那麼普通的使用者也就能用上python的指令碼,極大提升工作效率,所以給python程式加
rabbitmq2-這可能是最全的rabbitmq概覽了
在學習一個技術的時候,首先想到的應該是應用場景,然後在對比技術和技術選型的時候應該結合自己的業務,再結合每一個技術的特點進行技術的選擇,這篇博文就詳細的描述一下rabbitmq的特性 一、rabbitmq的總體模型圖 1、一些名詞解釋: 生產者(P):
這可能是最全面的CSS基礎佈局文章
前言 這是一篇基礎CSS佈局的內容,可能內容比較的簡單。但是很適合查缺補漏的閱讀。 這篇文章來自於網際網路(掘金:Sweet_KK)。我簡單的自己跑了一遍,添加了一些自己的看法,刪了一些個人感覺不重要的,重新排版了一下。 當然,如果原作者感覺不妥,私信就刪
[Android開源]:EasyGuideLayer: 這可能是最簡單、靈活、強大的頁面蒙層元件了!
顧名思義,EasyGuideLayer是用於進行Android頁面蒙層引導的元件。 特性 鏈式呼叫。呼叫邏輯清晰直觀 支援同時設定多個引導層 支援高亮區域的自定義繪製 支援高亮區域點選監聽 支援指定任意View設定蒙層引導 支援進行蒙層展示、隱藏事件監聽 支援直接使用draw
這可能是最早的RxDart使用入門教程。。。
原文地址:RxDart: Magical transformations of Streams (國際慣例,英文好的請去看原文,我的翻譯可能會省去一些東西,同時加入一些自己的想法,便於自己理解。與其說是一篇翻譯,不如說是一份自己的學習筆記。) 在這篇文章中,我們將來談一
這可能是最直接的Android動態申請許可權程式碼
隨著SDK版本的升級。Android程式設計師避免不了需要把 targetSdkVersion 設定為>=23 這就避免不了涉及到動態申請許可權。 如果需要看理論的知識 請搜尋其它文章。如果想直接書寫程式碼和解決方式。請繼續: 當 targetSdkVe
這可能是最囉嗦的Python爬蟲入門教程了 5-100
重要的事情說100遍:爬蟲入門,爬蟲入門,爬蟲入門,爬蟲入門,爬蟲入門,爬蟲入門,爬蟲入門,爬蟲入門爬蟲入門,爬蟲入門,爬蟲入門,爬蟲入門,爬蟲入門,爬蟲入門,爬蟲入門,爬蟲入門爬蟲入門,爬蟲入門,爬蟲入門,爬蟲入門,爬蟲入門,爬蟲入門,爬蟲入門,爬蟲入門 獲取
這可能是最囉嗦的Python爬蟲入門教程了 6-100
1. 簡介 國慶假日結束了,新的工作又開始了,今天我們繼續爬取一個網站,這個網站為 http://image.fengniao.com/ ,蜂鳥一個攝影大牛聚集的地方,本教程請用來學習,不要用於商業目的,不出意外,蜂鳥是有版權保護的網站。 2. 網站分析
這可能是最囉嗦的Python爬蟲入門教程了 8-100
囉嗦兩句 前幾天的教程內容量都比較大,今天寫一個相對簡單的,爬取的還是蜂鳥,依舊採用aiohttp 希望你喜歡 爬取頁面https://tu.fengniao.com/15/ 本篇教程還是基於學習的目
這可能是最透徹的氣泡排序演算法解析(java實現)
氣泡排序是一種思想簡單,便於理解和實現的排序演算法,也許是很多人學習的第一個排序演算法,廢話不多說,我們來實現它 演算法詳解 我們以升序排列為例,演算法的思想是,遍歷整個陣列,依次對陣列中的每兩個數進行比較大小,通過兩個數字的交換,達到將最大的元素移動到陣列的最
這可能是最簡單的Page Object庫
做過web自動化測試的同學,對Page object設計模式應該不陌生。 Page object庫應該根據以下目標開發: Page object應該易於使用 清晰的結構 PageObjects 對於頁面物件 PageModules對於頁面內容 只寫測試,而不是基礎。 在可能的情況下防止樣板程式碼。 不
這可能是最全的Redis叢集方案介紹了
來源 由於Redis出眾的效能,其在眾多的移動網際網路企業中得到廣泛的應用。Redis在3.0版本前只支援單例項模式,雖然現在的伺服器記憶體可以到100GB、200GB的規模,但是單例項模式限制了Redis沒法滿足業務的需求(例如新浪微博就曾經用Redis儲存了超過
這可能是最詳細的目標檢測YOLO_v1的解釋
YOLO 是 2016 年提出來的目標檢測演算法,在當時比較優秀的目標檢測演算法有 R-CNN、Fast R-CNN 等等,但 YOLO 演算法還是讓人感到很新奇與興奮。 YOLO 是 You only look once 幾個單詞的縮寫,大意是你看一次就可以預測了,靈感就來自於我們
這可能是最詳細的Python檔案操作
刪除 # ==================刪除==================# 只能刪除檔案,若為目錄則報錯# 若檔案正在使用,Windows下會直接報錯,Linux下會在目錄表中刪除記錄,但檔案還在# 與os.unlink()一樣的作用os.rem
這可能是最精簡的Android6.0執行時許可權處理,70行程式碼的工具類。附:各種許可權詳細處理
0x00:前言 對於Android6.0執行時許可權的處理方式網上有很多,包括註解,RxJava等等。一直沒有正面提到我關心的問題--如果我不在Activity或者Fragment裡面,需要執行時許可權該怎麼去做?導致我開始一直以為執行時許可權的處理必需要在Activity
web,jsp,html網站中英文切換,資源國際化解決方案及程式碼(其中包含動態切換資料來源及URL攔截器).
<!--資料來源 A--> <bean id="dataSourceCn" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <!-- 使用properties來配置 -->