Fix i18n style and translator

This commit is contained in:
the1812 2019-05-14 20:43:42 +08:00
parent 27f92a57bc
commit 05e53fe582
7 changed files with 48 additions and 13 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

2
min/i18n.min.css vendored
View File

@ -1 +1 @@
#page-follows .follow-sidenav .text,.admin-list-cntr .rank-cntr .item .admin-icon,.article-action .ops .coin-btn,.article-action .ops .fav-btn,.article-action .ops .like-btn,.attention-btn-ctnr .left-part,.author-info .communicate-btn,.author-info .favourite-btn,.bb-comment .comment-list .list-item .info .operation .opera-list,.bili-search .nav-wrap .wrap>.sub,.dashboard li.like,.h .h-f-btn,.history-wrap .history-btn,.info-line .status-no-attend,.live-sidebar-ctnr .sidebar-btn,.media-info .media-right .media-tool-bar .btn-follow,.n .n-data,.security-right .mp-mine-takedown,.textarea-container .comm-tool .comm-emoji,.textarea-container .comm-tool .comm-submit,.up-info .up-focus-btn,.user-list .up-item .attention-btn.followed,.user-list .up-item .attention-btn.followed:hover{width:auto!important}.bb-comment .comment-send .comment-emoji{width:max-content!important}.live-panel .more-button,.tag-panel .more-button{width:44px!important}.link-navbar .main-ctnr .nav-logo{width:70px!important}.bili-header-m .profile-m .grade .bar{width:160px!important}.bili-search .contain,.link-navbar .main-ctnr{width:90%!important}.bili-search .video.list{width:calc(100% - 172px)!important}.bili-search .video.list .des{width:100%!important}.gui-settings-box{width:450px!important}#page-follows .follow-sidenav .text{min-width:78px!important}.h .h-f-btn{min-width:76px!important}.primary-menu .nav-menu .nav-name,.primary-menu .nav-menu .side-nav .side-link span{white-space:pre!important}.admin-list-cntr .rank-cntr .item .admin-icon,.article-action .ops .coin-btn,.article-action .ops .fav-btn,.article-action .ops .like-btn,.attention-btn-ctnr .left-part,.bb-comment .comment-send .comment-emoji,.h .h-f-btn,.media-info .media-right .media-tool-bar .btn-follow,.textarea-container .comm-tool .comm-emoji,.textarea-container .comm-tool .comm-submit,.up-info .up-focus-btn{padding:0 8px!important}.n .n-data{padding:10px 8px!important}.user-panel-ctnr .user-panel .content-ctnr .ctrl-btn:nth-child(2n){padding-left:8px!important}.dashboard li.share .text{padding-top:15px!important}.player-auxiliary-area .player-auxiliary-filter-menu{margin:0!important}.dashboard li.collection{margin:0 10px 0 0!important}.bili-search .rocket-con{margin-left:40%!important}.bili-search .video.matrix:nth-child(5n){margin-right:32px!important}.dynamic-m .dyn_menu .line,.nav-wrap .hover-bar,.tab-bar .line{display:none!important}.tab-bar .tab .tab-text.selected{color:var(--theme-color)!important;border-bottom:2px solid!important;box-sizing:border-box!important}.live-panel .more-button{transform:translateX(-9px)!important}.bilibili-player-ending-panel-box-functions .bilibili-player-upinfo-spans>div{align-items:center!important}.dashboard li.collection>div:first-child{display:flex!important;align-items:center!important;flex-direction:column!important}.dashboard li.share{display:inline-flex!important;align-items:center!important;flex-direction:column!important}.user-panel-ctnr .user-panel .content-ctnr .ctrl-btn{float:none!important}#area-list ul li dd{font-size:18px!important}.author-info .communicate-btn,.author-info .communicate-btn:active,.author-info .favourite-btn,.author-info .favourite-btn:active{font-size:12px!important}.dashboard li.like{border-color:transparent!important}.gui-settings-tooltip{left:470px!important}
#page-follows .follow-sidenav .text,.admin-list-cntr .rank-cntr .item .admin-icon,.article-action .ops .coin-btn,.article-action .ops .fav-btn,.article-action .ops .like-btn,.attention-btn-ctnr .left-part,.author-info .communicate-btn,.author-info .favourite-btn,.bb-comment .comment-list .list-item .info .operation .opera-list,.bili-search .nav-wrap .wrap>.sub,.bilibili-player-video-sendbar .bilibili-player-video-hint,.dashboard li.like,.h .h-f-btn,.history-wrap .history-btn,.info-line .status-no-attend,.live-sidebar-ctnr .sidebar-btn,.media-info .media-right .media-tool-bar .btn-follow,.n .n-data,.player-auxiliary-area .player-auxiliary-setting-menu-wrap,.security-right .mp-mine-takedown,.textarea-container .comm-tool .comm-emoji,.textarea-container .comm-tool .comm-submit,.up-info .up-focus-btn,.user-list .up-item .attention-btn.followed,.user-list .up-item .attention-btn.followed:hover{width:auto!important}.bb-comment .comment-send .comment-emoji{width:max-content!important}.live-panel .more-button,.tag-panel .more-button{width:44px!important}.link-navbar .main-ctnr .nav-logo{width:70px!important}.bili-header-m .profile-m .grade .bar{width:160px!important}.bili-search .contain,.link-navbar .main-ctnr{width:90%!important}.bili-search .video.list{width:calc(100% - 172px)!important}.bili-search .video.list .des{width:100%!important}.gui-settings-box{width:450px!important}#page-follows .follow-sidenav .text{min-width:78px!important}.h .h-f-btn{min-width:76px!important}.primary-menu .nav-menu .nav-name,.primary-menu .nav-menu .side-nav .side-link span{white-space:pre!important}.player-auxiliary-area .player-auxiliary-setting-menu-list{white-space:nowrap!important}.admin-list-cntr .rank-cntr .item .admin-icon,.article-action .ops .coin-btn,.article-action .ops .fav-btn,.article-action .ops .like-btn,.attention-btn-ctnr .left-part,.bb-comment .comment-send .comment-emoji,.h .h-f-btn,.media-info .media-right .media-tool-bar .btn-follow,.player-auxiliary-area .player-auxiliary-setting-menu-list,.textarea-container .comm-tool .comm-emoji,.textarea-container .comm-tool .comm-submit,.up-info .up-focus-btn{padding:0 8px!important}.n .n-data{padding:10px 8px!important}.user-panel-ctnr .user-panel .content-ctnr .ctrl-btn:nth-child(2n){padding-left:8px!important}.dashboard li.share .text{padding-top:15px!important}.player-auxiliary-area .player-auxiliary-filter-menu{margin:0!important;position:relative!important;left:0!important}.dashboard li.collection{margin:0 10px 0 0!important}.bili-search .rocket-con{margin-left:40%!important}.bili-search .video.matrix:nth-child(5n){margin-right:32px!important}.dynamic-m .dyn_menu .line,.mode-fullscreen .bilibili-player-video-sendbar .bilibili-player-video-hint,.mode-webfullscreen .bilibili-player-video-sendbar .bilibili-player-video-hint,.nav-wrap .hover-bar,.tab-bar .line{display:none!important}.tab-bar .tab .tab-text.selected{color:var(--theme-color)!important;border-bottom:2px solid!important;box-sizing:border-box!important}.live-panel .more-button{transform:translateX(-9px)!important}.bilibili-player-ending-panel-box-functions .bilibili-player-upinfo-spans>div{align-items:center!important}.dashboard li.collection>div:first-child{display:flex!important;align-items:center!important;flex-direction:column!important}.dashboard li.share{display:inline-flex!important;align-items:center!important;flex-direction:column!important}.user-panel-ctnr .user-panel .content-ctnr .ctrl-btn{float:none!important}#area-list ul li dd{font-size:18px!important}.author-info .communicate-btn,.author-info .communicate-btn:active,.author-info .favourite-btn,.author-info .favourite-btn:active{font-size:12px!important}.dashboard li.like{border-color:transparent!important}.gui-settings-tooltip{left:470px!important}html[lang=ja-JP] .player-auxiliary-area .danmaku-info-row-block::after{content:"シールドしました"!important}

2
min/i18n.min.js vendored
View File

@ -1 +1 @@
(()=>{return(e,t)=>{const a={"日本語":"ja-JP",English:"en-US",Deutsch:"de-DE"};class s{accepts(e){return e.nodeType===Node.ELEMENT_NODE}getValue(e){return e.nodeValue}setValue(e,t){e.nodeValue=t}getElement(e){return e}translate(e){let t=this.getValue(e);if(!t||typeof t!=="string"||t==="*"){return}t=t.trim();const a=s.map.get(t);if(a===undefined){const a=s.regex.find(([e])=>e.test(t));if(a){const[s,r]=a;this.setValue(e,t.replace(s,r))}}else if(typeof a==="string"){this.setValue(e,a)}else if(Array.isArray(a)){let t=null;for(const s of a){if(typeof s==="string"){t=s}else{const{text:a,selector:r,not:n}=s;if(this.getElement(e).matches(r)!==Boolean(n)){t=a}}}if(t!==null){this.setValue(e,t)}}else{const{text:t,selector:s,not:r}=a;if(this.getElement(e).matches(s)!==Boolean(r)){this.setValue(e,t)}}}static walk(e,t){const a=document.createTreeWalker(e,NodeFilter.SHOW_TEXT|NodeFilter.SHOW_ELEMENT,null,false);let s=a.nextNode();while(s){t(s);s=a.nextNode()}}static translate(e){if(e.nodeType===Node.TEXT_NODE){s.textNode.translate(e);return}s.walk(e,e=>{for(const t of s.allTranslators){if(t.accepts(e)){t.translate(e)}}})}static translateCssMatches(){const e=s.map.get("*");if(!e){return}for(const{selector:t,text:a}of e){const e=document.querySelector(t);if(e){[...e.childNodes].filter(e=>e.nodeType===Node.TEXT_NODE).forEach(e=>e.nodeValue=a)}}}}class r extends s{accepts(e){return e.nodeType===Node.TEXT_NODE}getElement(e){return e.parentElement}}class n extends s{getValue(e){return e.getAttribute("title")}setValue(e,t){e.setAttribute("title",t)}}class l extends s{getValue(e){return e.getAttribute("placeholder")}setValue(e,t){e.setAttribute("placeholder",t)}}s.textNode=new r;s.title=new n;s.placeholder=new l;s.allTranslators=[s.textNode,s.title,s.placeholder];const o=async()=>{const r=a[e.i18nLanguage];const{map:n,regex:l}=await t.importAsync(`i18n.${r}`);document.documentElement.setAttribute("lang",r);s.map=n;s.regex=[...l.entries()];s.translate(document.body);s.translateCssMatches();Observer.observe("body",e=>{e.forEach(e=>{if(e.type==="childList"){if(e.addedNodes.length>0){s.translateCssMatches()}e.addedNodes.forEach(e=>{s.translate(e)})}else if(e.type==="characterData"){s.textNode.translate(e.target)}})},{characterData:true,childList:true,subtree:true})};o();return{export:{Translator:s,TextNodeTranslator:r,TitleTranslator:n,PlaceholderTranslator:l},dropdown:{key:"i18nLanguage",items:[`日本語`]}}}})();
(()=>{return(e,t)=>{const a={"日本語":"ja-JP",English:"en-US",Deutsch:"de-DE"};class r{accepts(e){return e.nodeType===Node.ELEMENT_NODE}getValue(e){return e.nodeValue}setValue(e,t){e.nodeValue=t}getElement(e){return e}translate(e){let t=this.getValue(e);if(!t||typeof t!=="string"||t==="*"){return}t=t.trim();const a=r.map.get(t);if(a===undefined){const a=r.regex.find(([e])=>e.test(t));if(a){const[r,s]=a;this.setValue(e,t.replace(r,s))}}else if(typeof a==="string"){this.setValue(e,a)}else if(Array.isArray(a)){let t=null;for(const r of a){if(typeof r==="string"){t=r}else{const{text:a,selector:s,not:l}=r;if(this.getElement(e).matches(s)!==Boolean(l)){t=a}}}if(t!==null){this.setValue(e,t)}}else{const{text:t,selector:r,not:s}=a;if(this.getElement(e).matches(r)!==Boolean(s)){this.setValue(e,t)}}}static walk(e,t){const a=document.createTreeWalker(e,NodeFilter.SHOW_TEXT|NodeFilter.SHOW_ELEMENT,null,false);let r=a.nextNode();while(r){t(r);r=a.nextNode()}}static translate(e){if(e.nodeType===Node.TEXT_NODE){r.textNode.translate(e);return}r.walk(e,e=>{for(const t of r.allTranslators){if(t.accepts(e)){t.translate(e)}}})}static translateCssMatches(){const e=r.map.get("*");if(!e){return}for(const{selector:t,text:a}of e){const e=document.querySelector(t);if(e){[...e.childNodes].filter(e=>e.nodeType===Node.TEXT_NODE).forEach(e=>e.nodeValue=a)}}}}class s extends r{accepts(e){return e.nodeType===Node.TEXT_NODE}getElement(e){return e.parentElement}}class l extends r{getValue(e){return e.getAttribute("title")}setValue(e,t){e.setAttribute("title",t)}}class n extends r{getValue(e){return e.getAttribute("placeholder")}setValue(e,t){e.setAttribute("placeholder",t)}}r.textNode=new s;r.title=new l;r.placeholder=new n;r.allTranslators=[r.textNode,r.title,r.placeholder];const o=async()=>{const s=a[e.i18nLanguage];const{map:l,regex:n}=await t.importAsync(`i18n.${s}`);document.documentElement.setAttribute("lang",s);r.map=l;r.regex=[...n.entries()];r.translate(document.body);r.translateCssMatches();Observer.observe("body",e=>{e.forEach(e=>{if(e.type==="childList"){if(e.addedNodes.length>0){r.translateCssMatches()}e.addedNodes.forEach(e=>{r.translate(e)})}else if(e.type==="characterData"){r.textNode.translate(e.target)}else if(e.type==="attributes"){if(e.attributeName==="title"){r.title.translate(e.target)}else if(e.attributeName==="placeholder"){r.placeholder.translate(e.target)}}})},{characterData:true,childList:true,subtree:true,attributes:true})};o();return{export:{Translator:r,TextNodeTranslator:s,TitleTranslator:l,PlaceholderTranslator:n},dropdown:{key:"i18nLanguage",items:[`日本語`]}}}})();

View File

@ -20,7 +20,9 @@
.user-list .up-item .attention-btn.followed,
.user-list .up-item .attention-btn.followed:hover,
.info-line .status-no-attend,
.bb-comment .comment-list .list-item .info .operation .opera-list
.bb-comment .comment-list .list-item .info .operation .opera-list,
.player-auxiliary-area .player-auxiliary-setting-menu-wrap,
.bilibili-player-video-sendbar .bilibili-player-video-hint
{
width: auto !important;
}
@ -71,6 +73,10 @@
{
white-space: pre !important;
}
.player-auxiliary-area .player-auxiliary-setting-menu-list
{
white-space: nowrap !important;
}
.up-info .up-focus-btn,
.textarea-container .comm-tool .comm-emoji,
@ -82,7 +88,8 @@
.media-info .media-right .media-tool-bar .btn-follow,
.article-action .ops .coin-btn,
.article-action .ops .fav-btn,
.article-action .ops .like-btn
.article-action .ops .like-btn,
.player-auxiliary-area .player-auxiliary-setting-menu-list
{
padding: 0 8px !important;
}
@ -101,6 +108,8 @@
.player-auxiliary-area .player-auxiliary-filter-menu
{
margin: 0 !important;
position: relative !important;
left: 0 !important;
}
.dashboard li.collection
{
@ -117,7 +126,9 @@
.dynamic-m .dyn_menu .line,
.tab-bar .line,
.nav-wrap .hover-bar
.nav-wrap .hover-bar,
.mode-webfullscreen .bilibili-player-video-sendbar .bilibili-player-video-hint,
.mode-fullscreen .bilibili-player-video-sendbar .bilibili-player-video-hint
{
display: none !important;
}
@ -170,4 +181,9 @@
.gui-settings-tooltip
{
left: 470px !important;
}
html[lang='ja-JP'] .player-auxiliary-area .danmaku-info-row-block::after
{
content: "シールドしました" !important;
}

View File

@ -128,8 +128,16 @@ const startTranslate = async () => {
else if (it.type === "characterData") {
Translator.textNode.translate(it.target);
}
else if (it.type === "attributes") {
if (it.attributeName === "title") {
Translator.title.translate(it.target);
}
else if (it.attributeName === "placeholder") {
Translator.placeholder.translate(it.target);
}
}
});
}, { characterData: true, childList: true, subtree: true });
}, { characterData: true, childList: true, subtree: true, attributes: true });
};
startTranslate();
// if (document.readyState === "complete")

View File

@ -176,8 +176,19 @@ const startTranslate = async () =>
{
Translator.textNode.translate(it.target);
}
else if (it.type === "attributes")
{
if (it.attributeName === "title")
{
Translator.title.translate(it.target);
}
else if (it.attributeName === "placeholder")
{
Translator.placeholder.translate(it.target);
}
}
});
}, { characterData: true, childList: true, subtree: true });
}, { characterData: true, childList: true, subtree: true, attributes: true });
};
startTranslate();
// if (document.readyState === "complete")