实验性脚本, 尚有内容未翻译完毕。
Versión del día
// ==UserScript==
// @name GreasyFork 中文
// @namespace http://jixun.org/
// @description 实验性脚本, 尚有内容未翻译完毕。
// @include https://greatest.deepsurf.us/*
// @exclude https://greatest.deepsurf.us/scripts/*/code
// @version 1.0
// @run-at document-start
// @grant none
// ==/UserScript==
var lang = {
// 右上角导航
'Scripts': '脚本',
'Forum': '论坛',
'Help': '帮助',
// 导航标签
'Info': '脚本信息',
'Code': '脚本代码',
'History': '更新历史',
'Delete': '删除',
'Undelete': '取消删除',
// 脚本信息页
'Install this script': '安装该脚本',
'Author': '脚本作者',
'Daily installs': '今日安装',
'Total installs': '安装总数',
'Created': '创建日期',
'Updated': '更新日期',
'License': '脚本授权',
'N/A': '未知',
'Applies to': '应用于',
'All sites': '所有站点',
// 反馈页面
'No discussions posted yet.': '该脚本尚无讨论贴,',
'Be the first to discuss this script.': '点我拿下第一贴!',
// 脚本检索页
'Sort by:': '排序方式: ',
'Created date': '创建日期',
'Updated date': '更新日期',
'Showing:': '显示: ',
'All': '所有脚本',
'(All sites)': '(全部网站)',
'More...': '更多网站…',
'← Previous': '← 上一页',
'Next →': '下一页 →',
'Post a new script': '提交新脚本',
'Search': '搜索',
// 个人账户页
'Discussions on your scripts': '您的脚本讨论区 ',
'Control panel': '控制台',
'Post a script': '提交脚本',
'Import scripts': '批量导入脚本',
'Set up a GitHub webhook': '设定 GitHub WebHook (自动更新)',
'Edit account': '更改账户信息',
'Sign out': '登出系统',
'More discussions': '更多讨论贴',
', last comment by': ',最后评论于 ',
'by': ' 由 ',
// 个人账户信息更新页
'Name': '用户名',
'Email': '邮件',
'Profile': '个人信息',
'Preview': '预览',
'Password': '密码',
'(Leave blank if you don\'t want to change it)': '(如果不想更改请留空)',
'Password confirmation': '密码确认',
'Current password': '当前密码',
'(We need your current password to confirm your changes)': '(请输入当前密码确认信息更新)',
'Update': '更新',
'Back': '返回',
// 论坛
'Categories': '论坛板块',
'All Categories': '所有板块',
'Greasy Fork Meta': '站点相关',
'Script Development': '脚本开发',
'Script Requests': '脚本请求',
'Script Discussions': '脚本讨论',
'Recent Discussions': '近期讨论',
'Activity': '论坛活动',
'My Discussions': '我的帖子',
'My Drafts': '我的草稿',
'Announcement': '公告',
'new': ' 个新评论',
'comments': ' 个回应',
'comment': ' 个回应',
'Most recent by': '最后回复于 ',
'Edit': '编辑',
'views': ' 次围观',
'Discussions': '近期讨论',
'Mark All Viewed': '全部标为已读',
'About:': '关于:',
'in': ' 于 ',
'Leave a Comment': '快来吐槽',
'Attach a file': '上传附件',
'Home': '首页',
'Preview': '预览评论',
'Save Draft': '储存草稿',
'Post Comment': '提交评论',
'Quote': '引用',
'New Discussion': '发新帖'
}, langRegex = [
[/Feedback \((\d+)\)/, '反馈 ($1)'],
[/(\d+) hours? ago/, '$1 小时前'],
[/(\d+) days? ago/, '$1 天前']
];
// 寻找翻译
var findTranslation = function (origionalContent) {
// Not string or undefined etc.
if (!origionalContent) return null;
var tmpNodeContent = origionalContent.trim(),
translatedContent = lang[tmpNodeContent];
// Empty string.
if (!tmpNodeContent) return origionalContent;
// Language string match!
if (translatedContent) return translatedContent;
// Check regex match.
for (var i = langRegex.length; i--; )
if (langRegex[i][0].test (tmpNodeContent))
return tmpNodeContent.replace (langRegex[i][0], langRegex[i][1]);
// Nothing found :/
return null;
};
addEventListener ('DOMContentLoaded', function () {
// http://stackoverflow.com/a/2579869/3416493
var walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT, null, false),
node, translatedContent;
// Loop through text nodes.
while (node = walker.nextNode())
if (translatedContent = findTranslation (node.nodeValue))
node.nodeValue = translatedContent;
// Loop through inputs.
var inputs = document.getElementsByTagName ('input');
for (var i = inputs.length; i--; ) {
// 搜索框
if (translatedContent = findTranslation(inputs[i].getAttribute ('placeholder') || ''))
inputs[i].setAttribute ('placeholder', translatedContent);
// 提交按钮
if (translatedContent = findTranslation(inputs[i].value || ''))
inputs[i].value = translatedContent;
}
}, false);