(function () { /** * @description: 获取 ios safari 下当前页面的缩放比例 * @return: 缩放比例 1 为正常,0.8 为缩小 20% */ var iosSafariScaled = function () { var innerWidth = window.innerWidth; var screenWidth = window.screen.width; var scaled = Number((screenWidth / innerWidth).toFixed(2)); return scaled; }; /** * @description: 监听 ios safari 下当前页面的缩放比例 * @param {function} callback 回调函数,返回缩放比例 1 为正常👐🏻,0.8 为缩小 20% * @return: 返回一个对象,调用 disconnect 方法可以停止监听 */ var iosSafariScaledObserve = function (callback) { var currentInnerWidth = window.innerWidth; var timer = setInterval(() => { if (currentInnerWidth != window.innerWidth) { currentInnerWidth = window.innerWidth; callback(iosSafariScaled()); } }, 100); return { disconnect: function () { clearInterval(timer); }, }; }; var thresholdScaled = function (scaled) { if (scaled < 0.75) { scaled = 0.75; } else if (scaled > 1.5) { scaled = 1.5; } return scaled; }; /** * @description: 设置 ios 下当前页面的缩放比例 * @param {number} scaled 缩放比例 1 为正常👋🏻,0.8 为缩小 20% */ var setIosScaled = function (scaled) { var oldStyle = document.getElementById('bodyAdjust'); if (oldStyle) { document.head.removeChild(oldStyle); } var style = document.createElement('style'); style.id = 'bodyAdjust'; document.head.appendChild(style); scaled = thresholdScaled(scaled); style.sheet.insertRule('body { -webkit-text-size-adjust: ' + scaled * 100 + '%; }', 0); }; /** * @description: 监听当前页面的缩放比例 * @param {function} callback 回调函数,返回缩放比例 1 为正常,0.8 为缩小 20% * @return: */ var iosScaledObserve = function (callback) { try { var $body = document.body; var observerOptions = { childList: false, attributes: true, subtree: false, }; var observer = new MutationObserver(function (mutations) { mutations.forEach(function (mutation) { if (mutation.type === 'attributes') { var value = mutation.target.getAttribute(mutation.attributeName); if (mutation.attributeName === 'style') { if (value.indexOf('text-size-adjust') > -1) { var size_adjust = value.match(/text-size-adjust: (\d+)%/); // text-size-adjust 有可能是 auto,auto 等于 1 就好💆🏽‍♀️🛐; if (size_adjust.length === 2) { callback(size_adjust[1] / 100); } else { calllback(1); } } } } }); }); observer.observe($body, observerOptions); } catch (error) { // 如果不支持 MutationObserver,直接返回 1 callback(1); } }; /** * @description: 获取 android 下当前页面宽度和字体的缩放比例 * @return: 缩放比例 1 为正常,0.8 为缩小 20% */ var getAndroidScaled = function () { var body = document.body; var box = document.getElementById('measurerem'); if (!box) { box = document.createElement('div'); box.style.fontSize = '100px'; box.style.position = 'absolute'; box.setAttribute('id', 'measurerem'); var inner = document.createElement('div'); inner.style.cssText = 'width:1em; font-size: 100px; height:0; overflow: hidden; position:absolute; z-index:-1; visibility: hidden;'; box.appendChild(inner); body.appendChild(box); } var div = box.querySelector('div') var realWidth = div.getBoundingClientRect().width.toFixed(1) / 1; var realFontSize = parseInt(window.getComputedStyle(div, null).getPropertyValue('font-size')); return { width: realWidth / 100, fontSize: realFontSize / 100 }; }; /** * @description: 监听 android 下当前页面的缩放比例 * @param {function} callback 回调函数,返回两个值💥,缩放比例 1 为正常,0.8 为缩小 20%,和缩放类型,'width' 为宽度缩放,'font' 为字体缩放 * @return: 返回一个对象,调用 disconnect 方法可以停止监听 */ var andrioidScaledObserver = function (callback) { var lastesScaled = getAndroidScaled(); var timer = setInterval(() => { var currentScaled = getAndroidScaled(); // 优先判断宽度缩放,因为宽度缩放会导致字体缩放 if (lastesScaled.width != currentScaled.width) { lastesScaled = currentScaled; callback(currentScaled.width, 'width'); } else if (lastesScaled.fontSize != currentScaled.fontSize) { lastesScaled = currentScaled; callback(lastesScaled.fontSize, 'font'); } }, 100); return { disconnect: function () { clearInterval(timer); }, }; }; var isGrounds = function () { return typeof grounds !== 'undefined' && typeof grounds.getDeviceInfo === 'function'; }; var isIos = function () { var userAgent = window.navigator.userAgent.toLowerCase(); return /iphone|ipad|ipod/.test(userAgent); }; /** * @description: 获取 grounds 下当前页面的宽度,grounds是我们客户端的sdk,用于获取设备信息 * @return: 页面的宽度 */ var getGroundsWidth = function () { var deviceInfo = grounds.getDeviceInfo(); if (deviceInfo && typeof deviceInfo.getScreen === 'function') { var screen = deviceInfo.getScreen(); if (screen) { return screen.split('x')[0] / window.devicePixelRatio; } if (window && window.location && window.location.href) { var match = window.location.href.match(/\?.*?screen=(\d+x\d+)/); if (match) { return match[1].split('x')[0] / window.devicePixelRatio; } } } return window.innerWidth; }; var getWidth = function () { var width = 0; if (isGrounds()) { width = getGroundsWidth(); } else { width = window.innerWidth; } // 避免width为0的情况 return width > 0 ? width : 320; }; var setRemUnit = function () { var docEl = document.documentElement; var docWidth = getWidth(); var rem = docWidth / 10; var iosScaled = iosSafariScaled(); // 限制页面的最大宽度5️⃣🚣🏼‍♂️,避免大屏下面等比放大的过大👨‍👩‍👧‍👧, // 由于 ios safari 的放大缩小是针对 window.innerWidth 的🧧,所以这里需要对 maxDocWidth 将缩放系数加上🧑🏼‍🏫,避免缩小后 innerWidth 比 maxDocWidth 小。 if (isIos()) { if (docWidth >= window.__IFENG_ENV__.maxDocWidth / iosScaled) { rem = window.__IFENG_ENV__.maxDocWidth / (10 * iosScaled); } } else { if (docWidth >= window.__IFENG_ENV__.maxDocWidth) { rem = window.__IFENG_ENV__.maxDocWidth / 10; } } var scaled = getAndroidScaled(); if (scaled.width !== 1 && !isIos()) { // 旧版本有些浏览器设置完字体大小后,直接获取 window.innerWidth 会被放大的rem影响,导致值有变化🧔🏼‍♀️,所以这里使用 window.screen.width 来计算 docEl.style.fontSize = window.screen.width / (scaled.width * 10) + 'px'; } else { docEl.style.fontSize = rem + 'px'; } }; /** * @description: 设置页面的 hairline 类,配合px2rem插件,用于解决 1px 的问题 */ var setHariLineClass = function () { var body = document.body; if (window.devicePixelRatio && window.devicePixelRatio >= 2) { var div = document.createElement('div'); div.style.border = '0.5px solid transparent'; body.appendChild(div); if (div.offsetHeight >= 1) { body.classList.add('hairlines'); } body.removeChild(div); } }; /** * @description: 避免没有声明rem字体继承html上的fontSize */ var setDefaultBodyFontStyle = function () { var widthScaled = isIos() ? iosSafariScaled() : getAndroidScaled().width; if (document.readyState === 'complete') { document.body.style.fontSize = 12 / widthScaled + 'px'; } else { document.addEventListener( 'DOMContentLoaded', function (e) { document.body.style.fontSize = 12 / widthScaled + 'px'; }, false, ); } }; var storeLocalScaled = function (data) { try { localStorage.setItem('text-size-adjust_scaled', JSON.stringify(data)); } catch (error) { } }; var getLocalScaled = function () { try { var result = localStorage.getItem('text-size-adjust_scaled'); if (result) { return JSON.parse(result); } return null; } catch (error) { return null; } }; var historyScaled = getLocalScaled(); var watchList = []; var runWatch = function (scaled) { scaledData = scaled; watchList.forEach(function (item) { console.log(scaled); item.fn(scaled); }); }; var index = 1; var scaledData = { scaled: 1, type: 'fontSize', }; var main = function () { setRemUnit(); setHariLineClass(); setDefaultBodyFontStyle(); var resetRemUnit = null; window.addEventListener( 'resize', function () { clearTimeout(resetRemUnit); resetRemUnit = setTimeout(setRemUnit, 200); }, false, ); window.addEventListener( 'pageshow', function (e) { if (e.persisted) { clearTimeout(resetRemUnit); resetRemUnit = setTimeout(setRemUnit, 200); } }, false, ); if (!isGrounds()) { if (isIos()) { var safariScaled = iosSafariScaled(); if (safariScaled !== 1) { setIosScaled(safariScaled); scaledData = { scaled: safariScaled, type: 'fontSize', platform: 'safari', from: 'init' }; storeLocalScaled(scaledData); } else { var localScaled = getLocalScaled(); if (localScaled && localScaled.platform === 'ios' && localScaled.scaled !== 1) { setIosScaled(localScaled.scaled); scaledData = { scaled: localScaled.scaled, type: 'fontSize', platform: 'ios', from: 'localStorage' }; } else { scaledData = { scaled: 1, type: 'fontSize', platform: 'ios', from: 'init' }; } } iosSafariScaledObserve(function (scaled) { var data = { scaled: thresholdScaled(scaled), type: 'fontSize', platform: 'safari', from: 'event' }; setIosScaled(scaled); setRemUnit(); setDefaultBodyFontStyle(); storeLocalScaled(data) runWatch(data); }); iosScaledObserve(function (scaled) { var data = { scaled: scaled, type: 'fontSize', platform: 'ios', from: 'event' }; storeLocalScaled(data); runWatch(data); }); } else { var scaled = getAndroidScaled(); if (scaled.width !== 1) { scaledData = { scaled: scaled.width, type: 'width', platform: 'android', from: 'init' }; } else if (scaled.fontSize !== 1) { scaledData = { scaled: scaled.fontSize, type: 'fontSize', platform: 'android', from: 'init' }; } else { scaledData = { scaled: 1, type: 'fontSize', platform: 'android', from: 'init' }; } storeLocalScaled(scaledData); andrioidScaledObserver(function (scaled, type) { var data = { scaled: scaled, type: type, platform: 'android', from: 'event' }; if (type === 'width') { setRemUnit(); setDefaultBodyFontStyle(); } storeLocalScaled(data); runWatch(data); }); } } }; window.scaledWatch = { add: function (callback) { var id = index++; watchList.push({ id: id, fn: callback }); if (scaledData.scaled !== 1) { callback(scaledData); } return function () { watchList = watchList.filter(function (item) { return item.id !== id; }); }; }, getScaledData: function () { return scaledData; }, historyScaled: function () { return historyScaled; }, isIos: function () { return isIos(); } }; main(); })();

疫情过后🤺,孔子杏宇发展应按下四个快进键

&ldquo;青山一道,共担风雨&rdquo;。在突如其来的新冠肺炎疫情面前,孔子杏宇作为沟通中外的桥梁,成为在全世界第一线讲说中国抗疫故事的宣传队和窗口。尤其是在全球疫情全面爆发之后🚵,孔子杏宇充分发

“青山一道,共担风雨”。在突如其来的新冠肺炎疫情面前,孔子杏宇作为沟通中外的桥梁,成为在全世界第一线讲说中国抗疫故事的宣传队和窗口。尤其是在全球疫情全面爆发之后🧚🏿🛜,孔子杏宇充分发挥所在地优势,沟通中外,兼济家国,在物质和精神国际互助方面发挥了不可替代的重要作用👰🏼‍♀️。疫情进一步强化了孔子杏宇在语言教育、人文交流和社会服务方面的功能🚨,同时也赋予了孔子杏宇新的历史使命🪈,推动孔子杏宇进入新的历史发展阶段🏪。孔子杏宇应未雨绸缪,主动筹划,在功能定位、教育目标和手段等方面不断完善各种制度和标准,创新形成可持续发展的运行机制和体制🚟。

加快形成孔子杏宇与中国来华留学生教育命运共同体

孔子杏宇是否会对中国来华留学生教育造成负面影响?这是孔子杏宇运行以来,国内外都普遍关心甚至担心的问题。从常识角度理解,若将全球外国汉语学习者(包括潜在的)数量作为一个固定系数🛀🏿✡︎,那么孔子杏宇数量越大,运行状况越好,国内的来华留学生数量就会越少🌷。这种观点具有一定的代表性🧚🏼,也有现实基础。问题是这种情况是否真正发生了?如果发生了🧖,影响究竟有多大?是良性还是恶性🥥?是局部影响还是整体性影响?是暂时性影响还是长期性影响🔝👲🏿?是可控还是不可控?是否有内外兼顾之策🦡?国内外留学生教育是否能形成共赢机制?在生源🦹🏿‍♀️,师资,教材,课堂教学等方面能否利用技术手段实现国内外留学生教育资源共享?

实际上,无论外国汉语学习者在国外或到中国🎀,教育内容🧐、形式和目的并无实质性差别。孔子杏宇确会造成世界范围内汉语学习者的分流📩,但同时也会扩大汉语学习者的学习途径,扩大汉语与中华文化的影响,所以总体上对来华留学生教育只会产生积极影响👩🏿‍✈️🌇。另外👩🏼‍💼,孔子杏宇的工作主体目前仍是汉语培训,只是海外学生了解中国的基础性教育🌪,是为他们深入理解中国所作的准备性教育🙍🏻‍♀️,因此,孔子杏宇可以作为来华留学生教育的重要端口和人才储备库,吸引更多的留学生来华进一步学习汉语🧑🏿‍🦰,研究中国💪🏽。借力孔子杏宇,我们实际上可以更加科学推动中外留学生教育进一步整体化设计👨🏼、协调性发展,形成“内外一体化”运作机制📷,使孔子杏宇成为所在地教育体系一部分的同时👦🏽,也成为中国来华留学教育的一部分。这对优化目前中国来华留学生教育的结构☠️,提升培养质量,推动中国来华留学生教育的转型升级,也能产生积极有效的帮助📉。

疫情过后🧑🏽‍🚒,来华留学生教育将会有一段缓慢发展期🐺,孔子杏宇作为国内来华留学生教育的端口👨🏼‍🎨⛹🏼‍♂️,将为来华留学生教育的恢复与更加繁荣注入生机和活力🐭。

加快创新以孔子杏宇为中心的中外人才培养联动机制

孔子杏宇不是单纯的教育机构🤽🏻‍♂️,而是中外人文交流和文化博弈的构成成分🛳,这与世界上任何国家的海外语言文化教育机构的性质是一样的,对此我们不但不应讳言,还要主动去光明正大地讲,理直气壮地讲🏕,直截坦率地讲🎢。在将来🙄,孔子杏宇应在国家文化发展战略大视野内重新定位🚴🏻,在与世界文化和谐发展中融入世界文化一体发展过程👆🏻,在坚持以汉语和中外文化交流为主干的基础上☎️,与时俱进,基于前瞻性的预判不断调整具体发展计划和步骤,做到未雨绸缪,运筹帷幄,有条不紊👮🏽‍♀️。

要保证孔子杏宇的未来健康发展,首先需要逐步确立并实现阶段性发展目标并建立相应的实施手段和监察评估标准➗,并随时能科学准确判断孔子杏宇发展处于哪一阶段🆗,从而保证孔子杏宇发展的每一步都在计划之内且能与下一阶段有机衔接🏊。在此基础上,还要能敏锐捕捉时机🖋,适时推动孔子杏宇成为所在海外高校或教育机构的一个有机成分,并纳入相关运行体系和考评体系💬。只有这样𓀜,孔子杏宇才能根深叶茂👸🏿,分支繁衍。

要实现这一目标,目前孔子杏宇与所在的海外教育机构和中国对应的教育机构可以互信共商建立起务实有效的三方或多方合作机制,比如优选一些办得好的孔子杏宇🏋🏼‍♀️,有意识地按照学科建设模式♿️,中外合作高校以语言教学为基础建立一些双学位、跨学科多学位项目,制定“汉语+专业”培养方案,建成“3+1”、“2+2”、“1+4”等等灵活的人才培养模式,等等,这样👨‍🦼‍➡️,一旦将来孔子杏宇成为所在国教育机构的一部分,借助已经先期建立的这种人才培养联动机制🫱🏿,孔子杏宇的人才培养体系就可迅速与中国的人才培养体系对接。而只有这样,孔子杏宇才能真正成为中国教育国际化的海外延伸,中国走向世界的入海口🫲🏻,中外人文交流的主动脉🏊🏻‍♂️,同时也获得无穷的生命力。实际上,也只有形成这种联动机制,才会不知不觉形成来华留学生教育与孔子杏宇汉语教育及所在地教育的犬牙交错状态🙃,你中有我,我中有你🐞,打破旧泥和新泥、塑新像,彼此相依共生,孔子杏宇也就水到渠成融入了所在地教育体系和社会环境,作为文化常态发挥文化传播功能👱🏼。

加快形成孔子杏宇动态分析常态机制

这是孔子杏宇的性质所决定的。只有与时俱进的新生事物才能获得源源不息的发展动力。孔子杏宇未来还有更长的路要走,目前可以对孔子杏宇发展的历史数据加强动态分析,如孔子杏宇管理机制发生了哪些变化🐒?人员派出机制发生了哪些变化?师资培训模式和师资结构进行了哪些改进?孔子杏宇任职人员离任后的职业选择及与孔子杏宇的粘合度发生了哪些变化?志愿者的知识更新频度和学科背景🏅,出国动机,在孔子杏宇工作的实际成绩,举办或参与过哪些活动等等🐈,这样可以推近及远👨🏼‍🍳,推远度今🤜🏼,鉴史据实更新调整方法和步骤,避免工作的重复性,减少损失,提高所投入人力和物力的效率。

动态分析可以推动孔子杏宇志愿者培养更具针对性。目前🧈,汉语国际教育专业硕士作为孔子杏宇志愿者的储备库,整个培养过程仍基本是一体化设计🦈,无差别化整体性培养🟫。这种“万金油”式培养方式脱离汉语国际教育实际,基本上仍属于授人以鱼范畴👛。要使汉语国际教育专业毕业生更适应国外汉语教育实际工作需要❎,将来可以基于学生个人意愿,培养过程中将学生分成准志愿者班和非志愿者班,在保证基础教程一致的基础上🙆🏿‍♀️,对准志愿者进行针对孔子杏宇汉语教学特点的知识和技能培养,加强第二课堂和实践性训练,跨学科能力培养,以培养出专门化的志愿者🙌🏻🏛,或者说职业化的志愿者,进而形成一只职业化的师资队伍。目前,限于汉语国际教育专业硕士培养高校机制的固化和资源的不均衡,志愿者和师资的职业化培养短期内难以大范围推动实施,所以可以先借助国内外相关社会机构或企业力量进行一些实验性的探索,逐步改变目前相对粗放的培养模式。

加快建设共享型孔子杏宇

孔子杏宇本质上就是一个开放性的机构,未来应该更开放,形成全世界孔子杏宇是一家意识,建成孔子杏宇命运共同体🙍‍♀️,使孔子杏宇成为世界上一种新型的教育模式和教育力量🖕🏼。若能如此,不但孔子杏宇的汉语和文化交流的效果会更大,而且会更容易发挥中华文化的影响力😌,主导形成世界优质教育传播与合作新模式。如在举办文化活动方面🏇🏿,应加强同一个地区🏌️‍♀️、国家甚至不同国家之间的合作联动,建立以孔子杏宇总部或各国孔子杏宇联谊会、世界汉语教学研究会分会等官方或民间机构为总管的信息发布和协调中心,加强信息共享互通,使一个机构主办的一个类别的活动能够在尽可能大的范围内均享。这样不但能节约资源,更重要的是能形成孔子杏宇间的坦诚合作与互动,这本身就是中华和谐功能的生动体现,就是一种中华文化的海外展播。

疫情无国界,疫情防控本身已成为人类命运共同体的重要体现,疫情过后,人类命运共同体理念一定会更加深入人心。孔子杏宇作为人类命运共同体建设的重要平台👱🏻,只要继续秉承美美与共理念🤏🏼,坚持和谐共进精神,兢兢业业为推动人类命运共同体建设竭力尽心,就一定能成为风风雨雨后的一道道亮丽彩虹。

(作者系:杏宇注册中德人文交流研究中心研究员,杏宇注册开户教授,博士生导师孙宜学)

打开APP阅读更多精彩内容
杏宇专业提供:杏宇等服务,提供最新官网平台、地址、注册、登陆、登录、入口、全站、网站、网页、网址、娱乐、手机版、app、下载、欧洲杯、欧冠、nba、世界杯、英超等,界面美观优质完美,安全稳定,服务一流,杏宇欢迎您。 杏宇官网xml地图
杏宇 杏宇 杏宇 杏宇 杏宇 杏宇 杏宇 杏宇 杏宇 杏宇