标签翻译器
资源中心 » 标签翻译器
注意:
此页可能已过时,出于归档目的而保留。
由于标签指导的修订,此工具标签设置已过期,请勿直接使用翻译器给出的标签。
这是什么?
这是一个标签翻译器。翻译者可以自由使用此翻译器标准化地翻译标签,而无需去翻找标签指导。
使用方法:
- 选择你需要翻译的源语言与目标语言
- 若需翻译除 EN 外的其它分部标签,则应先在下方“加载语言”处加载目标语言
- 在上框栏填写需要翻译的标签。各标签之间须使用空格或换行符隔开
- 点击“翻译!”
若你无法看到下方的标签翻译器,请访问此链接以最轻量化地载入标签翻译器。
<html> <head> <title>标签翻译器</title> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <style> body { max-width: 66.25rem; margin: 0 auto; padding: 0.625rem; font-family: verdana, arial, helvetica, sans-serif; font-size: .9em; } table { border-collapse: collapse; width: 100%; } td { padding: 0.5em 0.2em; } textarea { width: 100%; font-family: verdana, arial, helvetica, sans-serif; } img.user { vertical-align: -0.3em; margin: 0; width: 16px; height: 16px; z-index: 0; padding: 1px 9px 1px 8px; background-repeat: no-repeat; background-position: center left; } a { color: #b01; text-decoration: none; background: transparent; } a:visited { color: #824; } a:hover { text-decoration: underline; background-color: transparent; } </style> <script type="text/javascript"> var supportedLang = { "cn": { JS: "2", Title: "中文" }, "ru": { JS: "3", Title: "Русский" } }; var defaultLang = "cn"; var Tags = {}; var TagsToRemove = ["featured", "contest-winner", "in-rewrite", "_cc", "_image"]; var langTags = ["cn", "ru"]; </script> </head> <body> <table id="selectLang"> <tr> <td align="center"> <select id="sLang"> <option value="en">English</option> </select> </td> <td align="center"> → </td> <td align="center"> <select id="tLang"> <option value="en">English</option> </select> </td> </tr> </table> <p><textarea id="inputArea" rows="10"></textarea></p> <p><textarea id="outputArea" rows="10" readonly="readonly"></textarea></p> <p> <table> <tr> <td> <input type="button" value="清除" onclick="CleanText()" /> <input type="button" value="复制" onclick="CopyText()" /> </td> <td align="right"> <input type="button" value="翻译!" onclick="TransText()" /> </td> </tr> </table> </p> <p><strong>注意:</strong><i>featured</i>、<i>contest-winner</i>、<i>in-rewrite</i>、<i>_cc</i> 以及 <i>_image</i> 标签将被移除。 </p> <div id="noteWrap" style="display: none;"> <hr /> <p><strong>注意:</strong>以下标签未找到。</p> <p><textarea id="noteArea" rows="10" style="width: 100%;" readonly="readonly"></textarea></p> </div> <hr /> <table> <tr> <td> 加载语言: </td> <td> <select id="loadLang"></select> </td> <td> <input type="button" value="加载" onclick="LoadTags(document.getElementById('loadLang').value)" /> </td> </tr> </table> <hr /> <div style="text-align: right; font-size: 10px;"> <p>“标签翻译器”由 SCP 中文分部的 <a href="http://www.wikidot.com/user:info/sekai-s"><img class="user" src="http://www.wikidot.com/avatar.php?userid=4476849" alt="Sekai_s" style="background-image:url(http://www.wikidot.com/userkarma.php?u=4476849)" />Sekai_s</a> 制作,并由 <a href="http://www.wikidot.com/user:info/hoah2333"><img class="user" src="http://www.wikidot.com/avatar.php?userid=4915183" alt="Sekai_s" style="background-image:url(http://www.wikidot.com/userkarma.php?u=4915183)" />hoah2333</a> 为后室维基中文站改进。</p> </div> <script type="text/javascript"> var sLang = document.getElementById("sLang"); var tLang = document.getElementById("tLang"); var inputArea = document.getElementById("inputArea"); var outputArea = document.getElementById("outputArea"); var noteWrap = document.getElementById("noteWrap"); var noteArea = document.getElementById("noteArea"); var loadLang = document.getElementById("loadLang"); function getQueryString(name) { var r = window.location.search.substr(1).split("&"); var Reg = new RegExp("^" + name + "=([^&]*)$", "i"); for (var i = 0; i < r.length; i++) { if (r[i].search(Reg) > -1) { r[i] = unescape(r[i].match(Reg)[1]); } else { r.splice(i, 1); } } return r; } function EnableTool(s, lang = "") { var inputElem = document.getElementsByTagName("input"); if (s) { var optionElem = document.getElementById("selectLang").getElementsByTagName("option"); for (var i = 0; i < optionElem.length; i++) { if (optionElem[i].getAttribute("value") == lang) { optionElem[i].removeAttribute("disabled"); } } optionElem = loadLang.getElementsByTagName("option"); for (var i = 0; i < optionElem.length; i++) { if (optionElem[i].getAttribute("value") == lang) { optionElem[i].setAttribute("disabled", "disabled"); optionElem[i].selected = false; } } if (lang == defaultLang) { optionElem = tLang.getElementsByTagName("option"); for (var i = 0; i < optionElem.length; i++) { if (optionElem[i].getAttribute("value") == lang) { optionElem[i].selected = true; break; } } } for (var i = 0; i < inputElem.length; i++) { inputElem[i].removeAttribute("disabled"); } } else { for (var i = 0; i < inputElem.length; i++) { inputElem[i].setAttribute("disabled", "disabled"); } } } function LoadTags(lang) { EnableTool(false); if (supportedLang.hasOwnProperty(lang)) { var script = document.createElement("script"); script.type = "text/javascript"; script.src = "https://backrooms-wiki-cn.wdfiles.com/local--code/archived:tag-translator/" + supportedLang[lang].JS; document.getElementsByTagName("head")[0].appendChild(script); } } function Initialize() { var s = getQueryString("lang"); var lang = []; for (var i = 0; i < s.length; i++) { s[i] = s[i].toLowerCase(); if (supportedLang.hasOwnProperty(s[i]) && !lang.includes(s[i])) { lang.push(s[i]); } } if (lang.length > 0) { defaultLang = lang[0]; } for (var i in supportedLang) { var optionElem = document.createElement("option"); optionElem.value = i; optionElem.setAttribute("disabled", "disabled"); optionElem.innerText = supportedLang[i].Title; sLang.appendChild(optionElem); optionElem = document.createElement("option"); optionElem.value = i; optionElem.setAttribute("disabled", "disabled"); optionElem.innerText = supportedLang[i].Title; tLang.appendChild(optionElem); optionElem = document.createElement("option"); optionElem.value = i; optionElem.innerText = supportedLang[i].Title; loadLang.appendChild(optionElem); } LoadTags(defaultLang); for (var i = 1; i < lang.length; i++) { LoadTags(lang[i]); } } function CleanText() { inputArea.value = ""; outputArea.value = ""; noteWrap.style.display = "none"; noteArea.value = ""; } function execCopy(string) { var temp = document.createElement("div"); temp.appendChild(document.createElement("pre")).textContent = string; var s = temp.style; s.position = "fixed"; s.left = "-100%"; document.body.appendChild(temp); document.getSelection().selectAllChildren(temp); var result = document.execCommand("copy"); document.body.removeChild(temp); return result; } function CopyText() { if (execCopy(outputArea.value)) {} else { alert("复制失败……"); } } function TransTag(lang, direction, Str) { Str = "{ " + Str.replace(/[,\s]+/gm, " ").toLowerCase() + " }" if (lang == "en") { for (var type = 0; type < Tags[defaultLang].length; type++) { for (var i in Tags[defaultLang][type]) { Str = Str.replace(new RegExp("({[^{}]*?[^-])(" + i + ")([^-][^{}]*?})", "g"), "$1 }$2{ $3"); } } } else { switch (direction) { case "normal": for (var type = 0; type < Tags[lang].length; type++) { for (var i in Tags[lang][type]) { Str = Str.replace(new RegExp("({[^{}]*?[^-])(" + Tags[lang][type][i] + ")([^-][^{}]*?})", "g"), "$1 }$2{ $3"); } } break; case "forward": Str = Str.replace(/\?/gm, "?"); Str = Str.replace(new RegExp(TagsToRemove.join("|"), "g"), ""); for (var type = 0; type < Tags[lang].length; type++) { for (var i in Tags[lang][type]) { Str = Str.replace(new RegExp("({[^{}]*?[^-])" + i + "([^-][^{}]*?})", "g"), "$1 }" + Tags[lang][type][i] + "{ $2"); } } break; case "backward": for (var type = 0; type < Tags[lang].length; type++) { for (var i in Tags[lang][type]) { Str = Str.replace(new RegExp("({[^{}]*?[^-])" + Tags[lang][type][i] + "([^-][^{}]*?})", "g"), "$1 }" + i + "{ $2"); } } Str = Str.replace("?", "?"); Str = Str.replace(new RegExp("}" + TagsToRemove.join("{|}") + "{", "g"), ""); break; } } Str = Str.replace(new RegExp("({[^{}]*?) (" + langTags.join("|") + ") ([^{}]*?})", "g"), "$1 }$2{ $3") .replace(/\s*([{}])\s*/g, "$1").replace(/{}/g, " "); if (Str.search(/{.*?}/g) > -1) { var undefinedTags = Str.match(/{.*?}/g); Str = Str.replace(/{.*?}/g, " "); for (var i = 0; i < undefinedTags.length; i++) { undefinedTags[i] = undefinedTags[i].replace(/[{}]/g, ""); if (sLang.value != "en") { for (var type = 0; type < Tags[sLang.value].length; type++) { if (Tags[sLang.value][type].hasOwnProperty(undefinedTags[i])) { undefinedTags[i] = Tags[sLang.value][type][undefinedTags[i]]; } } } } if (noteArea.value != "") { noteArea.value += " "; } noteArea.value += undefinedTags.join(" "); } Str = Str.replace(/^\s+/g, "").replace(/\s+$/g, ""); Str = Str.replace(/(\s)\1{1,}/g, " "); return Str; } function TransText() { var lang = sLang.value; var Str = inputArea.value; noteArea.value = ""; do { if (lang == tLang.value) { Str = TransTag(lang, "normal", Str); } else if (lang == "en") { lang = tLang.value; Str = TransTag(lang, "forward", Str); } else { Str = TransTag(lang, "backward", Str); lang = "en"; } } while (lang != tLang.value); outputArea.value = Str; if (noteArea.value != "") { noteWrap.style.display = "block"; } else { noteWrap.style.display = "none"; } } Initialize(); </script> </body> </html>
Tags["cn"] = [{ "action": "动作", "archived": "已归档", "author-page": "作者", "b.n.t.g.": "不结盟贸易集团", "backrooms-remodeling-co": "后室装修公司", "backrooms-robotics": "后室机器人科技", "berry": "berry", "bittersweet": "悲喜交加", "black-knights": "黑骑士", "blanche": "blanche", "collaborative": "合作", "comedy": "喜剧", "competition-roulette-2022": "2022轮盘赌竞赛", "component": "组件", "decay-canon": "衰退设定", "decepticon2020": "2020欺诈竞赛", "enigmatic-entity": "隐秘实体", "enigmatic-level": "隐秘层级", "entity": "实体", "entity-18": "实体18", "entity1con2020": "2020实体1号竞赛", "essay": "文章", "evangeline-holmes": "evangeline-holmes", "eyes-of-argos": "阿尔戈斯之眼", "father-bluebird": "青鸟神父", "featured": "精品", "foj": "Jerry的信众", "format-screw": "格式错乱", "forum": "论坛", "fragment": "段落", "gani": "gani", "goicon2021": "2021相关组织竞赛", "group": "团体", "guide": "指导", "horror": "恐怖", "hub": "中心", "industrialization-canon": "工业革命设定", "joke-entry": "搞笑", "kalag": "卡拉格灵协会", "level": "层级", "level-0": "层级0", "level-11": "层级11", "level-78": "层级78", "m.e.g.": "探险者总署", "masked-maiden": "蒙面女郎", "mincon2021": "2021短文竞赛", "mystery": "神秘", "nostalgia": "怀旧", "nostalgi-gaius": "nostalgi-gaius", "object": "物品", "objectcon2022": "2022物品竞赛", "omenscript-versus-canon": "预兆体韵文设定", "overseer-andrew": "监督者andrew", "overseer-kat": "监督者kat", "overseer-stretch": "监督者stretch", "partygoers": "派对客", "person-of-interest": "相关人士", "phenomenon": "现象", "poetry": "诗歌", "poicon2021": "2021相关人士竞赛", "quinoa": "藜麦", "redirect": "重定向", "romance": "浪漫", "room": "房间", "scrapcon2022": "2022废稿竞赛", "sd-class-?": "生存难度?", "sd-class-0": "生存难度0", "sd-class-1": "生存难度1", "sd-class-2": "生存难度2", "sd-class-3": "生存难度3", "sd-class-4": "生存难度4", "sd-class-5": "生存难度5", "sd-class-habitable": "生存难度宜居", "sd-class-other": "生存难度其他", "sd-class-pending": "生存难度待定", "sdcon2020": "2020生存难度竞赛", "spookycon2021": "2021惊吓竞赛", "subcon2020": "2020子区集竞赛", "sub-level": "子层级", "tale": "故事", "terror-hotel-canon": "恐怖旅馆设定", "the-eternal-repository": "永恒资料库", "the-game-master": "游戏大师", "the-lost": "失落一族", "theme": "版式", "thriller": "惊悚", "tofu": "2022愚人节豆腐活动", "tom-von-haderach": "tom-von-haderach", "traders-keep": "商人之家", "tragedy": "悲剧", "u.e.c.": "无羁探险者联盟", "unmasked-canon": "揭开假面设定", "whatifcon2022": "2022那如果竞赛", "wholesome": "积极", "wonder": "奇异", "yellow": "yellow" }, { /* 其它语言翻译补充 */ "admin": "管理", "original-rewrite": "原文重写中", "kvz": "后室幸存者联盟", "ru": "ru", "sd-class-deadzone": "生存难度死区", "tale-con-ru-2021": "2021故事竞赛ru" } ]; EnableTool(true, "cn");
Tags["ru"] = [{ "admin": "структура_сайта", // 网站架构 "archived": "недействительно", // 已归档 "author-page": "авторская-страница", // 作者 "b.n.t.g.": "н.т.о.з.", // 不结盟贸易集团 "backrooms-remodeling-co": "backrooms-remodeling-co", // 后室装修公司 "backrooms-robotics": "backrooms-robotics", // 后室机器人科技 "berry": "берри", // berry "bittersweet": "горько-сладкий", // 悲喜交加 "black-knights": "тёмные-рыцари", // 黑骑士 "blanche": "бланш", // blanche "comedy": "комедия", // 喜剧 "competition-roulette-2022": "competition-roulette-2022", // 2022轮盘赌竞赛 "enigmatic-entity": "загадочная-сущность", // 隐秘实体 "enigmatic-level": "загадочный", // 隐秘层级 "entity": "сущность", // 实体 "essay": "эссе", //文章 "eyes-of-argos": "глаза-аргоса", // 阿尔戈斯之眼 "featured": "рекомендуемое", //精品 "foj": "последователи-джерри", // jerry的信众 "format-screw": "формат-испорчено", // 格式错乱 "fragment": "фрагмент", // 段落 "gani": "гани", // gani "goicon2021": "goicon2021", // 2021相关组织竞赛 "group": "группа", // 团体 "guide": "гайд", // 指导 "horror": "ужас", // 恐怖 "industrialization-canon": "канон-индустриализация", // 工业革命设定 "joke-entry": "шуточный", // 搞笑 "kalag": "калагский-институт", // 卡拉格灵协会 "kvz": "квз", // 后室幸存者联盟 "level": "уровень", // 层级 "level-11": "уровень-11", // 层级11 "m.e.g.": "б.и.г.", // 探险者总署 "mincon2021": "mincon2021", // 2021短文竞赛 "mystery": "загадка", // 神秘 "nostalgia": "ностальгия", // 怀旧 "nostalgi-gaius": "nostalgi-gaius", // nostalgi-gaius "object": "объект", // 物品 "omenscript-versus-canon": "канон-вселенных-оменскрипта", // 预兆体韵文设定 "original-rewrite": "переписывается", // 原文重写中 "overseer-andrew": "смотритель-эндрю", // 监督者andrew "overseer-kat": "смотритель-кэт", // 监督者kat "overseer-stretch": "смотритель-стретч", // 监督者stretch "partygoers": "тусовщики", // 派对客 "person-of-interest": "интересные-персоны", // 相关人士 "poetry": "поэзия", // 诗歌 "poicon2021": "poicon2021", // 2021相关人士竞赛 "redirect": "перенаправление", // 重定向 "romance": "романтика", // 浪漫 "room": "комната", // 房间 "ru": "русский", // ru "sd-class-?": "сложность-выживания-x", // 生存难度? "sd-class-0": "сложность-выживания-0", // 生存难度0 "sd-class-1": "сложность-выживания-1", // 生存难度1 "sd-class-2": "сложность-выживания-2", // 生存难度2 "sd-class-3": "сложность-выживания-3", // 生存难度3 "sd-class-4": "сложность-выживания-4", // 生存难度4 "sd-class-5": "сложность-выживания-5", // 生存难度5 "sd-class-deadzone": "сложность-выживания-мёртвая-зона", // 生存难度死区 "sd-class-other": "сложность-выживания-другое", // 生存难度其他 "sdcon2020": "sdcon2020", // 2020生存难度竞赛 "spookycon2021": "spookycon2021", // 2021惊吓竞赛 "subcon2020": "subcon2020", // 2020子区集竞赛 "sub-level": "подуровень", // 子层级 "tale": "рассказ", // 故事 "tale-con-ru-2021": "стори_кон_ру_2021", // 2021故事竞赛ru "terror-hotel-canon": "канон-отеля", // 恐怖旅馆设定 "the-game-master": "мастерица-игры", // 游戏大师 "the-lost": "сгинувшие", // 失落一族 "theme": "тема", // 版式 "tragedy": "трагедия", // 悲剧 "u.e.c.": "к.с.и.", // 无羁探险者联盟 "wholesome": "весёлый", // 积极 "wonder": "изумление" // 奇异 } // "black-and-white": "[俄分原创竞赛标签,暂无译名]", // "competition-for-a-100": "[俄分原创竞赛标签,暂无译名]", // "competition-roulette-2022": "[俄分原创竞赛标签,暂无译名]", // "бафомет": "[俄分原创设定标签,暂无译名]", // "дети-бездны": "※虚空之子(注:英文站已移除此标签,请移除)", // "зритель": "[俄分原创设定标签,暂无译名]", // "конкурс-хэллоуина": "※万圣节竞赛(注:此标签疑似为俄分译者擅自添加,请移除)", // "космос": "※太空(注:此标签疑似为俄分作者擅自添加,请移除)", // "масочники": "[俄分原创相关人士标签,暂无译名]", // "обучение": "※教学(注:中文站不使用此标签,请改为“指导”)", // "раскол-квз": "[俄分原创设定标签,暂无译名]", // "сложность-выживания-нестандартная": "※生存难度非标准(注:中文站不使用此标签,请视情况改为其他的生存难度标签)", // "совет": "※理事会(注:英文站已移除此标签,请移除)", /* 错误译名 */ // "horror": "хоррор", // 恐怖 // "wonder": "удивительный" // 奇异 ]; EnableTool(true, "ru");