MS日英切替

    @@ -2,25 +2,36 @@ * @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?:\/\/support\.microsoft\.com\/(.+?)-(.+?)\// ); +let matches = location.href.match( /^https?:\/\/(docs|support)\.microsoft\.com\/(.+?)-(.+?)\// ); if ( ! matches ) return; -let current_lang = matches[ 1 ].toLowerCase() + '-' + matches[ 2 ].toUpperCase(), +let page_category = matches[ 1 ], + current_lang = matches[ 2 ].toLowerCase() + '-' + matches[ 3 ].toUpperCase(), to_lang = ( current_lang == 'ja-JP' ) ? 'en-US' : 'ja-JP'; -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 ); +switch ( page_category ) { + case 'docs' : { + 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; + } +} } )();
  • /*
     * @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)\.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' : {
            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