PHP判斷客戶端瀏覽器的語言,加強後續用戶體驗

PHP判斷客戶端瀏覽器的語言,加強後續用戶體驗

因為本站使用的是繁體漢字,而我們大陸的大部分人都是使用的簡體漢字,所以我在頂端導航處加了“繁簡切換”功能。考慮到更好的用戶體驗,所以我決定在正文部分加上一些警示文字。但是呢,如果來訪的用戶如果是台灣或者香港地區的,那麼警示文字顯得有些多餘且沒必要,所以需要對其進行語言判斷。網上很多用到的方法大都是對來訪的ip進行判斷,但是如果用戶使用了代理或者在外等一些情況,那麼可能會顯得有些不准確。所以我考慮了下通過瀏覽器的語言設置進行判斷,雖然說不能排除某一小部分人可能喜歡用英文的語言設置,但是大部分還是奏效的。


實現的原理:

瀏覽器發給web服務器的 HTTP Headers Information 中包含了這樣一個信息 Accept-Language這個信息就是,瀏覽器中 工具->Internet選項->常規 下的 語言,它就是用來設置瀏覽器可接受的語言首選項的, 它可以是多種可接受語言的優先排序列。
  以PHP為例,用戶可接受的語言信息,放在$_SERVER[‘HTTP_ACCEPT_LANGUAGE’]裏,變量信息是類似這樣的 “zh-cn”,如果是多語言列,是類似 “zh-cn,en;q=0.8,ko;q=0.5,zh-tw;q=0.3″這樣的情況。

戳我進入判斷當前使用的瀏覽器的語言設置

因為本人對php幾乎一竅不通,當時就直接用if語句寫個個判斷,如下:

1
2
3
4
5
6
<?
if($_SERVER['HTTP_ACCEPT_LANGUAGE']=="zh-cn" )
{
echo "经雷达探测,您使用的语言为新中国的简体汉字,为避免晕车,请使用顶端导航的繁简切换功能,謝謝 !";//当是簡體中文的时候
}
?>

但是你的瀏覽器可能并不是只有一種語言設置,例如firefox默認的語言設置就是zh-cn,zh;q=0.5,opera國際版的是zh-CN,en;q=0.9,fr;q=0.8,ja;q=0.7,de;q=0.6,es;q=0.5,it;q=0.4,pt;q=0.3,pt-PT;q=0.2,nl;q=0.1,sv;q=0.1,nb;q=0.1,da;q=0.1,fi;q=0.1,ru;q=0.1,pl;q=0.1,zh-TW;q=0.1,ko;q=0.1,所以此法並不可取。google了近半個小時,查到了php的preg_match()函數,大體就是可以自定義一個規則來和某一個參數進行匹配,所以判斷的語句修改成如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
error_reporting(E_ALL ^ E_NOTICE);
 
preg_match('/^([a-z\-]+)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches);// 分析 HTTP_ACCEPT_LANGUAGE 的屬性
$lang = $matches[1];// 取第一語言設置
 
switch ($lang) {
        case 'zh-cn' :
                echo "经雷达探测,您使用的语言为新中国的简体汉字,为避免晕车,请使用顶端导航的繁简切换功能,谢谢 !";
                break;
        default:
                echo "經雷達探測,您使用的語言目前超出本站的想像範圍,您確定您看得懂中文?";
                break;
}
?>

部分瀏覽器的語言顯示大小寫可能有問題,比如我所使用的opera顯示的是zh-CN,所以我們要繼續完善它,成品如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
error_reporting(E_ALL ^ E_NOTICE);
 
preg_match('/^([a-z\-]+)/i', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $matches);// 分析 HTTP_ACCEPT_LANGUAGE 的屬性
$lang = $matches[1];// 這裏只取第一語言設置 (其他可根據需要增強功能,這裏只做簡單的方法演示)
 
switch ($lang) {
        case 'zh-cn' :
                echo "经雷达探测,您使用的语言为新中国的简体汉字,为避免晕车,请使用顶端导航的繁简切换功能,谢谢 !";
                break;
        case 'zh-CN' :
                echo "经雷达探测,您使用的语言为新中国的简体汉字,为避免晕车,请使用顶端导航的繁简切换功能,谢谢 !";
                break;
        case 'zh-hk' :
                echo "經雷達探測,您使用的語言為中國傳統繁體漢字,為本站所推崇文字,祝您旅途愉快!";
                break;
        case 'zh-HK' :
                echo "經雷達探測,您使用的語言為中國傳統繁體漢字,為本站所推崇文字,祝您旅途愉快!";
                break;
        case 'zh-tw' :
                echo "經雷達探測,您使用的語言為中國傳統繁體漢字,為本站所推崇文字,祝您旅途愉快!";
                break;
        case 'zh-TW' :
                echo "經雷達探測,您使用的語言為中國傳統繁體漢字,為本站所推崇文字,祝您旅途愉快!";
                break;
        case 'en-us' :
                echo "經雷達探測,您使用的語言為英文,您確定你看得懂中文?";
                break;
        default:
                echo "經雷達探測,您使用的語言目前超出本站的想像範圍,您確定您看得懂中文?";
                break;
}
 
?>

具體的效果可見本blog的文章上端的提示文字,或者把代碼存成php放在自己網絡空間測試。如發現顯示不準確,請訪問http://guaniu.com/test/lang.php探測你的瀏覽器的語言設置,然後給我回覆,謝謝!

  • Pingback: 讓你的<pre></pre>能自動換行 | Leeiio™ Chaos Made.()

  • Jor

    …… 哈哈,我看得懂中文,这提醒挺好玩的。

    对了,你为什么要用繁体的?当然,我也认为电脑宋体设计得很垃圾……

  • @Jor:習慣寫了,平時書面也會寫,只是覺得傳統的漢字很好看。

  • 还行吧,只是觉得之前Google还有FF推介时,很多人用这个方法推广自己的FF..

  • 有没有办法添加更多语言的支持,并且自动附上一个google翻译的链接,就是点了之后直接通过google翻译成浏览者的语言

  • @Yuri case ‘en-us’ : 引號裡面自己去修改成其他語言的即可,可以參照句型複製很多個但是我覺得這樣太龐大了..

  • 我在找一个合适在写linux命令时会自动变成一个黑色的命令行.那样在让人看起来也懂的在写文章时更容易.你这个是合适写代码的.是一件很不错.如果你知道在写命令行的.可以介绍一下.

  • Pingback: 讓你的能自動換行 - Leeiio Chaos Made.()

  • 不都是简体么?没有繁体呀!

  • @华晨
    因為本站目前啟用了服務器端的繁簡轉換功能,只要你的瀏覽器的主語言設置是簡體中文的話,我的網站就會以簡體中文形式顯示~ 你可以嘗試在我博客地址後面加上 /zh-tw/

  • @Leeiio
    呵呵,没有啊,加了还是又跳转到简体中文的,呵呵。

  • @华晨
    诸如地址 leeiio.me/zh-tw/

  • 暈~~ 看了這篇文章才知道…

    怪不得我在http://leeiio.me/jquery-last-by-author/#comment-5100 的回覆,文字全變了。。5555名字也變了“嗰個人” 😥

  • 在判断某些字符串的时候, 比如上面的 switch, 可以先把大小写转换再判断, php 可用 strtolower 和 strtoupper

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

    function setCookie(name, value) //cookies设置
    {
    var argv = setCookie.arguments;
    var argc = setCookie.arguments.length;
    var expires = (argc > 2) ? argv[2] : null;
    if(expires!=null)
    {
    var LargeExpDate = new Date ();
    LargeExpDate.setTime(LargeExpDate.getTime() + (expires*1000*3600*24));
    }
    document.cookie = name + “=” + escape (value)+((expires == null) ? “” : (“; expires=” +LargeExpDate.toGMTString()));
    }

    function getCookie(Name) //cookies读取
    {
    var search = Name + “=”
    if(document.cookie.length > 0)
    {
    offset = document.cookie.indexOf(search)
    if(offset != -1)
    {
    offset += search.length
    end = document.cookie.indexOf(“;”, offset)
    if(end == -1) end = document.cookie.length
    return unescape(document.cookie.substring(offset, end))
    }
    else return “”
    }
    }

    var StranLink_Obj=document.getElementById(“StranLink”)
    if (StranLink_Obj)
    {
    var JF_cn=”ft”+self.location.hostname.toString().replace(/\./g,””)
    var BodyIsFt=getCookie(JF_cn)
    if(BodyIsFt!=”1″)BodyIsFt=Default_isFT
    with(StranLink_Obj)
    {
    if(typeof(document.all)!=”object”) //非IE浏览器
    {
    href=”javascript:StranBody()”
    }
    else
    {
    href=”#”;
    onclick= new Function(“StranBody();return false”)
    }
    title=StranText(“点击以繁体中文方式浏览”,1,1)
    innerHTML=StranText(innerHTML,1,1)
    }
    if(BodyIsFt==”1″){setTimeout(“StranBody()”,StranIt_Delay)}
    }

  • 当然遇上动态内容就不给力了 脚本啊 等等

  • 不错,解决问题的思路值得学习.

  • ~~qq

    把语言名字都换成小写的,然后放进数组,就不会那么庞大了,初学php,借鉴你的代码,稍稍修改了些
    error_reporting(E_ALL ^ E_NOTICE);

    preg_match(‘/^([a-z\-]+)/i’, $_SERVER[‘HTTP_ACCEPT_LANGUAGE’], $matches);// 分析 HTTP_ACCEPT_LANGUAGE 的属性
    $lang = strtolower($matches[1]);// 这里只取第一语言设置 (其他可根据需要增强功能,这里只做简单的方法演示)
    $zh_cn = array (“zh”,”zh-cn”,”zh-hant”,”zh-sg”);
    $zh_tw = array(“zh-hk”,”zh-mo”,”zh-tw”);
    if(in_array(“$lang”,$zh_cn)){
    echo “中国简体汉字”;
    }elseif (in_array(“$lang”,$zh_tw)){
    echo “中国传统繁体汉字”;
    }else{
    echo “English”;
    }