Toggle Dlsite language

Switch between english and japanese language in DLsite

  1. // ==UserScript==
  2. // @name Toggle Dlsite language
  3. // @namespace zero.toogledlsitelan
  4. // @license MIT
  5. // @description Switch between english and japanese language in DLsite
  6. // @include *://www.dlsite.com/*
  7. // @version 1.5.3
  8. // @grant none
  9. // @project page https://greasyfork.org/en/scripts/402452-toggle-dlsite-language
  10. // ==/UserScript==
  11.  
  12. (function () {
  13. $( document ).ready(function() {
  14. var url = window.location.href;
  15. var cookies = document.cookie.split(';');
  16. var locale = '';
  17.  
  18. // Get locale from cookies
  19. cookies.forEach(element => {
  20. if (/locale=..-../.test(element))
  21. locale = element.substring(element.indexOf('=') + 1);
  22. });
  23.  
  24. // If locale isn't found finish script and give error
  25. if (locale === '') {
  26. console.log("DLsite Toogle couldn't find locale cookie, stopping script");
  27. return;
  28. }
  29.  
  30. // Add toggle button
  31. var navlink = document.getElementsByClassName('floorNavLink');
  32.  
  33. // Window loads two times, stop script on second time
  34. if(typeof(navlink[0]) === 'undefined') return;
  35.  
  36. // Create button node and append it
  37. let navDiv = document.createElement('div');
  38. let navA = document.createElement('a');
  39.  
  40. navDiv.appendChild(navA);
  41.  
  42. navDiv.className = 'floorNavLink-item type-general';
  43. navDiv.style.width = '125px';
  44. navA.style.fontWeight = 'bold';
  45.  
  46. navlink[0].prepend(navDiv);
  47.  
  48. // Set proper text and link to button
  49. if (url.includes('?locale=')) {
  50. if (url.includes('ja_JP')) {
  51. navA.textContent = 'Toggle Site (EN)';
  52. navA.href = url.replace('ja_JP', 'en_US');
  53. } else {
  54. navA.textContent = 'Toggle Site (JP)';
  55. navA.href = url.replace('en_US', 'ja_JP');
  56. }
  57. } else {
  58. // No locale on url, get from cookies
  59. // Remove version_up at the end of url if it's there
  60. if(url.includes('#version_up')) url = url.replace('#version_up', '');
  61. if (locale === 'ja-jp') {
  62. navA.textContent = 'Toggle Site (EN)';
  63. if(/\/$/.test(url)) navA.href = url + '?locale=en_US'; // Check if url ends with '/'
  64. else navA.href = url + '/?locale=en_US';
  65. } else {
  66. navA.textContent = 'Toggle Site (JP)';
  67. if(/\/$/.test(url)) navA.href = url + '?locale=ja_JP'; // Check if url ends with '/'
  68. else navA.href = url + '/?locale=ja_JP';
  69. }
  70. }
  71. });
  72. })();