GreasyFork 中文

实验性脚本, 尚有内容未翻译完毕。

Versión del día 12/6/2014. Echa un vistazo a la versión más reciente.

Tendrás que instalar una extensión para tu navegador como Tampermonkey, Greasemonkey o Violentmonkey si quieres utilizar este script.

Necesitarás instalar una extensión como Tampermonkey o Violentmonkey para instalar este script.

Necesitarás instalar una extensión como Tampermonkey o Violentmonkey para instalar este script.

Necesitarás instalar una extensión como Tampermonkey o Userscripts para instalar este script.

Necesitará instalar una extensión como Tampermonkey para instalar este script.

Necesitarás instalar una extensión para administrar scripts de usuario si quieres instalar este script.

(Ya tengo un administrador de scripts de usuario, déjame instalarlo)

Necesitará instalar una extensión como Stylus para instalar este estilo.

Necesitará instalar una extensión como Stylus para instalar este estilo.

Necesitará instalar una extensión como Stylus para instalar este estilo.

Necesitará instalar una extensión del gestor de estilos de usuario para instalar este estilo.

Necesitará instalar una extensión del gestor de estilos de usuario para instalar este estilo.

Necesitará instalar una extensión del gestor de estilos de usuario para instalar este estilo.

(Ya tengo un administrador de estilos de usuario, déjame instalarlo)

// ==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);