日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Web應(yīng)用程序中ResourceBundle技術(shù)概述

背景概述

創(chuàng)新互聯(lián)主要從事成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)順昌,10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18982081108

世界經(jīng)濟(jì)日益全球化的同時(shí),一個(gè)應(yīng)用程序需要在全球范圍內(nèi)使用勢(shì)在必然。傳統(tǒng)的程序設(shè)計(jì)方法將可翻譯信息如菜單按鈕的標(biāo)簽,提示信息,幫助文檔等文字信息硬編碼在程序代碼中,不能很好的適應(yīng)全球化發(fā)展,程序的擴(kuò)展性差,維護(hù)成本高。一個(gè)能支持全球化的應(yīng)用程序,必須實(shí)現(xiàn)單一可執(zhí)行的程序,動(dòng)態(tài)地使用資源(Single Source Single Executable),圖1 是兩種模型的對(duì)比圖。

圖 1. 傳統(tǒng)的程序模型和支持全球化程序模型

對(duì)于一個(gè)能支持全球化的應(yīng)用程序來(lái)說(shuō):

一方面需要考慮的是用戶的語(yǔ)言環(huán)境(我們稱作 Language Locale):這里主要就是指翻譯,在不同的國(guó)家用他們自己的語(yǔ)言正確運(yùn)作軟件,讓客戶感覺(jué)這個(gè)產(chǎn)品是為他們而設(shè)計(jì)的;

另一方面就是用戶的文化環(huán)境(我們稱作 Culture Locale):主要處理的是多元文化的支持,包括貨幣、日歷、時(shí)間、日期、排序、界面方向性(Bi-directional) 等符合各個(gè)國(guó)家自己習(xí)慣的顯示方式。

圖2 概述了如何使得一個(gè)應(yīng)用程序(C/S 或者 B/S)支持全球化和本地化。

圖 2. 全球化應(yīng)用程序

本文結(jié)合項(xiàng)目實(shí)踐,總結(jié)了 web 應(yīng)用程序中 Java,JSP,Dojo 和 HTML 四種不同語(yǔ)言是如何管理 Resource Bundle 的,實(shí)現(xiàn)單一可執(zhí)行程序動(dòng)態(tài)讀取資源文件,從而支持全球化和本地化。主要從三個(gè)方面來(lái)闡述:資源文件存儲(chǔ)和命名規(guī)則;用戶語(yǔ)言區(qū)域信息的讀取;如何取得對(duì)應(yīng)語(yǔ)言的資源文件中的鍵值。

Java 程序中的 Resource Bundle 管理

ResourceBundle 是一個(gè)機(jī)制,主要用來(lái)根據(jù)用戶的語(yǔ)言環(huán)境展示不同的界面文字給用戶,讓用戶感覺(jué)這個(gè)應(yīng)用程序?yàn)槲叶ㄖ啤?/p>

然而 Java 中的 ResourceBundle 是一個(gè)類,包含在標(biāo)準(zhǔn)的 Java 發(fā)行版中。圖3總結(jié)了 Java 程序中 ResourceBundle 的管理機(jī)制。

圖 3. Java 程序 Resource Bundle 管理流程

Java 程序中資源文件的存儲(chǔ)和命名

在一個(gè)多模塊的 Java 應(yīng)用程序中,一般每個(gè)模塊都有自己獨(dú)立的資源文件(也叫 Resource Bundles),Resource Bundle 一般存儲(chǔ)在對(duì)應(yīng)模塊的 src/resources/bundles/java/ 目錄下面。通常的命名規(guī)則是:模塊名_語(yǔ)言_國(guó)家 .properties({moduleName}_{language}_{country}.properties)。對(duì)應(yīng)資源文件中的每一個(gè) key,一般都是小寫(xiě)字母開(kāi)頭,用下劃線表示這個(gè) key 在程序中的層級(jí)結(jié)構(gòu),并且按照字母順序排序,便于管理和查找,如清單1所示的例子。

清單 1. Java properties 文件示例

 
 
 
 
  1. 英文Properties 文件:
  2.     helloKey=Hello!
  3.     goodMorningKey=Good Morning!
  4.     goodEveningKey=Good Evening!
  5.     
  6. 日語(yǔ)Properties 文件:
  7.     helloKey=\u3053\u3093\u306b\u3061\u306f!
  8.     goodMorningKey=\u304a\u306f\u3088\u3046!
  9.     goodEveningKey=\u3053\u3093\u3070\u3093\u306f!

Java 程序?qū)Y源文件的回滾機(jī)制:當(dāng)對(duì)應(yīng)翻譯的資源文件不存在時(shí),將使用"默認(rèn)"的資源文件(通常為英文),圖 4 是 Java 資源文件的組織方式。

圖 4. Java 資源文件組織方式

Java 中用戶語(yǔ)言環(huán)境(Locale)和資源文件的讀取

根據(jù)用戶使用的區(qū)域信息來(lái)決定從哪個(gè) Resource Bundle 里面讀取對(duì)應(yīng)的 key 值。Java 語(yǔ)言通過(guò) java.util.Locale 類來(lái)表示區(qū)域,一個(gè) Locale 實(shí)例就代表了一個(gè)特定的區(qū)域。在實(shí)際的項(xiàng)目中,通常將讀取資源文件包裝成一個(gè)類,方便后續(xù)代碼的重用和管理,如清單 2 的示例所示。

清單 2. Java 中 ResourceBundleService 使用

 
 
 
 
  1. public class LocalizedPropertyResources extends MessageResources { 
  2. private static final String MODULE_NAME = "resourceBundle.module.name"; 
  3. public String getProperty(String key, Object... parameters) { 
  4. Locale locale = getUserLocale(); 
  5. String value = getProperty(key, locale, parameters); 
  6. Return value; 
  7. public String getProperty(String key, Locale locale, Object... parameters) { 
  8. ResourceBundle resourceBundle = ResourceBundle.getBundle(MODULE_NAME, locale); 
  9. String value resourceBundle.getString(key, parameters); 
  10. return value; 
  11. }

JSP 中的 Resource Bundle 管理

資源文件管理:JSP 是基于 Java 技術(shù),所以 Java 中的 ResourceBundle 機(jī)制也可以應(yīng)用于 JSP,同樣以 .properties 形式存儲(chǔ)資源文件,資源文件的命名規(guī)則、資源文件的存儲(chǔ)結(jié)構(gòu),key 的命名規(guī)則等都可以遵循 Java 程序中的 Resource Bundle 管理機(jī)制。

用戶語(yǔ)言環(huán)境的設(shè)定:HTTP 協(xié)議通過(guò) Accept-Language 請(qǐng)求頭將本地化信息從瀏覽器傳遞至服務(wù)器, JSTL fmt 庫(kù)中的定制標(biāo)記又會(huì)利用這些方法來(lái)自動(dòng)地確定用戶的語(yǔ)言環(huán)境,從而相應(yīng)地調(diào)整它們的輸出。同時(shí)用戶也可以通過(guò) 來(lái)設(shè)置用戶語(yǔ)言環(huán)境。

對(duì)于 JSP 中資源文件的讀取有以下三種情況:

1、使用 fmt 消息標(biāo)簽:JSP 標(biāo)準(zhǔn)標(biāo)簽庫(kù)(JSP Standard Tag Library,JSTL)中的 fmt標(biāo)簽支持通過(guò)資源文件(ResourceBundle)對(duì)文本內(nèi)容進(jìn)行本地化,該功能可以對(duì)一個(gè)特定的語(yǔ)言請(qǐng)求作出相應(yīng)的響應(yīng),它使用了 J2SE 的 ResourceBundle 來(lái)保持各種翻譯過(guò)的語(yǔ)言編碼。另外用來(lái)設(shè)置地區(qū),比如,這等于設(shè)定了語(yǔ)言和國(guó)家代碼。默認(rèn) JPS 將讀取 Accept-Language 信息。還可以指定 ResourceBundle,比如: 。一旦設(shè)定了 locale(地區(qū))或 ResourceBundle,就可以使用 來(lái)把原文進(jìn)行相應(yīng)的轉(zhuǎn)化,同時(shí)還可以使用< fmt:requestEncoding/>來(lái)設(shè)定請(qǐng)求的字符編碼。如清單3 示例所示:

清單 3. JSTL fmt 標(biāo)簽示例

 
 
 
 
  1. //myTest.jsp
  2. <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
  3.   
  4.     JSTL fmt: Localized tag testing
  5.   
  6.  
  7.   
  8.   
  9.   
  10.   
  11.       
  12.       
  13.   
  14. //也可以通過(guò)下面的方式獲取資源文件
  15.   
  16.     …
  17.     
  18.     
  19.      …
  20.   

2、被 Spring 管理的 JSP,通常 JSP 中有這樣的 taglig"",這種情況下可以使用 Spring message 標(biāo)簽。

 
 
 
 
  1. <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> 

3、對(duì)于由 Struts 操作類提供的JSP,可以使用 Struts bean 消息標(biāo)簽:

 
 
 
 
  1. <%@ taglib uri="/tags/struts-bean" prefix="bean" %> 

Dojo 中的 Resource Bundle 管理

Dojo 是一個(gè) JavaScript 庫(kù),提供了一個(gè)有用的工具來(lái)創(chuàng)建豐富的 Web 客戶端界面。同時(shí) Dojo 也提供了 API 支持全球化功能,如翻譯資源包,函數(shù)的格式化和解析日期、數(shù)字和貨幣,Dojo 對(duì)全球化的支持主要基于 CLDR (Common Locale Data Repository) 和 ICU 的使用。 這一小節(jié)總結(jié)了 Dojo 中資源文件的管理,用戶區(qū)域信息(locale)和資源文件的讀取,如圖5所示。

圖 5. Dojo 中資源文件管理

Dojo 中資源文件的存儲(chǔ)和命名

UTF-8 是 Dojo 程序編碼的先決條件,Dojo 腳本一般將使用 HTML,JSP,Servlet,js等編寫(xiě),所以這些文件必須以 UTF-8 編碼。Dojo 用 JSON 格式來(lái)組織資源文件,首先在 /nls 目錄下有一個(gè)主資源文件(一般是英文),主資源文件中定義了支持的區(qū)域,區(qū)域的值設(shè)置為 true 或者 false,如清單4所示。

清單 4. Dojo 主資源文件的定義

 
 
 
 
  1. define({
  2.       root: {
  3.         OK: "Ok",
  4.         CANCEL: "Cancel",
  5.         OK_CANCEL: "${OK}, ${CANCEL}"
  6.       },
  7.       "ko": true,
  8.       "ja": true,
  9.       "ru": false,
  10.       "zh-cn": true
  11.     });

翻譯的資源文件應(yīng)放在/ nls / 目錄中,目錄的命名需要符合下面的規(guī)范:

  • 目錄的名稱必須要全部小寫(xiě)
  • 用橫線(而不是下劃線)分割語(yǔ)言和國(guó)家,比如 zh-cn,zh-tw 等,如清單5所示。

清單 5. 翻譯資源文件的目錄結(jié)構(gòu)

 
 
 
 
  1. /src/web/js/nls/menu.js       ... 主資源文件,用于默認(rèn)的消息顯示
  2.     /src/web/js/nls/ko/menu.js    ... 韓語(yǔ)的翻譯文件
  3.                     /ja/menu.js    ... 日語(yǔ)的翻譯文件
  4.                     /ru/menu.js    ...俄語(yǔ)的翻譯文件
  5.                      /zh-cn/menu.js  ...簡(jiǎn)中的翻譯文件
  6.                     ...

Dojo 資源文件的回滾機(jī)制為:在 / nls 目錄的根目錄下如果檢測(cè)到區(qū)域設(shè)置,但 nls 目錄中不存在特定于區(qū)域設(shè)置的資源,則將使用主包;當(dāng)主資源文件中某個(gè)語(yǔ)言設(shè)置為 false 時(shí),即使該語(yǔ)言的資源文件存在,也將使用主包。

Dojo 中用戶語(yǔ)言環(huán)境(Locale)和資源文件的讀取

Dojo 和 Java 以相同的方式支持用戶區(qū)域信息,但 Dojo 和 Java 實(shí)現(xiàn)之間存在微小差異。

  • "Dojo 和 Java 對(duì)區(qū)域設(shè)置命名約定有一些區(qū)別,Dojo 使用" - "(連字符)作為連接語(yǔ)言代碼,國(guó)家代碼和變體的分隔符,而 Java 使用"_"(下劃線)。例如,Java 中的 "zh_CN" 與 Dojo 中的 "zh-cn" 相似。
  • 像 Java 中的默認(rèn)用戶語(yǔ)言區(qū)域一樣,Dojo 有一個(gè)全局變量 dojo.locale 用來(lái)存儲(chǔ)默認(rèn) locale 值,但是我們不能直接修改 dojo.locale,可以通過(guò) dojoConfig.locale 來(lái)對(duì) dojo.locale 做初始化工作。
  • 如果 dojoConfig.locale 未定義,Dojo 使用瀏覽器的顯示語(yǔ)言作為用戶區(qū)域設(shè)置。另外 dojoConfig.locale 的設(shè)定需要在加載 dojo.js 之前,這樣設(shè)置的 dojoConfig.locale 才會(huì)起效果。如清單 6 是一個(gè)示例將用戶的 locale 信息保存在 sessionScope,然后傳遞給 dojoConfig。

清單 6. 將用戶 locale 保存在 sessionScope 傳遞給 dojoConfig

 
 
 
 
  1. var dojoConfig = {
  2.             async: 'sync',
  3.             baseUrl: '',
  4.             locale: '${sessionScope.userLanguageLocale}',
  5.             
  6.              bindEncoding: "utf-8",
  7.                 …
  8.         };

userLanguageLocale:是應(yīng)用程序中用戶所設(shè)定的 locale,每個(gè)應(yīng)用程序可能不太一樣。

Dojo 中有兩種方式讀取資源文件:

方式 1:又叫 AMD 方式,通過(guò) dojo/i18n! 這個(gè)插件加載資源文件,首先檢測(cè) dojoConifg.locale 是否設(shè)置,如果設(shè)置了就讀取 dojoConfig.locale,否則就會(huì)使用瀏覽器的顯示語(yǔ)言讀取對(duì)應(yīng)的翻譯資源文件。清單 7 是 dojo/i18n! 的使用示例。

清單 7. Dojo/i18n!使用示例

 
 
 
 
  1. ... 
  2.  
  3.  
  4. ...

方式 2: 使用 dojo.requireLocalization 加載資源文件,dojo.i18n.getLocalization 讀取資源文件,這個(gè)是舊的資源加載方式,新的 Dojo 版本都將采用 AMD 的方式,不過(guò)這種方式用戶可以指定 locale 信息,缺省 locale 的時(shí)候,采用和 AMD 同樣的 locale 解析方式。清單8 是一個(gè)示例。

清單 8. Dojo. requireLocalization 使用示例

 
 
 
 
  1.  
  2.  
  3. ...

HTML 中的 Resource Bundle 管理

HTML 中的硬編碼(Hard Code)通常分為兩種情況:一種情況是 HTML 頁(yè)面不涉及任何編程邏輯,這時(shí)候可以翻譯整個(gè) HTML 文件(這種方式在開(kāi)發(fā)過(guò)程中不需要特殊處理),或者將 HTML 變更為 JSP,這樣就可以利用 JSP 中 fmt 標(biāo)簽將 Hard Code 提取出來(lái),如清單 9 示例所示。

清單 9. HTML 更改為 JSP

 
 
 
 
  1. //Index.html 
  2.  
  3.  
  4.  
  5.  Welcome Page  
  6.  
  7.  
  8. … 
  9.  
  10.  
  11. //將 Index.html 更改為 Index.jsp,這樣就可以利用 JSP 中 fmt 標(biāo)簽 
  12. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
  13. <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 
  14.  
  15.  
  16.  
  17.  <fmt:message key="common_welcome" /></ title> </li> <li></head> </li> <li><body> </li> <li>… </li> <li></body> </li> <li></html> </li> <li>//test.properties</li> <li> Common_welcome=Welcome Page </li> <li>…</li> </ol></pre><p>//將 Index.html 更改為 Index.jsp,這樣就可以利用 JSP 中 fmt 標(biāo)簽</p><p>另外一種情況是 HTML 作為 Dojo widget 模板文件,這種情況下可以使用 dojo API 的 i18n 庫(kù)來(lái)處理硬編碼消息,其處理方式和 Dojo 很類似,模板 HTML 文件中使用的 Key 需要在 Widget 的 js 文件中定義和獲取。下面將通過(guò)示例介紹 HTML 作為 Dojo 模板文件時(shí),如何抽取當(dāng)中的 hard code 信息。通常分三個(gè)步驟完成模板 HTML 文件中的字符串抽取。</p><p>***步: 將 HTML 中的字符串放到一個(gè)資源文件如 message.js 中,資源文件的組織方式和 Dojo 是一樣的;</p><p>第二步: 在 Dojo widget 的 js 文件中使用 Dojo Resource Bundle 獲取資源文件,定義變量獲取對(duì)應(yīng)的Key值;</p><p>第三步: 在HTML模板文件中使用 Dojo .js 文件中定義的變量。如清單 10 所示。</p><p><strong>清單 10. HTML 作為 Dojo Widget 模板</strong></p><pre> <ol> <li>Test.html </li> <li><div dojoAttachPoint="testNode" style="display:inline"> </li> <li><table style="position: relative; margin: 20px 0 0 120px; padding: 0;"> </li> <li><tr> </li> <li><td style="text-align: right;">Username:</td> //原來(lái)的 hard code </li> <li><td style="text-align: right;">${usernameLabel}</td> //Resource out 之后的變量引用 </li> <li>…. </li> <li></tr> </li> <li></div> </li> <li>Test.js </li> <li>dojo.requireLocalization("js", "message"); </li> <li>dojo.declare("Test") { </li> <li>templatePath: dojo.moduleUrl("common", " /html/Test.html"), </li> <li>usernameLabel: "", </li> <li>postMixInProperties: function(){ </li> <li>this.inherited(arguments); </li> <li>var resources = dojo.i18n.getLocalization("js", "message"); </li> <li>this.usernameLabel = resources.labels.username; //獲取資源文件 </li> <li>} </li> <li>}</li> </ol></pre><p>清單 11. HTML 中特殊硬編碼處理</p><pre> <ol> <li>// Hard Code </li> <li><html> </li> <li><body> </li> <li><select id="Product"> </li> <li><option>Is Not</option> </li> <li><option>Is</option> </li> <li></select> </li> <li></body> </li> <li></html> </li> <li>//處理后的 HTML </li> <li><html> </li> <li><body> </li> <li><select id="Product"> </li> <li><option value="Is Not"> ${ Label.IS_NOT}</option></li> <li><option value="Is">${Label.IS}</option> </li> <li></select> </li> <li></body> </li> <li></html></li> </ol></pre><p><strong>總結(jié)</strong></p><p>本文總結(jié)了如何存儲(chǔ) web 應(yīng)用程序中使用不同框架時(shí)的資源文件及其命名規(guī)則,如何取得資源文件中的鍵值。希望這篇文章能為正在開(kāi)發(fā)國(guó)際化 Web 應(yīng)用程序的讀者提供一定的參考價(jià)值。</p> <br> 分享文章:Web應(yīng)用程序中ResourceBundle技術(shù)概述 <br> URL標(biāo)題:<a href="http://www.5511xx.com/article/copegce.html">http://www.5511xx.com/article/copegce.html</a> </div> <div id="oqlbovc" class="hot_new"> <div id="fcipush" class="page_title clearfix"> <h3>其他資訊</h3> </div> <div id="4ggnvcj" class="news_list clearfix"> <ul> <li> <a href="/article/djchjpo.html">Windows文件怎么恢復(fù)?windows數(shù)據(jù)恢復(fù)</a> </li><li> <a href="/article/djchjeh.html">忘川風(fēng)華錄有幾個(gè)服務(wù)器?云服務(wù)器可信山河云</a> </li><li> <a href="/article/djchpos.html">阿里云備案是什么意思?(阿里云備案服務(wù)號(hào)免費(fèi))</a> </li><li> <a href="/article/djchjhh.html">手機(jī)提示網(wǎng)絡(luò)被劫持怎么回事?(劫持服務(wù)器)</a> </li><li> <a href="/article/djchjps.html">php如何發(fā)布到服務(wù)器上</a> </li> </ul> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> </div> <!-- 底部信息 --> <div id="zlspvts" class="footer wow fadeInUp"> <div id="wwe2z4i" class="rowFluid"> <div id="9jglq7p" class="span12"> <div id="ypmvdkq" class="container"> <div id="9wdrhfc" class="footer_content"> <div id="4cs6o2x" class="span4 col-xm-12"> <div id="ai4tag2" class="footer_list"> <div id="9y860pw" class="span6"> <div id="kti7ypw" class="bottom_logo"><img src="/Public/Home/images/ewm.jpg" alt="微信服務(wù)號(hào)二維碼" /></div> </div> <div id="4q7emlb" class="span6 col-xm-12"> <div id="4esy4s9" class="quick_navigation"> <div id="jsiwmut" class="quick_navigation_title">快速導(dǎo)航</div> <ul> <li><a title="四川成都seo網(wǎng)站優(yōu)化" target="_blank">四川成都seo網(wǎng)站優(yōu)化</a></li><li><a title="網(wǎng)頁(yè)設(shè)計(jì)" target="_blank">網(wǎng)頁(yè)設(shè)計(jì)</a></li><li><a title="成都電商網(wǎng)站建設(shè)方案" target="_blank">成都電商網(wǎng)站建設(shè)方案</a></li><li><a title="成都App定制" target="_blank">成都App定制</a></li><li><a title="天澤尚品" target="_blank">天澤尚品</a></li><li><a title="網(wǎng)站免費(fèi)收錄" target="_blank">網(wǎng)站免費(fèi)收錄</a></li><li><a title="成都app制作" target="_blank">成都app制作</a></li><li><a title="sciotweb.com" target="_blank">sciotweb.com</a></li><li><a title="樂(lè)山維修康明斯發(fā)電機(jī)" target="_blank">樂(lè)山維修康明斯發(fā)電機(jī)</a></li><li><a title="成都西信機(jī)房" target="_blank">成都西信機(jī)房</a></li><li><a title="南充發(fā)電機(jī)組維修" target="_blank">南充發(fā)電機(jī)組維修</a></li> </ul> </div> </div> </div> </div> <div id="9rx3isz" class="span4 col-xm-6 col-xs-12"> <div id="b3uaxn8" class="footer_list"> <div id="7x9slls" class="footer_link"> <div id="4v86la7" class="footer_link_title">友情鏈接</div> <ul id="frientLinks"> <a title="網(wǎng)站制作" target="_blank">網(wǎng)站制作</a> <a title="網(wǎng)站建設(shè)" target="_blank">網(wǎng)站建設(shè)</a> <a title="成都網(wǎng)絡(luò)推廣" target="_blank">網(wǎng)絡(luò)推廣</a> <a title="成都網(wǎng)站推廣" target="_blank">網(wǎng)站推廣</a> <a title="成都微信小程序開(kāi)發(fā)" target="_blank">小程序開(kāi)發(fā)</a> <a title="創(chuàng)新互聯(lián)網(wǎng)站欄目導(dǎo)航" target="_blank">網(wǎng)站導(dǎo)航</a> </ul> <div id="qigwkrk" class="footer_link_title">網(wǎng)站建設(shè)</div> <ul id="frientLinks"> <li><a href="/">四川平武建站</a></li> <li><a title="創(chuàng)新互聯(lián)網(wǎng)站欄目導(dǎo)航" target="_blank">網(wǎng)站導(dǎo)航</a></li> </ul> </div> </div> </div> <div id="tlapfl2" class="span4 col-xm-6 col-xs-12"> <div id="sljgn7u" class="footer_list"> <div id="9kywtbi" class="footer_cotact"> <div id="fy4utir" class="footer_cotact_title">聯(lián)系方式</div> <ul> <li><span id="ev4jl2w" class="footer_cotact_type">企業(yè):</span><span id="ew2agfn" class="footer_cotact_content">四川綿陽(yáng)平武網(wǎng)站建設(shè)工作室</span></li> <li><span id="abh8wds" class="footer_cotact_type">地址:</span><span id="486a96n" class="footer_cotact_content">成都市青羊區(qū)太升南路288號(hào)</span></li> <li><span id="ashmrhg" class="footer_cotact_type">電話:</span><span id="zjckife" class="footer_cotact_content"><a href="tel:18980820575" class="call">18980820575</a></span></li> <li><span id="2shxlay" class="footer_cotact_type">網(wǎng)址:</span><span id="iafmtd8" class="footer_cotact_content"><a href="/" title="四川平武網(wǎng)站建設(shè)">www.5511xx.com</a></span></li> </ul> </div> </div> </div> </div> </div> <div id="aspn1su" class="copyright"> <p>公司名稱:四川綿陽(yáng)平武網(wǎng)站建設(shè)工作室 聯(lián)系電話:18980820575</p> <p><a target="_blank" rel="nofollow">網(wǎng)站備案號(hào):蜀ICP備2024061352號(hào)-3</a></p> <p>四川平武建站 四川平武網(wǎng)站建設(shè) 四川平武網(wǎng)站設(shè)計(jì) 四川平武網(wǎng)站制作 <a target="_blank">成都做網(wǎng)站</a></p> </div> </div> </div> </div> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.5511xx.com/" title="日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区">日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区</a> <div class="friend-links"> <a href="http://www.9iban.com">久久精品无码av|一级中文无码免费观看|日韩欧美黄片手机版|人妻激情视频成人无码aaa|美女一级黄色毛片|国产aa黄片亚洲破处片|黄色A极大片特级a黄片|综合精品一区二区三区四区在线|国产精品不卡无码av在线播放|超碰亚洲在线日韩肏屄</a> <a href="http://www.datumvisio.com">91AV乱伦强奸|国产理伦电影尤物导航|在线观看高清无码黄片|特黄色电影特级毛片|亚洲精品av一区二区三区|91AV无码免费|久久嫩草国产亚洲无码网站|国产91极度丝袜|青青草在线视频免费观看|黄色av网五月天</a> <a href="http://www.jiangrensw.com">在线视频一本一区|91在线免费视频网站|国产视频在线观看91|A片在线观看视频直接观看|在线免费A片黄色电影|美女视频图片永久免费观看|青青色在线观看视频网站|日本欧美视频在线看v片成人|色情性黄?片免费视频中国免费的|国产一线二线三黄色片</a> </div> </div> </footer> <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body><div id="gs7uw" class="pl_css_ganrao" style="display: none;"><dl id="gs7uw"></dl><tr id="gs7uw"><style id="gs7uw"><ul id="gs7uw"></ul></style></tr><ol id="gs7uw"></ol><tr id="gs7uw"></tr><font id="gs7uw"></font><center id="gs7uw"><strong id="gs7uw"><acronym id="gs7uw"></acronym></strong></center><small id="gs7uw"></small><meter id="gs7uw"></meter><sub id="gs7uw"><fieldset id="gs7uw"><rp id="gs7uw"></rp></fieldset></sub><style id="gs7uw"></style><progress id="gs7uw"></progress><span id="gs7uw"><object id="gs7uw"><del id="gs7uw"></del></object></span><tr id="gs7uw"></tr><sup id="gs7uw"><strike id="gs7uw"><tr id="gs7uw"></tr></strike></sup><tr id="gs7uw"><ins id="gs7uw"><p id="gs7uw"></p></ins></tr><strike id="gs7uw"><code id="gs7uw"><dd id="gs7uw"></dd></code></strike><strike id="gs7uw"></strike><meter id="gs7uw"></meter><strike id="gs7uw"></strike><option id="gs7uw"><progress id="gs7uw"><dl id="gs7uw"></dl></progress></option><tr id="gs7uw"><address id="gs7uw"><p id="gs7uw"></p></address></tr><pre id="gs7uw"></pre><cite id="gs7uw"><ruby id="gs7uw"><sub id="gs7uw"></sub></ruby></cite><dd id="gs7uw"></dd><meter id="gs7uw"></meter><small id="gs7uw"></small><s id="gs7uw"></s><object id="gs7uw"><del id="gs7uw"><tr id="gs7uw"></tr></del></object><abbr id="gs7uw"><mark id="gs7uw"><strike id="gs7uw"></strike></mark></abbr><ins id="gs7uw"><pre id="gs7uw"><bdo id="gs7uw"></bdo></pre></ins><strike id="gs7uw"><code id="gs7uw"><address id="gs7uw"></address></code></strike><ol id="gs7uw"></ol><i id="gs7uw"><ins id="gs7uw"><pre id="gs7uw"></pre></ins></i><legend id="gs7uw"></legend><legend id="gs7uw"><nav id="gs7uw"><em id="gs7uw"></em></nav></legend><pre id="gs7uw"></pre><label id="gs7uw"></label><option id="gs7uw"></option><font id="gs7uw"><th id="gs7uw"><nav id="gs7uw"></nav></th></font><sub id="gs7uw"><source id="gs7uw"><tr id="gs7uw"></tr></source></sub><ruby id="gs7uw"></ruby><strike id="gs7uw"></strike><s id="gs7uw"></s><option id="gs7uw"></option><bdo id="gs7uw"><mark id="gs7uw"><source id="gs7uw"></source></mark></bdo><bdo id="gs7uw"></bdo><abbr id="gs7uw"></abbr><source id="gs7uw"></source><progress id="gs7uw"><object id="gs7uw"><small id="gs7uw"></small></object></progress><code id="gs7uw"></code><pre id="gs7uw"></pre><acronym id="gs7uw"><legend id="gs7uw"><label id="gs7uw"></label></legend></acronym><acronym id="gs7uw"><address id="gs7uw"><nav id="gs7uw"></nav></address></acronym><del id="gs7uw"></del><bdo id="gs7uw"><sup id="gs7uw"><source id="gs7uw"></source></sup></bdo><strike id="gs7uw"></strike><address id="gs7uw"></address><bdo id="gs7uw"></bdo><strike id="gs7uw"></strike><del id="gs7uw"></del><strike id="gs7uw"></strike><sub id="gs7uw"></sub><tr id="gs7uw"><style id="gs7uw"><ul id="gs7uw"></ul></style></tr><wbr id="gs7uw"><abbr id="gs7uw"><sup id="gs7uw"></sup></abbr></wbr><acronym id="gs7uw"></acronym><address id="gs7uw"></address><option id="gs7uw"></option><s id="gs7uw"><b id="gs7uw"><tbody id="gs7uw"></tbody></b></s><tr id="gs7uw"><style id="gs7uw"><mark id="gs7uw"></mark></style></tr><object id="gs7uw"><del id="gs7uw"><tr id="gs7uw"></tr></del></object><bdo id="gs7uw"></bdo><bdo id="gs7uw"></bdo><option id="gs7uw"><progress id="gs7uw"><dl id="gs7uw"></dl></progress></option><sub id="gs7uw"></sub><abbr id="gs7uw"><sub id="gs7uw"><strike id="gs7uw"></strike></sub></abbr><strike id="gs7uw"></strike><th id="gs7uw"><em id="gs7uw"><blockquote id="gs7uw"></blockquote></em></th><samp id="gs7uw"><dl id="gs7uw"><em id="gs7uw"></em></dl></samp><b id="gs7uw"></b><ol id="gs7uw"></ol><tr id="gs7uw"><style id="gs7uw"><ul id="gs7uw"></ul></style></tr><ol id="gs7uw"><menu id="gs7uw"><progress id="gs7uw"></progress></menu></ol><em id="gs7uw"><center id="gs7uw"><strong id="gs7uw"></strong></center></em><address id="gs7uw"><wbr id="gs7uw"><ruby id="gs7uw"></ruby></wbr></address><pre id="gs7uw"></pre><sup id="gs7uw"><source id="gs7uw"><tr id="gs7uw"></tr></source></sup><fieldset id="gs7uw"><acronym id="gs7uw"><dd id="gs7uw"></dd></acronym></fieldset><fieldset id="gs7uw"><acronym id="gs7uw"><dd id="gs7uw"></dd></acronym></fieldset><sub id="gs7uw"><source id="gs7uw"><rp id="gs7uw"></rp></source></sub><address id="gs7uw"><cite id="gs7uw"><ruby id="gs7uw"></ruby></cite></address><sup id="gs7uw"><span id="gs7uw"><code id="gs7uw"></code></span></sup><mark id="gs7uw"><source id="gs7uw"><code id="gs7uw"></code></source></mark><blockquote id="gs7uw"></blockquote><i id="gs7uw"><small id="gs7uw"><tr id="gs7uw"></tr></small></i><em id="gs7uw"><em id="gs7uw"><ol id="gs7uw"></ol></em></em><progress id="gs7uw"></progress><sub id="gs7uw"><source id="gs7uw"><rp id="gs7uw"></rp></source></sub><bdo id="gs7uw"></bdo><del id="gs7uw"><meter id="gs7uw"><style id="gs7uw"></style></meter></del><mark id="gs7uw"><source id="gs7uw"><code id="gs7uw"></code></source></mark></div> </html>