Pixiv translation

By Kamichu Last update Oct 17, 2009 — Installed 569 times.

There are 1 previous version of this script.

// ==UserScript==
// @name			Pixiv translation
// @description		Partly translated Pixiv pages
// @namespace		http://userscripts.org/users/33432
// @include			http://www.pixiv.net/*
// @include			http://pixiv.net/*
// ==/UserScript==

var translations={
	// General
	追加する:				"Submit",


	// Top menu
	"ポイント残高:":		"Points:",
	ヘルプ:				"Help",
	ユーザー検索:			"Search users",
	ログアウト:				"Log out",

	ホーム:				"Home",
	イラストの投稿: 		"Upload picture",
	作品の投稿:			"Upload picture",
	イラストの管理: 		"My pictures",
	作品の管理:			"My pictures",
	ブックマーク管理:		"Favorites",
	メッセージ:				"Messages",
	設定変更:			"Edit profile",
	pixivについて:			"About",
	開発者ブログ:			"Developers Blog",
	
	// Register page
	メールアドレスを入力:		"Enter E-Mail",
	仮登録メール送信:		"Confirm E-Mail",
	登録情報の入力:		"Enter Personal Information",
	"登録完了(ログイン)":	"Done!",
	
	"pixiv ID 新規登録":	"Pixiv registration",
	
	"pixiv ID を既にお持ちの場合は、":	"If you already have pixiv account, ",
	こちらからログイン:		"you can login here",
	"できます。":			".",
	
	下記フォームに:			"Please ",
	あなたのメールアドレスを入力:	"enter your email address",
	"してください。":		" into the form below.",
	
	"入力を完了するとpixiv事務局より、仮登録メールが送信されます。":
						"Confirmation message will be sent to your email address.",
	
	"仮登録メールに記載されているURLより登録情報(pixiv ID,パスワードなど)を設定すると登録完了です。":
						"Information in the confirmation message is needed to complete registraction",
	
	"ご入力いただいたメールアドレスは他の利用者には一切公開されません。":
						"Your email will never be published to other users",
	
	"メールアドレス:":		"E-Mail address:",
	
	"登録確認画面へ":		"Confirm",
	
	// Random page
	人気のタグ:			"Tags",
	ランダム:				"Random",
	"検 索":			"Search",
	タグ:					"Tags",
	"タイトル・キャプション":	"Titles",
	ウェブ:				"Web",
	ランダムピックアップ:		"Random selection",
	ランダムで選んだタグに飛ぶ:
						"Random tag",
	再検索:				"New random selection",
	
	// Front page
	プロフィール確認:		"Profile",
	みんなの新着イラスト:	"New pictures",
	お気に入りユーザー新着イラスト: "Pictures by users added to favorites",
	デイリーランキング:		"Daily ranking",
	マンスリーランキング:		"Monthly ranking",
	新規登録:			"Sign up",
	パスワード:			"Password",
	次回から自動的にログイン:	" Remember me",
	"※pixiv ID・パスワードを忘れた":	"※ I forgot my pixiv ID/password",
	注目のタグ:			"Tags",
	人気のタグ:			"Popular tags",
	pixivに招待する:		"Invite to Pixiv",
	ポイント通帳を見る:		"Point passbook",
	pixivプレミアムとは:		"Pixiv Premium",
	注目キーワード:		"Popular tags: ",
	
	// Invite page
	友人をpixivに招待する:	"Invite your friend to Pixiv",
	"新たにpixivに招待したい友人・知人のメールアドレスを記入してください。":
						"Please enter E-Mail address of a friend you want to invite.",
	相手のメールアドレス:	"Your friend's E-Mail address",
	あなたのお名前:		"Your name",
	
	// Misc
	このページの上部へ:		"Top",
	トップ:				"Top",
	"[[D]]年[[D]]月[[D]]日 [[D]]:[[D]]":	"[[D]]-[[D]]-[[D]] [[D]]:[[D]]",
	
	// Bottom menu
	お知らせ:				"Info",
	利用規約:			"TOS",
	ガイドライン:			"Guide",
	プライバシーポリシー:		"Privacy statement",
	広告掲載:			"Contact us",
	お問い合わせ:			"Support",
	ピクシブ通信:			"Pixiv News",
	pixivブログ:			"Pixiv Blog",
	pixivフェスタ:			"Pixiv Fiesta",
	pixivマーケット:		"Pixiv Shop",
	pixiv開発者ブログ:		"Developers Blog",
	運営会社:			"Pixiv Company",
	人材募集:			"Recruiting",

	// User page
	イラストを見る:			"Pictures", // seems to be unused
	作品を見る:			"Pictures",
	ブックマークを見る:		"Favorites",
	メッセージを送る:		"Send message",
	お気に入りに追加:		"Add to favorites",
	マイピクに追加:			"Add to friends",
	プロフィールを見る:		"Profile",
	掲示板を見る:			"BBS",
	マイピク:				"Friends",
	お気に入りユーザー:		"Favorite users",
	一覧を見る:			"See all",
	パーソナルタグ:			"Personal tags",
	"投稿者:":			"User: ",
	このユーザーが投稿したイラスト:
						"Pictures posted by this user",
	このユーザーがブックマークしたイラスト:
						"Pictures favored by this user",
	"[PR]注目の情報":		"News",
	投稿したイラスト:		"New uploads",
	"投稿数: [[D]]枚":	"Total uploads: [[D]]",
	"投稿数:[[D]]件":	"Total: [[D]]",
	もっと見る:			"See more",
	ブックマーク:			"Bookmarks",
	"登録数: [[D]]枚":	"Total: [[D]]",
	イメージレスポンス:		"Picture replies",
	プロフィール:			"Profile",
	新しい順:				"New first",
	古い順:				"Old first",
	
	全体に公開:			"Public",
	公開:				"Public",
	マイピクに公開:			"Friends only",
	非公開:				"Private",
	"公開設定:":			"Publicity: ",
	
	"お気に入りに以下のユーザーを追加しますか?":
						"Add this user to favorties?",
	"さんをお気に入りに追加しました。":
						" was added to favorites.",
	"さんは既にお気に入りに追加済みです。":
						" is already added to your favorites.",
	
	
	ニックネーム:			"Alias",
	"[[D]]文字以内":		"[[D]] letters max.",
	HPアドレス:			"Home page",
	性別:				"Sex",
	男:					"Male",
	女:					"Female",
	住所:				"City",
	生まれた年:			"Birth year",
	年:					" year",
	血液型:				"Blood Type",
	A型:				"A",
	B型:				"B",
	O型:				"O",
	AB型:				"AB",
	年齢:				"Age",
	誕生日:				"Birthday",
	職業:				"Occupation",
	自己紹介:			"About self",
	作業環境:			"Employment",
	作業環境画像:		"Employment picture",
	コンピュータ:			"Computer",
	モニタ:				"Monitor",
	ソフト:				"Software",
	スキャナー:			"Scanner",
	マウス:				"Mouse",
	机の上にあるもの:		"Stuff on desktop",
	椅子:				"Chair",
	

	// Pictures list
	"次の[[D]]件>>":		"Next [[D]] >>",
	"<<前の[[D]]件":		"<< Prev [[D]]",
	イラストタグ:			"Tags",
	
	// Picture page
	登録タグ:				"Tags",
	このイラストをブックマークする:	"Add to favorites",
	タグ編集:				"Edit tags",
	"コメント:":			"Comment:",
	"送 信":			"Submit",
	コメント履歴表示:		"Show comments",
	コメント履歴を閉じる:		"Hide comments",
	この作品に対する情報提供:	"Report this picture",
	"閲覧数:[[D]] 評価回数:[[D]] 総合点:[[D]]":	"Views: [[D]] Votes: [[D]] Total points: [[D]]",
	Twitterで紹介する:	"Post to twitter",
//	:		"",



//	:				"",


	// Random tags
	東方:				"Touhou ",
	オリジナル:			"Original ",
	女の子:				"Girl ",
	版権:				"Copyright ",
	落書き:				"Oekaki ",
	ヘタリア:				"Hetaria ",
	初音ミク:				"Hatsune Miku ",
	らくがき:				"Scribble ",
	おっぱい:				"Breasts ",
	漫画:				"Manga ",
	アイドルマスター:		"Idolmaster ",
	ケモノ:				"Beast ",
	魔理沙:				"Marisa ",
	ドット絵:				"Pixel artwork ",
	少女:				"Maiden ",
	モノクロ:				"B/W ",
	ガンダム:				"Gundam ",
	霊夢:				"Reimu ",
//	描いてもいいのよ:		"You shouldn't draw more ", // (not sure at all)
	練習:				"Practice ",
	ロリ:					"Loli ",
	ファンタジー:			"Fantasy ",
	模写:				"Trace ",
	男の子:				"Boy ",
	アリス:				"Alice ",
	ショタ:				"Shota ",
	眼鏡:				"Glasses ",
	ラクガキ:				"Scribble ",
	"4コマ":				"4-koma ",
	レミリア:				"Remilia ",
	オリキャラ:				"Original Character ",
	線画:				"Line Drawing ",
	"けいおん!":			"K-On! ",
	猫:					"Cat ",
	制服:				"Uniform ",
//	塗ってもいいのよ:		"You should draw more ", // (not sure at all)
	メカ:					"Mecha ",
	水着:				"Swimsuit ",
	百合:				"Yuri ",
	セーラー服:			"Sailor Suit",
	ボーカロイド:			"Vocaloid ",
	動物:				"Animal ",
	
	下書き:				"Sketch ",
	
	
	選択してください:		"Please choose one",

};

function defined(v){
	return v!=undefined;
}

function translate(text){
	var numbers=[];
	var no;
	
	if(!defined(text) || !text.match) return undefined;
	
	text=text.replace(/^\s*/,"").replace(/\s*$/,"");

	if(text=="") return undefined;

	while(defined(no=text.match(/\d+/)))
		numbers.push(no[0]),text=text.replace(/\d+/,"[[D]]");

	var translation=translations[text];
	
	if(defined(translation)){
		while(numbers.length)
			translation=translation.replace(/\[\[D\]\]/,numbers.shift());
	}
	
	return translation;
}

function translateTree(a){
	var items=document.evaluate("descendant::*",a,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);
	
	for(var i=0;i<items.snapshotLength;i++){
		var e=items.snapshotItem(i);
		
		for(var j=0;j<e.childNodes.length;j++){
			var elem=e.childNodes[j];
			if(elem.nodeType==3){
				var text=translate(elem.wholeText);
				if(defined(text)) elem.replaceWholeText(text);
			} else{
				var text=translate(elem.value);
				if(defined(text)) elem.value=text;
			}
		}
	}
}

GM_addStyle('body{font-family: meiryo,mona}');
GM_addStyle('.ads_value{display: none}');

document.body.addEventListener("DOMNodeInserted",function(a){translateTree(a.relatedNode);},false);

translateTree(document);