Nexus Mods 简单翻译

对 Nexus Mods 部分选项的简单翻译,这样就不需要忍受全局翻译带来的排版问题啦

// ==UserScript==
// @name         Nexus Mods 简单翻译
// @namespace    http://tampermonkey.net/
// @version      2024-08-31
// @description  对 Nexus Mods 部分选项的简单翻译,这样就不需要忍受全局翻译带来的排版问题啦
// @author       You
// @match        https://www.nexusmods.com/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=nexusmods.com
// @grant        none
// @license      MIT
// ==/UserScript==

(function () {
  'use strict';

  const dictionaries = {
    'search': '搜索',
    'games': '游戏',
    'mods': '模组',
    'collections': '搜集',
    'media': '媒体',
    'community': '社区',
    'support': '支持',
    'images': '图片',
    'videos': '视频',
    'user': '用户',

    'all news': '所有新闻',
    'features': '特征',
    'site news': '网站新闻',
    'competition news': '比赛新闻',
    'game news': '游戏新闻',
    'mod news': 'MOD新闻',
    'interviews': '采访',
    'mod updates': 'MOD更新',
    'friends updates': '好友更新',

    'new today': '今日新品',
    'new this week': '本周新品',
    'popular (30 days)': '热门 (30天)',
    'popular (all time)': '热门 (所有时间)',
    'trending': '更多趋势',
    'random': '推荐',
    'updated': '最近更新',
    'tracked content updates': '订阅的内容更新',
    'latest': '最近的',
    'more trending': '更多趋势',

    'browse all files': '浏览所有文件',
    'upload a file': '上传文件',

    'view more news': '查看更多新闻',
    'view more - new today': '查看更多-今天更新',

    'description': '描述',
    'files': '文件',
    'posts': '讨论',
    'bugs': '漏洞',
    'logs': '日志',
    'stats': '统计',

    'add media': '添加媒体',
    'track': '订阅',
    'endorse': '支持',
    'vote': '投票',
    'vortex': '自动选择',
    'manual': '手动选择',

  }

  function interpret(text) {
    return dictionaries[text.trim().toLowerCase()] || text;
  }

  (function() {
    document.querySelector('#gsearch').placeholder = '搜索🔍';
    if (window.location.href === 'https://www.nexusmods.com/') {
      Object.values(document.querySelectorAll('a.btn')).forEach(value => {
        value.innerText = interpret(value.innerText);
      });
    }
  })();

  (function() {
    let titles = ['游戏', '模组', '搜集', '媒体', '社区', '支持'];
    let tabs = Object.values(document.querySelector('.nav-alignment').children)
      .filter(item => item.type === 'button');
    tabs.forEach((btn, key) => {
      btn.innerHTML = `
      <span>${titles[key]}</span>
      <i class="nmicon-chevron-down"></i>
      `;
    });
  })();

  (function() {
    let titles = ['模组', '游戏', '图片', '视频', '用户'];
    let tabs = Object.values(document.querySelector('.rj-search-category-dropdown').children);
    tabs.forEach((value, key) => {
      value.innerText = titles[key];
    });
    document.querySelector('.rj-search-category-name').innerText = '模组';
  })();

  (function() {
    let modtabs = document.querySelectorAll('.modtabs');
    if (!modtabs) return;
    modtabs.forEach(el => {
      Object.values(el.children).forEach((li, key) => {
        li.querySelector('.tab-label').innerText = interpret(li.querySelector('.tab-label').innerText);
      });
    });
  })();

  (function() {
    document.querySelector('.modactions.clearfix')?.querySelectorAll('span.flex-label').forEach(li => {
      li.innerText = interpret(li.innerText);
    });
    document.querySelector('.modactions.clearfix').querySelector('.dllabel').innerText = '下载: ';
  })();
})();