MS日英切替

  • /*
     * @title MS日英切替
     * @description マイクロソフトのサポートページで日本語ページ⇔英語ページを切り替える
     * @include https://support.microsoft.com/*
     * @include https://docs.microsoft.com/*
     * @license MIT License
     * @require 
     * @javascript_url
     */
    
    ( () => {
    let matches = location.href.match( /^https?:\/\/(docs|support|learn)\.microsoft\.com\/(.+?)-(.+?)\// );
    
    if ( ! matches ) return;
    
    let page_category = matches[ 1 ],
        current_lang = matches[ 2 ].toLowerCase() + '-' + matches[ 3 ].toUpperCase(),
        to_lang = ( current_lang == 'ja-JP' ) ? 'en-US' : 'ja-JP';
    
    switch ( page_category ) {
        case 'docs' :
        case 'learn': {
            location.href = location.href.replace( new RegExp( current_lang, 'i' ), to_lang.toLowerCase() );
            break;
        }
        case 'support' : {
            fetch( 'https://support.microsoft.com/' + current_lang + '/worldwide?' + encodeURIComponent( location.href ) )
            .then( response => response.text() )
            .then( html => {
                let doc =  new DOMParser().parseFromString( html, "text/html" );
                
                location.href = doc.querySelector( 'a[data-bi-name="lp_culture_link"][href*="/' + to_lang + '/"]' ).href;
            } )
            .catch( error => error );
            break;
        }
    }
    } )();
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2023/04/05 11:06:36 - 2023-04-05
  2. 2020/12/03 14:49:41 - 2020-12-03
  3. 2020/12/03 14:34:24 - 2020-12-03
  4. 2020/12/03 14:20:46 - 2020-12-03