diff --git a/l18n/l18n.go b/l18n/l18n.go index ec466a3..caf228e 100644 --- a/l18n/l18n.go +++ b/l18n/l18n.go @@ -1,6 +1,6 @@ // Code generated by go-localize; DO NOT EDIT. // This file was generated by robots at -// 2021-10-01 12:35:00.027192 +0300 MSK m=+0.003424668 +// 2021-10-01 01:05:27.197649651 -0400 EDT m=+0.002749572 package l18n @@ -12,446 +12,446 @@ import ( ) var localizations = map[string]string{ - "en.admin.newuser_create": "Create", - "en.admin.newuser_title": "New user", - "en.admin.panel_about": "About this wiki", - "en.admin.panel_reindex": "Reindex hyphae", - "en.admin.panel_safe": "Safe things", - "en.admin.panel_shutdown": "Shutdown wiki", - "en.admin.panel_title": "Administrative functions", - "en.admin.panel_unsafe": "Dangerous things", - "en.admin.panel_updateheader": "Update header links", - "en.admin.panel_userlist": "User list", - "en.admin.panel_users": "Manage users", - "en.admin.user_delete": "Delete", - "en.admin.user_delete_heading": "Delete user", - "en.admin.user_delete_tip": "Remove the user from the database. Changes made by the user will be preserved. It will be possible to take this username later.", - "en.admin.user_delete_warn": "Are you sure you want to delete {{.name}} from the database? This action is irreversible.", - "en.admin.user_group_heading": "Change group", - "en.admin.user_title": "User %s", - "en.admin.user_update": "Update", - "en.admin.users_actions": "Actions", - "en.admin.users_create": "Create a new user", - "en.admin.users_edit": "Edit", - "en.admin.users_group": "Group", - "en.admin.users_name": "Name", - "en.admin.users_notime": "unknown", - "en.admin.users_password": "Password", - "en.admin.users_registered": "Registered at", - "en.admin.users_reindex": "Reindex users", - "en.admin.users_title": "Manage users", - "en.auth.cookie_tip": "By submitting this form you give this wiki a permission to store cookies in your browser. It lets the engine associate your edits with you. You will stay logged in until you log out.", - "en.auth.error_password": "Wrong password.", - "en.auth.error_telegram": "Could not authorize using Telegram.", - "en.auth.error_username": "Unknown username.", - "en.auth.go_back": "Go back", - "en.auth.go_home": "Go home", - "en.auth.go_login": "Go to the login page", - "en.auth.lock_title": "Locked", - "en.auth.login_button": "Log in", - "en.auth.login_header": "Log in to {{.name}}", - "en.auth.login_title": "Login", - "en.auth.logout_anon": "You cannot log out because you are not logged in.", - "en.auth.logout_button": "Confirm", - "en.auth.logout_header": "Log out?", - "en.auth.logout_title": "Logout?", - "en.auth.noauth": "Authentication is disabled. You can make edits anonymously.", - "en.auth.noregister": "Registrations are currently closed. Administrators can make an account for you by hand; contact them.", - "en.auth.password": "Password", - "en.auth.password_tip": "The server stores your password in an encrypted form; even administrators cannot read it.", - "en.auth.register_button": "Register", - "en.auth.register_header": "Register on {{.name}}", - "en.auth.register_title": "Register", - "en.auth.telegram_tip": "You can log in using Telegram. It only works if you have set your @username in Telegram and this username is free on this wiki.", - "en.auth.try_again": "Try again", - "en.auth.username": "Username", - "en.edit.actions": "Actions", - "en.edit.bold": "Bold", - "en.edit.bullets": "Bullet list", - "en.edit.code": "Code block", - "en.edit.date": "Insert current date", - "en.edit.heading": "Heading", - "en.edit.help": "{{.link}} about mycomarkup", - "en.edit.help_link": "Learn more", - "en.edit.highlight": "Highlight", - "en.edit.hr": "Horizontal bar", - "en.edit.italic": "Italic", - "en.edit.link": "Link", - "en.edit.link_title": "Title", - "en.edit.markup": "Markup", - "en.edit.mono": "Monospace", - "en.edit.new_hypha": "You are creating a new hypha.", - "en.edit.numbers": "Number list", - "en.edit.preview": "Preview", - "en.edit.preview_tip": "Note that the hypha hasn't been saved yet. Here's the preview:", - "en.edit.preview_title": "Preview of %s", - "en.edit.rocket": "Rocketlink", - "en.edit.save": "Save", - "en.edit.selflink": "Link yourself", - "en.edit.strike": "Strikethrough", - "en.edit.sub": "Subtext", - "en.edit.super": "Supertext", - "en.edit.tag": "Describe your changes:", - "en.edit.time": "Insert current time", - "en.edit.title": "Edit %s", - "en.edit.transclude": "Transclusion", - "en.edit.underline": "Underline", - "en.help.attachment": "Attachment", - "en.help.configuration": "Configuration (for administrators)", - "en.help.empty_error_line_1": "Try finding a different entry that would help you.", - "en.help.empty_error_line_2a": "If you want to write this entry by yourself, consider", - "en.help.empty_error_line_2b": "to Mycorrhiza Wiki directly.", - "en.help.empty_error_link": "contributing", - "en.help.empty_error_title": "This entry does not exist!", - "en.help.entry_not_found": "Entry not found", - "en.help.hypha": "Hypha", - "en.help.interface": "Interface", - "en.help.lock": "Lock", - "en.help.main": "Main", - "en.help.mycomarkup": "Mycomarkup", - "en.help.prevnext": "Previous/next", - "en.help.recent_changes": "Recent changes", - "en.help.sibling_hyphae": "Sibling hyphae", - "en.help.special_pages": "Special pages", - "en.help.telegram": "Telegram authorization", - "en.help.title": "Help", - "en.help.top_bar": "Top bar", - "en.help.topics": "Help topics", - "en.help.whitelist": "Whitelist", - "en.ui.about_admins": "Administrators:", - "en.ui.about_homepage": "Home page:", - "en.ui.about_hyphae": "See {{.link}} for information about hyphae on this wiki.", - "en.ui.about_noauth": "This wiki does not use authorization", - "en.ui.about_title": "About {{.name}}", - "en.ui.about_usercount": "User count:", - "en.ui.about_version": "{{.pre}}Mycorrhiza Wiki{{.post}} version:", - "en.ui.admin_panel": "Admin panel", - "en.ui.ask_delete": "Delete %s?", - "en.ui.ask_delete_tip": "In this version of Mycorrhiza Wiki you cannot undelete a deleted hypha but the history can still be accessed.", - "en.ui.ask_delete_verb": "delete", - "en.ui.ask_really": "Do you really want to {{.verb}} hypha {{.name}}?", - "en.ui.ask_rename": "Rename %s", - "en.ui.ask_unattach": "Unattach %s?", - "en.ui.ask_unattach_verb": "unattach", - "en.ui.attach_empty": "This hypha has no attachment, you can upload it here.", - "en.ui.attach_include": "Include", - "en.ui.attach_include_tip": "This attachment is an image. To include it in a hypha, use a syntax like this:", - "en.ui.attach_link": "What are attachments?", - "en.ui.attach_new": "Attach", - "en.ui.attach_new_tip": "You can upload a new attachment. Please do not upload too big pictures unless you need to because may not want to wait for big pictures to load.", - "en.ui.attach_remove": "Unattach", - "en.ui.attach_remove_button": "Unattach", - "en.ui.attach_remove_tip": "Please note that you don't have to unattach before uploading a new attachment.", - "en.ui.attach_size_value": "{{.n}} byte%s", - "en.ui.attach_size_value+one": "", + "en.admin.newuser_create": "Create", + "en.admin.newuser_title": "New user", + "en.admin.panel_about": "About this wiki", + "en.admin.panel_reindex": "Reindex hyphae", + "en.admin.panel_safe": "Safe things", + "en.admin.panel_shutdown": "Shutdown wiki", + "en.admin.panel_title": "Administrative functions", + "en.admin.panel_unsafe": "Dangerous things", + "en.admin.panel_updateheader": "Update header links", + "en.admin.panel_userlist": "User list", + "en.admin.panel_users": "Manage users", + "en.admin.user_delete": "Delete", + "en.admin.user_delete_heading": "Delete user", + "en.admin.user_delete_tip": "Remove the user from the database. Changes made by the user will be preserved. It will be possible to take this username later.", + "en.admin.user_delete_warn": "Are you sure you want to delete {{.name}} from the database? This action is irreversible.", + "en.admin.user_group_heading": "Change group", + "en.admin.user_title": "User %s", + "en.admin.user_update": "Update", + "en.admin.users_actions": "Actions", + "en.admin.users_create": "Create a new user", + "en.admin.users_edit": "Edit", + "en.admin.users_group": "Group", + "en.admin.users_name": "Name", + "en.admin.users_notime": "unknown", + "en.admin.users_password": "Password", + "en.admin.users_registered": "Registered at", + "en.admin.users_reindex": "Reindex users", + "en.admin.users_title": "Manage users", + "en.auth.cookie_tip": "By submitting this form you give this wiki a permission to store cookies in your browser. It lets the engine associate your edits with you. You will stay logged in until you log out.", + "en.auth.error_password": "Wrong password.", + "en.auth.error_telegram": "Could not authorize using Telegram.", + "en.auth.error_username": "Unknown username.", + "en.auth.go_back": "Go back", + "en.auth.go_home": "Go home", + "en.auth.go_login": "Go to the login page", + "en.auth.lock_title": "Locked", + "en.auth.login_button": "Log in", + "en.auth.login_header": "Log in to {{.name}}", + "en.auth.login_title": "Login", + "en.auth.logout_anon": "You cannot log out because you are not logged in.", + "en.auth.logout_button": "Confirm", + "en.auth.logout_header": "Log out?", + "en.auth.logout_title": "Logout?", + "en.auth.noauth": "Authentication is disabled. You can make edits anonymously.", + "en.auth.noregister": "Registrations are currently closed. Administrators can make an account for you by hand; contact them.", + "en.auth.password": "Password", + "en.auth.password_tip": "The server stores your password in an encrypted form; even administrators cannot read it.", + "en.auth.register_button": "Register", + "en.auth.register_header": "Register on {{.name}}", + "en.auth.register_title": "Register", + "en.auth.telegram_tip": "You can log in using Telegram. It only works if you have set your @username in Telegram and this username is free on this wiki.", + "en.auth.try_again": "Try again", + "en.auth.username": "Username", + "en.edit.actions": "Actions", + "en.edit.bold": "Bold", + "en.edit.bullets": "Bullet list", + "en.edit.code": "Code block", + "en.edit.date": "Insert current date", + "en.edit.heading": "Heading", + "en.edit.help": "{{.link}} about mycomarkup", + "en.edit.help_link": "Learn more", + "en.edit.highlight": "Highlight", + "en.edit.hr": "Horizontal bar", + "en.edit.italic": "Italic", + "en.edit.link": "Link", + "en.edit.link_title": "Title", + "en.edit.markup": "Markup", + "en.edit.mono": "Monospace", + "en.edit.new_hypha": "You are creating a new hypha.", + "en.edit.numbers": "Number list", + "en.edit.preview": "Preview", + "en.edit.preview_tip": "Note that the hypha hasn't been saved yet. Here's the preview:", + "en.edit.preview_title": "Preview of %s", + "en.edit.rocket": "Rocketlink", + "en.edit.save": "Save", + "en.edit.selflink": "Link yourself", + "en.edit.strike": "Strikethrough", + "en.edit.sub": "Subtext", + "en.edit.super": "Supertext", + "en.edit.tag": "Describe your changes:", + "en.edit.time": "Insert current time", + "en.edit.title": "Edit %s", + "en.edit.transclude": "Transclusion", + "en.edit.underline": "Underline", + "en.help.attachment": "Attachment", + "en.help.configuration": "Configuration (for administrators)", + "en.help.empty_error_line_1": "Try finding a different entry that would help you.", + "en.help.empty_error_line_2a": "If you want to write this entry by yourself, consider", + "en.help.empty_error_line_2b": "to Mycorrhiza Wiki directly.", + "en.help.empty_error_link": "contributing", + "en.help.empty_error_title": "This entry does not exist!", + "en.help.entry_not_found": "Entry not found", + "en.help.hypha": "Hypha", + "en.help.interface": "Interface", + "en.help.lock": "Lock", + "en.help.main": "Main", + "en.help.mycomarkup": "Mycomarkup", + "en.help.prevnext": "Previous/next", + "en.help.recent_changes": "Recent changes", + "en.help.sibling_hyphae": "Sibling hyphae", + "en.help.special_pages": "Special pages", + "en.help.telegram": "Telegram authorization", + "en.help.title": "Help", + "en.help.top_bar": "Top bar", + "en.help.topics": "Help topics", + "en.help.whitelist": "Whitelist", + "en.ui.about_admins": "Administrators:", + "en.ui.about_homepage": "Home page:", + "en.ui.about_hyphae": "See {{.link}} for information about hyphae on this wiki.", + "en.ui.about_noauth": "This wiki does not use authorization", + "en.ui.about_title": "About {{.name}}", + "en.ui.about_usercount": "User count:", + "en.ui.about_version": "{{.pre}}Mycorrhiza Wiki{{.post}} version:", + "en.ui.admin_panel": "Admin panel", + "en.ui.ask_delete": "Delete %s?", + "en.ui.ask_delete_tip": "In this version of Mycorrhiza Wiki you cannot undelete a deleted hypha but the history can still be accessed.", + "en.ui.ask_delete_verb": "delete", + "en.ui.ask_really": "Do you really want to {{.verb}} hypha {{.name}}?", + "en.ui.ask_rename": "Rename %s", + "en.ui.ask_unattach": "Unattach %s?", + "en.ui.ask_unattach_verb": "unattach", + "en.ui.attach_empty": "This hypha has no attachment, you can upload it here.", + "en.ui.attach_include": "Include", + "en.ui.attach_include_tip": "This attachment is an image. To include it in a hypha, use a syntax like this:", + "en.ui.attach_link": "What are attachments?", + "en.ui.attach_new": "Attach", + "en.ui.attach_new_tip": "You can upload a new attachment. Please do not upload too big pictures unless you need to because may not want to wait for big pictures to load.", + "en.ui.attach_remove": "Unattach", + "en.ui.attach_remove_button": "Unattach", + "en.ui.attach_remove_tip": "Please note that you don't have to unattach before uploading a new attachment.", + "en.ui.attach_size_value": "{{.n}} byte%s", + "en.ui.attach_size_value+one": "", "en.ui.attach_size_value+other": "s", - "en.ui.attach_stat": "Stat", - "en.ui.attach_stat_mime": "MIME type:", - "en.ui.attach_stat_size": "File size:", - "en.ui.attach_tip": "You can manage the hypha's attachment on this page.", - "en.ui.attach_title": "Attachment of {{.name}}", - "en.ui.attach_upload": "Upload", - "en.ui.attachment_link": "Manage attachment", - "en.ui.backlinks_desc": "Hyphae which have a link to the selected hypha are listed below.", - "en.ui.backlinks_link": "{{.n}} backlink%s", - "en.ui.backlinks_link+one": "", - "en.ui.backlinks_link+other": "s", - "en.ui.backlinks_query": "Backlinks to ‘{{.query}}’", - "en.ui.backlinks_title": "Backlinks to {{.query}}", - "en.ui.cancel": "Cancel", - "en.ui.close_dialog": "Close this dialog", - "en.ui.confirm": "Confirm", - "en.ui.delete_link": "Delete", - "en.ui.diff_title": "Diff of {{.name}} at {{.rev}}", - "en.ui.edit_link": "Edit text", - "en.ui.error": "Error", - "en.ui.error_go_back": "Go back to the hypha.", - "en.ui.error_text_fetch": "Could not fetch text data", - "en.ui.error_try_again": "Try again", - "en.ui.header_no_rights": "You must be a moderator to update header links.", - "en.ui.history_link": "View history", - "en.ui.history_title": "History of %s", - "en.ui.list_desc": "This wiki has {{.n}} %s.", - "en.ui.list_desc+one": "hypha", - "en.ui.list_desc+other": "hyphae", - "en.ui.list_heading": "List of hyphae", - "en.ui.list_title": "List of pages", - "en.ui.login": "Login", - "en.ui.media_download": "Download media", - "en.ui.media_noaudio": "Your browser does not support audio.", - "en.ui.media_noaudio_link": "Download audio", - "en.ui.media_novideo": "Your browser does not support video.", - "en.ui.media_novideo_link": "Download video", - "en.ui.no_rights": "Not enough rights", - "en.ui.notexist_heading": "This hypha does not exist", - "en.ui.notexist_login": "Log in to your account, if you have one", - "en.ui.notexist_media": "Upload a media", - "en.ui.notexist_media_tip1": "Upload a picture, a video or an audio. Most common formats can be accessed from the browser, others can be only downloaded afterwards. You can write a description for the media later.", - "en.ui.notexist_norights": "You are not authorized to create new hyphae. Here is what you can do:", - "en.ui.notexist_register": "Register a new account", - "en.ui.notexist_write": "Write a text", - "en.ui.notexist_write_button": "Create", - "en.ui.notexist_write_myco": "Mycomarkup", - "en.ui.notexist_write_tip1": "Write a note, a diary, an article, a story or anything textual using {{.myco}}. Full history of edits to the document will be saved.", - "en.ui.notexist_write_tip2": "Make sure to follow this wiki's writing conventions if there are any.", - "en.ui.random_no_hyphae": "There are no hyphae", - "en.ui.random_no_hyphae_tip": "It is impossible to display a random hypha because the wiki does not contain any hyphae", - "en.ui.recent_count_post": "recent changes", - "en.ui.recent_count_pre": "See", - "en.ui.recent_empty": "Could not find any recent changes.", - "en.ui.recent_heading": "Recent Changes", - "en.ui.recent_subscribe": "Subscribe via {{.rss}}, {{.atom}} or {{.json}}", - "en.ui.recent_subscribe_json": "JSON feed", - "en.ui.recent_title": "{{.n}} recent change%s", - "en.ui.recent_title+one": "", - "en.ui.recent_title+other": "s", - "en.ui.register": "Register", - "en.ui.reindex_no_rights": "You must be an admin to reindex hyphae.", - "en.ui.rename_link": "Rename", - "en.ui.rename_recurse": "Rename subhyphae too", - "en.ui.rename_tip": "If you rename this hypha, all incoming links and all relative outcoming links will break. You will also lose all history for the new name. Rename carefully.", - "en.ui.rename_to": "New name", - "en.ui.revision_link": "Get Mycomarkup source of this revision", - "en.ui.revision_no_text": "This hypha had no text at this revision.", - "en.ui.revision_title": "{{.name}} at {{.rev}}", - "en.ui.revision_warning": "Please note that viewing attachments of hyphae is not supported in history for now.", - "en.ui.search_results_desc": "Every hypha name has been compared with the query. Hyphae that have matched the query are listed below.", - "en.ui.search_results_query": "Search results for ‘{{.query}}’", - "en.ui.search_results_title": "Search: {{.query}}", - "en.ui.sibling_hyphae": "Sibling hyphae", - "en.ui.subhyphae": "Subhyphae", - "en.ui.text_link": "View markup", - "en.ui.title_search": "Search by title", - "en.ui.users_admins": "Admins", - "en.ui.users_editors": "Editors", - "en.ui.users_heading": "List of users", - "en.ui.users_moderators": "Moderators", - "en.ui.users_title": "User list", - "ru.admin.newuser_create": "Создать", - "ru.admin.newuser_title": "Новый пользователь", - "ru.admin.panel_about": "Об этой вики", - "ru.admin.panel_reindex": "Переиндексировать гифы", - "ru.admin.panel_safe": "Безопасные действия", - "ru.admin.panel_shutdown": "Отключить вики", - "ru.admin.panel_title": "Панель администратора", - "ru.admin.panel_unsafe": "Опасные действия", - "ru.admin.panel_updateheader": "Обновить ссылки верхней панели", - "ru.admin.panel_userlist": "Список пользователей", - "ru.admin.panel_users": "Менеджер пользователей", - "ru.admin.user_delete": "Удалить", - "ru.admin.user_delete_heading": "Удалить пользователя", - "ru.admin.user_delete_tip": "Удаляет пользователя из базы данных. Правки пользователя будут сохранены. Имя пользователя освободится для повторной регистрации.", - "ru.admin.user_delete_warn": "Вы уверены, что хотите удалить {{.name}} из базы данных? Это действие нельзя отменить.", - "ru.admin.user_group_heading": "Изменить группу", - "ru.admin.user_title": "Пользователь %s", - "ru.admin.user_update": "Обновить", - "ru.admin.users_actions": "Действия", - "ru.admin.users_create": "Создать пользователя", - "ru.admin.users_edit": "Изменить", - "ru.admin.users_group": "Группа", - "ru.admin.users_name": "Имя", - "ru.admin.users_notime": "неизвестно", - "ru.admin.users_password": "Пароль", - "ru.admin.users_registered": "Время создания", - "ru.admin.users_reindex": "Переиндексировать пользователей", - "ru.admin.users_title": "Менеджер пользователей", - "ru.auth.cookie_tip": "Отправляя эту форму, вы разрешаете вики хранить cookie в вашем браузере. Это позволит движку связывать ваши правки с вашей учётной записью. Вы будете авторизованы, пока не выйдете из учётной записи.", - "ru.auth.error_password": "Неверный пароль.", - "ru.auth.error_telegram": "Не удалось авторизоваться через Телеграм.", - "ru.auth.error_username": "Неизвестное имя пользователя.", - "ru.auth.go_back": "Назад", - "ru.auth.go_home": "Домой", - "ru.auth.go_login": "На страницу входа", - "ru.auth.lock_title": "Доступ закрыт", - "ru.auth.login_button": "Войти", - "ru.auth.login_header": "Вход в «{{.name}}»", - "ru.auth.login_title": "Вход", - "ru.auth.logout_anon": "Вы не можете выйти, потому что ещё не вошли.", - "ru.auth.logout_button": "Подтвердить", - "ru.auth.logout_header": "Выйти?", - "ru.auth.logout_title": "Выйти?", - "ru.auth.noauth": "Аутентификация отключена. Вы можете делать правки анонимно.", - "ru.auth.noregister": "Регистрация в текущее время недоступна. Администраторы могут вручную создать вам учётную запись, свяжитесь с ними.", - "ru.auth.password": "Пароль", - "ru.auth.password_tip": "Сервер хранит ваш пароль в зашифрованном виде, даже администраторы не смогут его прочесть.", - "ru.auth.register_button": "Зарегистрироваться", - "ru.auth.register_header": "Регистрация на «{{.name}}»", - "ru.auth.register_title": "Регистрация", - "ru.auth.telegram_tip": "Вы можете войти с помощью Телеграм. Это сработает, если у вашего профиля есть @имя, и оно не занято в этой вики.", - "ru.auth.try_again": "Ещё раз", - "ru.auth.username": "Логин", - "ru.edit.actions": "Действия", - "ru.edit.bold": "Жирный", - "ru.edit.bullets": "Маркир. список", - "ru.edit.code": "Код-блок", - "ru.edit.date": "Текущая дата", - "ru.edit.heading": "Заголовок", - "ru.edit.help": "{{.link}} о микоразметке", - "ru.edit.help_link": "Подробнее", - "ru.edit.highlight": "Выделение", - "ru.edit.hr": "Гориз. черта", - "ru.edit.italic": "Курсив", - "ru.edit.link": "Ссылка", - "ru.edit.link_title": "Текст", - "ru.edit.markup": "Разметка", - "ru.edit.mono": "Моноширинный", - "ru.edit.new_hypha": "Вы создаёте новую гифу.", - "ru.edit.numbers": "Нумер. список", - "ru.edit.preview": "Предпросмотр", - "ru.edit.preview_tip": "Заметьте, эта гифа ещё не сохранена. Вот её предпросмотр:", - "ru.edit.preview_title": "Предпросмотр «%s»", - "ru.edit.rocket": "Ссылка-ракета", - "ru.edit.save": "Сохранить", - "ru.edit.selflink": "Ссылка на вас", - "ru.edit.strike": "Зачёркнутый", - "ru.edit.sub": "Подстрочный", - "ru.edit.super": "Надстрочный", - "ru.edit.tag": "Опишите ваши правки:", - "ru.edit.time": "Текущее время", - "ru.edit.title": "Редактирование «%s»", - "ru.edit.transclude": "Трансклюзия", - "ru.edit.underline": "Подчеркивание", - "ru.help.attachment": "Вложение", - "ru.help.configuration": "Конфигурация (для администраторов)", - "ru.help.empty_error_line_1": "Попробуйте поискать другую страницу, способную вам помочь.", - "ru.help.empty_error_line_2a": "Если вы хотите написать эту страницу сами, будем рады вашим правкам в ", - "ru.help.empty_error_line_2b": "Микоризы.", - "ru.help.empty_error_link": "репозитории", - "ru.help.empty_error_title": "Этой страницы не существует!", - "ru.help.entry_not_found": "Запись не найдена", - "ru.help.hypha": "Гифа", - "ru.help.interface": "Интерфейс", - "ru.help.lock": "Блокировка", - "ru.help.main": "Введение", - "ru.help.mycomarkup": "Микоразметка", - "ru.help.prevnext": "Назад/далее", - "ru.help.recent_changes": "Недавние изменения", - "ru.help.sibling_hyphae": "Гифы-сиблинги", - "ru.help.special_pages": "Специальные страницы", - "ru.help.telegram": "Авторизация через Телеграм", - "ru.help.title": "Справка", - "ru.help.top_bar": "Верхняя панель", - "ru.help.topics": "Темы справки", - "ru.help.whitelist": "Белый список", - "ru.ui.about_admins": "Администраторы:", - "ru.ui.about_homepage": "Домашняя гифа:", - "ru.ui.about_hyphae": "См. {{.link}}, чтобы узнать о гифах в этой вики.", - "ru.ui.about_noauth": "В этой вики нет авторизации", - "ru.ui.about_title": "О вики «{{.name}}»", - "ru.ui.about_usercount": "Число пользователей:", - "ru.ui.about_version": "Версия {{.pre}}Микоризы{{.post}}:", - "ru.ui.admin_panel": "Администрирование", - "ru.ui.ask_delete": "Удалить «%s»?", - "ru.ui.ask_delete_tip": "В этой версии Микоризы нельзя отменить удаление гифы, но её история останется доступной.", - "ru.ui.ask_delete_verb": "удалить", - "ru.ui.ask_really": "Вы действительно хотите {{.verb}} гифу «{{.name}}»?", - "ru.ui.ask_rename": "Переименовать «%s»", - "ru.ui.ask_unattach": "Открепить «%s»?", - "ru.ui.ask_unattach_verb": "открепить", - "ru.ui.attach_empty": "Эта гифа не имеет вложения, здесь вы можете его загрузить.", - "ru.ui.attach_include": "Добавление", - "ru.ui.attach_include_tip": "Это вложение – изображение. Чтобы добавить его в текст гифы, используйте синтаксис ниже:", - "ru.ui.attach_link": "Что такое вложение?", - "ru.ui.attach_new": "Прикрепить", - "ru.ui.attach_new_tip": "Вы можете загрузить новое вложение. Пожалуйста, не загружайте слишком большие изображения без необходимости, чтобы впоследствии не ждать её долгую загрузку.", - "ru.ui.attach_remove": "Открепить", - "ru.ui.attach_remove_button": "Открепить", - "ru.ui.attach_remove_tip": "Заметьте, чтобы заменить вложение, вам не нужно его перед этим откреплять.", - "ru.ui.attach_size_value": "{{.n}} %s", - "ru.ui.attach_size_value+few": "байта", - "ru.ui.attach_size_value+many": "байт", - "ru.ui.attach_size_value+one": "байт", - "ru.ui.attach_stat": "Свойства", - "ru.ui.attach_stat_mime": "MIME-тип:", - "ru.ui.attach_stat_size": "Размер файла:", - "ru.ui.attach_tip": "На этой странице вы можете управлять вложением.", - "ru.ui.attach_title": "Вложение «{{.name}}»", - "ru.ui.attach_upload": "Загрузить", - "ru.ui.attachment_link": "Вложение", - "ru.ui.backlinks_desc": "Ниже перечислены гифы, содержащие ссылку на выбранную гифу.", - "ru.ui.backlinks_link": "{{.n}} %s сюда", - "ru.ui.backlinks_link+few": "ссылки", - "ru.ui.backlinks_link+many": "ссылок", - "ru.ui.backlinks_link+one": "ссылка", - "ru.ui.backlinks_query": "Обратные ссылки на «{{.query}}»", - "ru.ui.backlinks_title": "Обратные ссылки на {{.query}}", - "ru.ui.cancel": "Отмена", - "ru.ui.close_dialog": "Закрыть этот диалог", - "ru.ui.confirm": "Применить", - "ru.ui.delete_link": "Удалить", - "ru.ui.diff_title": "Разница для «{{.name}}» из {{.rev}}", - "ru.ui.edit_link": "Редактировать", - "ru.ui.error": "Ошибка", - "ru.ui.error_go_back": "Вернуться к гифе.", - "ru.ui.error_text_fetch": "Не удалось получить текстовые данные", - "ru.ui.error_try_again": "Попробуйте ещё раз", - "ru.ui.header_no_rights": "Вы должны быть модератором, чтобы обновить ссылки в заголовке.", - "ru.ui.history_link": "История", - "ru.ui.history_title": "История «%s»", - "ru.ui.list_desc": "В этой вики {{.n}} %s.", - "ru.ui.list_desc+few": "гифы", - "ru.ui.list_desc+many": "гиф", - "ru.ui.list_desc+one": "гифа", - "ru.ui.list_heading": "Список гиф", - "ru.ui.list_title": "Список страниц", - "ru.ui.login": "Войти", - "ru.ui.media_download": "Скачать медиа", - "ru.ui.media_noaudio": "Ваш браузер не поддерживает аудио.", - "ru.ui.media_noaudio_link": "Скачать аудио", - "ru.ui.media_novideo": "Ваш браузер не поддерживает видео.", - "ru.ui.media_novideo_link": "Скачать видео", - "ru.ui.no_rights": "Недостаточно прав", - "ru.ui.notexist_heading": "Эта гифа не существует", - "ru.ui.notexist_login": "Войти в свою учётную запись, если она у вас есть", - "ru.ui.notexist_media": "Загрузить медиа", - "ru.ui.notexist_media_tip1": "Загрузите изображение, видео или аудио. Распространённые форматы можно просматривать из браузера, остальные – просто скачать. Позже вы можете дописать пояснение к этому медиа.", - "ru.ui.notexist_norights": "У вас нет прав для создания новых гиф. Вы можете:", - "ru.ui.notexist_register": "Создать новую учётную запись", - "ru.ui.notexist_write": "Написать текст", - "ru.ui.notexist_write_button": "Создать", - "ru.ui.notexist_write_myco": "микоразметки", - "ru.ui.notexist_write_tip1": "Напишите заметку, дневник, статью, рассказ или иной текст с помощью {{.myco}}. Сохраняется полная история правок документа.", - "ru.ui.notexist_write_tip2": "Не забывайте следовать правилам оформления этой вики, если они имеются.", - "ru.ui.random_no_hyphae": "В этой вики нет гиф", - "ru.ui.random_no_hyphae_tip": "Невозможно отобразить случайную гифу, потому что вики не содержит ни одной гифы", - "ru.ui.recent_count_post": "недавних изменений", - "ru.ui.recent_count_pre": "Отобразить", - "ru.ui.recent_empty": "Не удалось найти последние изменения.", - "ru.ui.recent_heading": "Недавние изменения", - "ru.ui.recent_subscribe": "Подписаться через {{.rss}}, {{.atom}} или {{.json}}", - "ru.ui.recent_subscribe_json": "JSON-ленту", - "ru.ui.recent_title": "{{.n}} %s", - "ru.ui.recent_title+few": "недавних изменения", - "ru.ui.recent_title+many": "недавних изменений", - "ru.ui.recent_title+one": "недавнее изменение", - "ru.ui.register": "Регистрация", - "ru.ui.reindex_no_rights": "Вы должны быть администратором, чтобы переиндексировать гифы.", - "ru.ui.rename_link": "Переименовать", - "ru.ui.rename_recurse": "Также переименовать подгифы", - "ru.ui.rename_tip": "Если вы переименуете эту гифу, сломаются все ссылки, ведущие на неё, а также исходящие относительные ссылки. Также вы потеряете всю текущую историю для нового названия. Переименовывайте аккуратно.", - "ru.ui.rename_to": "Новое название", - "ru.ui.revision_link": "Посмотреть код микоразметки для этой ревизии", - "ru.ui.revision_no_text": "В этой ревизии гифы не было текста.", - "ru.ui.revision_title": "{{.name}} из {{.rev}}", - "ru.ui.revision_warning": "Обратите внимание, просмотр вложений в истории гифы пока что недоступен.", - "ru.ui.search_results_desc": "Название каждой из существующих гиф сопоставлено с запросом. Подходящие гифы приведены ниже.", - "ru.ui.search_results_query": "Результаты поиска для «{{.query}}»", - "ru.ui.search_results_title": "Поиск: {{.query}}", - "ru.ui.sibling_hyphae": "Гифы-сиблинги", - "ru.ui.subhyphae": "Подгифы", - "ru.ui.text_link": "Посмотреть разметку", - "ru.ui.title_search": "Поиск по названию", - "ru.ui.users_admins": "Администраторы", - "ru.ui.users_editors": "Редакторы", - "ru.ui.users_heading": "Список пользователей", - "ru.ui.users_moderators": "Модераторы", - "ru.ui.users_title": "Список пользователей", + "en.ui.attach_stat": "Stat", + "en.ui.attach_stat_mime": "MIME type:", + "en.ui.attach_stat_size": "File size:", + "en.ui.attach_tip": "You can manage the hypha's attachment on this page.", + "en.ui.attach_title": "Attachment of {{.name}}", + "en.ui.attach_upload": "Upload", + "en.ui.attachment_link": "Manage attachment", + "en.ui.backlinks_desc": "Hyphae which have a link to the selected hypha are listed below.", + "en.ui.backlinks_link": "{{.n}} backlink%s", + "en.ui.backlinks_link+one": "", + "en.ui.backlinks_link+other": "s", + "en.ui.backlinks_query": "Backlinks to ‘{{.query}}’", + "en.ui.backlinks_title": "Backlinks to {{.query}}", + "en.ui.cancel": "Cancel", + "en.ui.close_dialog": "Close this dialog", + "en.ui.confirm": "Confirm", + "en.ui.delete_link": "Delete", + "en.ui.diff_title": "Diff of {{.name}} at {{.rev}}", + "en.ui.edit_link": "Edit text", + "en.ui.error": "Error", + "en.ui.error_go_back": "Go back to the hypha.", + "en.ui.error_text_fetch": "Could not fetch text data", + "en.ui.error_try_again": "Try again", + "en.ui.header_no_rights": "You must be a moderator to update header links.", + "en.ui.history_link": "View history", + "en.ui.history_title": "History of %s", + "en.ui.list_desc": "This wiki has {{.n}} %s.", + "en.ui.list_desc+one": "hypha", + "en.ui.list_desc+other": "hyphae", + "en.ui.list_heading": "List of hyphae", + "en.ui.list_title": "List of pages", + "en.ui.login": "Login", + "en.ui.media_download": "Download media", + "en.ui.media_noaudio": "Your browser does not support audio.", + "en.ui.media_noaudio_link": "Download audio", + "en.ui.media_novideo": "Your browser does not support video.", + "en.ui.media_novideo_link": "Download video", + "en.ui.no_rights": "Not enough rights", + "en.ui.notexist_heading": "This hypha does not exist", + "en.ui.notexist_login": "Log in to your account, if you have one", + "en.ui.notexist_media": "Upload a media", + "en.ui.notexist_media_tip1": "Upload a picture, a video or an audio. Most common formats can be accessed from the browser, others can be only downloaded afterwards. You can write a description for the media later.", + "en.ui.notexist_norights": "You are not authorized to create new hyphae. Here is what you can do:", + "en.ui.notexist_register": "Register a new account", + "en.ui.notexist_write": "Write a text", + "en.ui.notexist_write_button": "Create", + "en.ui.notexist_write_myco": "Mycomarkup", + "en.ui.notexist_write_tip1": "Write a note, a diary, an article, a story or anything textual using {{.myco}}. Full history of edits to the document will be saved.", + "en.ui.notexist_write_tip2": "Make sure to follow this wiki's writing conventions if there are any.", + "en.ui.random_no_hyphae": "There are no hyphae", + "en.ui.random_no_hyphae_tip": "It is impossible to display a random hypha because the wiki does not contain any hyphae", + "en.ui.recent_count_post": "recent changes", + "en.ui.recent_count_pre": "See", + "en.ui.recent_empty": "Could not find any recent changes.", + "en.ui.recent_heading": "Recent Changes", + "en.ui.recent_subscribe": "Subscribe via {{.rss}}, {{.atom}} or {{.json}}", + "en.ui.recent_subscribe_json": "JSON feed", + "en.ui.recent_title": "{{.n}} recent change%s", + "en.ui.recent_title+one": "", + "en.ui.recent_title+other": "s", + "en.ui.register": "Register", + "en.ui.reindex_no_rights": "You must be an admin to reindex hyphae.", + "en.ui.rename_link": "Rename", + "en.ui.rename_recurse": "Rename subhyphae too", + "en.ui.rename_tip": "If you rename this hypha, all incoming links and all relative outcoming links will break. You will also lose all history for the new name. Rename carefully.", + "en.ui.rename_to": "New name", + "en.ui.revision_link": "Get Mycomarkup source of this revision", + "en.ui.revision_no_text": "This hypha had no text at this revision.", + "en.ui.revision_title": "{{.name}} at {{.rev}}", + "en.ui.revision_warning": "Please note that viewing attachments of hyphae is not supported in history for now.", + "en.ui.search_results_desc": "Every hypha name has been compared with the query. Hyphae that have matched the query are listed below.", + "en.ui.search_results_query": "Search results for ‘{{.query}}’", + "en.ui.search_results_title": "Search: {{.query}}", + "en.ui.sibling_hyphae": "Sibling hyphae", + "en.ui.subhyphae": "Subhyphae", + "en.ui.text_link": "View markup", + "en.ui.title_search": "Search by title", + "en.ui.users_admins": "Admins", + "en.ui.users_editors": "Editors", + "en.ui.users_heading": "List of users", + "en.ui.users_moderators": "Moderators", + "en.ui.users_title": "User list", + "ru.admin.newuser_create": "Создать", + "ru.admin.newuser_title": "Новый пользователь", + "ru.admin.panel_about": "Об этой вики", + "ru.admin.panel_reindex": "Переиндексировать гифы", + "ru.admin.panel_safe": "Безопасные действия", + "ru.admin.panel_shutdown": "Отключить вики", + "ru.admin.panel_title": "Панель администратора", + "ru.admin.panel_unsafe": "Опасные действия", + "ru.admin.panel_updateheader": "Обновить ссылки верхней панели", + "ru.admin.panel_userlist": "Список пользователей", + "ru.admin.panel_users": "Менеджер пользователей", + "ru.admin.user_delete": "Удалить", + "ru.admin.user_delete_heading": "Удалить пользователя", + "ru.admin.user_delete_tip": "Удаляет пользователя из базы данных. Правки пользователя будут сохранены. Имя пользователя освободится для повторной регистрации.", + "ru.admin.user_delete_warn": "Вы уверены, что хотите удалить {{.name}} из базы данных? Это действие нельзя отменить.", + "ru.admin.user_group_heading": "Изменить группу", + "ru.admin.user_title": "Пользователь %s", + "ru.admin.user_update": "Обновить", + "ru.admin.users_actions": "Действия", + "ru.admin.users_create": "Создать пользователя", + "ru.admin.users_edit": "Изменить", + "ru.admin.users_group": "Группа", + "ru.admin.users_name": "Имя", + "ru.admin.users_notime": "неизвестно", + "ru.admin.users_password": "Пароль", + "ru.admin.users_registered": "Время создания", + "ru.admin.users_reindex": "Переиндексировать пользователей", + "ru.admin.users_title": "Менеджер пользователей", + "ru.auth.cookie_tip": "Отправляя эту форму, вы разрешаете вики хранить cookie в вашем браузере. Это позволит движку связывать ваши правки с вашей учётной записью. Вы будете авторизованы, пока не выйдете из учётной записи.", + "ru.auth.error_password": "Неверный пароль.", + "ru.auth.error_telegram": "Не удалось авторизоваться через Телеграм.", + "ru.auth.error_username": "Неизвестное имя пользователя.", + "ru.auth.go_back": "Назад", + "ru.auth.go_home": "Домой", + "ru.auth.go_login": "На страницу входа", + "ru.auth.lock_title": "Доступ закрыт", + "ru.auth.login_button": "Войти", + "ru.auth.login_header": "Вход в «{{.name}}»", + "ru.auth.login_title": "Вход", + "ru.auth.logout_anon": "Вы не можете выйти, потому что ещё не вошли.", + "ru.auth.logout_button": "Подтвердить", + "ru.auth.logout_header": "Выйти?", + "ru.auth.logout_title": "Выйти?", + "ru.auth.noauth": "Аутентификация отключена. Вы можете делать правки анонимно.", + "ru.auth.noregister": "Регистрация в текущее время недоступна. Администраторы могут вручную создать вам учётную запись, свяжитесь с ними.", + "ru.auth.password": "Пароль", + "ru.auth.password_tip": "Сервер хранит ваш пароль в зашифрованном виде, даже администраторы не смогут его прочесть.", + "ru.auth.register_button": "Зарегистрироваться", + "ru.auth.register_header": "Регистрация на «{{.name}}»", + "ru.auth.register_title": "Регистрация", + "ru.auth.telegram_tip": "Вы можете войти с помощью Телеграм. Это сработает, если у вашего профиля есть @имя, и оно не занято в этой вики.", + "ru.auth.try_again": "Ещё раз", + "ru.auth.username": "Логин", + "ru.edit.actions": "Действия", + "ru.edit.bold": "Жирный", + "ru.edit.bullets": "Маркир. список", + "ru.edit.code": "Код-блок", + "ru.edit.date": "Текущая дата", + "ru.edit.heading": "Заголовок", + "ru.edit.help": "{{.link}} о микоразметке", + "ru.edit.help_link": "Подробнее", + "ru.edit.highlight": "Выделение", + "ru.edit.hr": "Гориз. черта", + "ru.edit.italic": "Курсив", + "ru.edit.link": "Ссылка", + "ru.edit.link_title": "Текст", + "ru.edit.markup": "Разметка", + "ru.edit.mono": "Моноширинный", + "ru.edit.new_hypha": "Вы создаёте новую гифу.", + "ru.edit.numbers": "Нумер. список", + "ru.edit.preview": "Предпросмотр", + "ru.edit.preview_tip": "Заметьте, эта гифа ещё не сохранена. Вот её предпросмотр:", + "ru.edit.preview_title": "Предпросмотр «%s»", + "ru.edit.rocket": "Ссылка-ракета", + "ru.edit.save": "Сохранить", + "ru.edit.selflink": "Ссылка на вас", + "ru.edit.strike": "Зачёркнутый", + "ru.edit.sub": "Подстрочный", + "ru.edit.super": "Надстрочный", + "ru.edit.tag": "Опишите ваши правки:", + "ru.edit.time": "Текущее время", + "ru.edit.title": "Редактирование «%s»", + "ru.edit.transclude": "Трансклюзия", + "ru.edit.underline": "Подчеркивание", + "ru.help.attachment": "Вложение", + "ru.help.configuration": "Конфигурация (для администраторов)", + "ru.help.empty_error_line_1": "Попробуйте поискать другую страницу, способную вам помочь.", + "ru.help.empty_error_line_2a": "Если вы хотите написать эту страницу сами, будем рады вашим правкам в ", + "ru.help.empty_error_line_2b": "Микоризы.", + "ru.help.empty_error_link": "репозитории", + "ru.help.empty_error_title": "Этой страницы не существует!", + "ru.help.entry_not_found": "Запись не найдена", + "ru.help.hypha": "Гифа", + "ru.help.interface": "Интерфейс", + "ru.help.lock": "Блокировка", + "ru.help.main": "Введение", + "ru.help.mycomarkup": "Микоразметка", + "ru.help.prevnext": "Назад/далее", + "ru.help.recent_changes": "Недавние изменения", + "ru.help.sibling_hyphae": "Гифы-сиблинги", + "ru.help.special_pages": "Специальные страницы", + "ru.help.telegram": "Авторизация через Телеграм", + "ru.help.title": "Справка", + "ru.help.top_bar": "Верхняя панель", + "ru.help.topics": "Темы справки", + "ru.help.whitelist": "Белый список", + "ru.ui.about_admins": "Администраторы:", + "ru.ui.about_homepage": "Домашняя гифа:", + "ru.ui.about_hyphae": "См. {{.link}}, чтобы узнать о гифах в этой вики.", + "ru.ui.about_noauth": "В этой вики нет авторизации", + "ru.ui.about_title": "О вики «{{.name}}»", + "ru.ui.about_usercount": "Число пользователей:", + "ru.ui.about_version": "Версия {{.pre}}Микоризы{{.post}}:", + "ru.ui.admin_panel": "Администрирование", + "ru.ui.ask_delete": "Удалить «%s»?", + "ru.ui.ask_delete_tip": "В этой версии Микоризы нельзя отменить удаление гифы, но её история останется доступной.", + "ru.ui.ask_delete_verb": "удалить", + "ru.ui.ask_really": "Вы действительно хотите {{.verb}} гифу «{{.name}}»?", + "ru.ui.ask_rename": "Переименовать «%s»", + "ru.ui.ask_unattach": "Открепить «%s»?", + "ru.ui.ask_unattach_verb": "открепить", + "ru.ui.attach_empty": "Эта гифа не имеет вложения, здесь вы можете его загрузить.", + "ru.ui.attach_include": "Добавление", + "ru.ui.attach_include_tip": "Это вложение – изображение. Чтобы добавить его в текст гифы, используйте синтаксис ниже:", + "ru.ui.attach_link": "Что такое вложение?", + "ru.ui.attach_new": "Прикрепить", + "ru.ui.attach_new_tip": "Вы можете загрузить новое вложение. Пожалуйста, не загружайте слишком большие изображения без необходимости, чтобы впоследствии не ждать её долгую загрузку.", + "ru.ui.attach_remove": "Открепить", + "ru.ui.attach_remove_button": "Открепить", + "ru.ui.attach_remove_tip": "Заметьте, чтобы заменить вложение, вам не нужно его перед этим откреплять.", + "ru.ui.attach_size_value": "{{.n}} %s", + "ru.ui.attach_size_value+few": "байта", + "ru.ui.attach_size_value+many": "байт", + "ru.ui.attach_size_value+one": "байт", + "ru.ui.attach_stat": "Свойства", + "ru.ui.attach_stat_mime": "MIME-тип:", + "ru.ui.attach_stat_size": "Размер файла:", + "ru.ui.attach_tip": "На этой странице вы можете управлять вложением.", + "ru.ui.attach_title": "Вложение «{{.name}}»", + "ru.ui.attach_upload": "Загрузить", + "ru.ui.attachment_link": "Вложение", + "ru.ui.backlinks_desc": "Ниже перечислены гифы, содержащие ссылку на выбранную гифу.", + "ru.ui.backlinks_link": "{{.n}} %s сюда", + "ru.ui.backlinks_link+few": "ссылки", + "ru.ui.backlinks_link+many": "ссылок", + "ru.ui.backlinks_link+one": "ссылка", + "ru.ui.backlinks_query": "Обратные ссылки на «{{.query}}»", + "ru.ui.backlinks_title": "Обратные ссылки на {{.query}}", + "ru.ui.cancel": "Отмена", + "ru.ui.close_dialog": "Закрыть этот диалог", + "ru.ui.confirm": "Применить", + "ru.ui.delete_link": "Удалить", + "ru.ui.diff_title": "Разница для «{{.name}}» из {{.rev}}", + "ru.ui.edit_link": "Редактировать", + "ru.ui.error": "Ошибка", + "ru.ui.error_go_back": "Вернуться к гифе.", + "ru.ui.error_text_fetch": "Не удалось получить текстовые данные", + "ru.ui.error_try_again": "Попробуйте ещё раз", + "ru.ui.header_no_rights": "Вы должны быть модератором, чтобы обновить ссылки в заголовке.", + "ru.ui.history_link": "История", + "ru.ui.history_title": "История «%s»", + "ru.ui.list_desc": "В этой вики {{.n}} %s.", + "ru.ui.list_desc+few": "гифы", + "ru.ui.list_desc+many": "гиф", + "ru.ui.list_desc+one": "гифа", + "ru.ui.list_heading": "Список гиф", + "ru.ui.list_title": "Список страниц", + "ru.ui.login": "Войти", + "ru.ui.media_download": "Скачать медиа", + "ru.ui.media_noaudio": "Ваш браузер не поддерживает аудио.", + "ru.ui.media_noaudio_link": "Скачать аудио", + "ru.ui.media_novideo": "Ваш браузер не поддерживает видео.", + "ru.ui.media_novideo_link": "Скачать видео", + "ru.ui.no_rights": "Недостаточно прав", + "ru.ui.notexist_heading": "Эта гифа не существует", + "ru.ui.notexist_login": "Войти в свою учётную запись, если она у вас есть", + "ru.ui.notexist_media": "Загрузить медиа", + "ru.ui.notexist_media_tip1": "Загрузите изображение, видео или аудио. Распространённые форматы можно просматривать из браузера, остальные – просто скачать. Позже вы можете дописать пояснение к этому медиа.", + "ru.ui.notexist_norights": "У вас нет прав для создания новых гиф. Вы можете:", + "ru.ui.notexist_register": "Создать новую учётную запись", + "ru.ui.notexist_write": "Написать текст", + "ru.ui.notexist_write_button": "Создать", + "ru.ui.notexist_write_myco": "микоразметки", + "ru.ui.notexist_write_tip1": "Напишите заметку, дневник, статью, рассказ или иной текст с помощью {{.myco}}. Сохраняется полная история правок документа.", + "ru.ui.notexist_write_tip2": "Не забывайте следовать правилам оформления этой вики, если они имеются.", + "ru.ui.random_no_hyphae": "В этой вики нет гиф", + "ru.ui.random_no_hyphae_tip": "Невозможно отобразить случайную гифу, потому что вики не содержит ни одной гифы", + "ru.ui.recent_count_post": "недавних изменений", + "ru.ui.recent_count_pre": "Отобразить", + "ru.ui.recent_empty": "Не удалось найти последние изменения.", + "ru.ui.recent_heading": "Недавние изменения", + "ru.ui.recent_subscribe": "Подписаться через {{.rss}}, {{.atom}} или {{.json}}", + "ru.ui.recent_subscribe_json": "JSON-ленту", + "ru.ui.recent_title": "{{.n}} %s", + "ru.ui.recent_title+few": "недавних изменения", + "ru.ui.recent_title+many": "недавних изменений", + "ru.ui.recent_title+one": "недавнее изменение", + "ru.ui.register": "Регистрация", + "ru.ui.reindex_no_rights": "Вы должны быть администратором, чтобы переиндексировать гифы.", + "ru.ui.rename_link": "Переименовать", + "ru.ui.rename_recurse": "Также переименовать подгифы", + "ru.ui.rename_tip": "Если вы переименуете эту гифу, сломаются все ссылки, ведущие на неё, а также исходящие относительные ссылки. Также вы потеряете всю текущую историю для нового названия. Переименовывайте аккуратно.", + "ru.ui.rename_to": "Новое название", + "ru.ui.revision_link": "Посмотреть код микоразметки для этой ревизии", + "ru.ui.revision_no_text": "В этой ревизии гифы не было текста.", + "ru.ui.revision_title": "{{.name}} из {{.rev}}", + "ru.ui.revision_warning": "Обратите внимание, просмотр вложений в истории гифы пока что недоступен.", + "ru.ui.search_results_desc": "Название каждой из существующих гиф сопоставлено с запросом. Подходящие гифы приведены ниже.", + "ru.ui.search_results_query": "Результаты поиска для «{{.query}}»", + "ru.ui.search_results_title": "Поиск: {{.query}}", + "ru.ui.sibling_hyphae": "Гифы-сиблинги", + "ru.ui.subhyphae": "Подгифы", + "ru.ui.text_link": "Посмотреть разметку", + "ru.ui.title_search": "Поиск по названию", + "ru.ui.users_admins": "Администраторы", + "ru.ui.users_editors": "Редакторы", + "ru.ui.users_heading": "Список пользователей", + "ru.ui.users_moderators": "Модераторы", + "ru.ui.users_title": "Список пользователей", } type Replacements map[string]interface{} type Localizer struct { - Locale string + Locale string FallbackLocale string Localizations map[string]string } @@ -487,11 +487,11 @@ func (t Localizer) GetWithLocale(locale, key string, replacements ...*Replacemen } } - // If the str doesn't have any substitutions, no need to - // template.Execute. + // If the str doesn't have any substitutions, no need to + // template.Execute. if strings.Index(str, "}}") == -1 { - return str - } + return str + } return t.replace(str, replacements...) } diff --git a/views/stuff.qtpl b/views/stuff.qtpl index 9013219..e7332d3 100644 --- a/views/stuff.qtpl +++ b/views/stuff.qtpl @@ -1,4 +1,5 @@ {% import "path/filepath" %} +{% import "sort" %} {% import "github.com/bouncepaw/mycorrhiza/cfg" %} {% import "github.com/bouncepaw/mycorrhiza/hyphae" %} {% import "github.com/bouncepaw/mycorrhiza/user" %} @@ -213,6 +214,9 @@ for u := range user.YieldUsers() { editors = append(editors, u.Name) } } +sort.Strings(admins) +sort.Strings(moderators) +sort.Strings(editors) %}

{%s lc.Get("ui.users_admins") %}

diff --git a/views/stuff.qtpl.go b/views/stuff.qtpl.go index 0367af9..b2681e0 100644 --- a/views/stuff.qtpl.go +++ b/views/stuff.qtpl.go @@ -8,62 +8,65 @@ package views import "path/filepath" //line views/stuff.qtpl:2 -import "github.com/bouncepaw/mycorrhiza/cfg" +import "sort" //line views/stuff.qtpl:3 -import "github.com/bouncepaw/mycorrhiza/hyphae" +import "github.com/bouncepaw/mycorrhiza/cfg" //line views/stuff.qtpl:4 -import "github.com/bouncepaw/mycorrhiza/user" +import "github.com/bouncepaw/mycorrhiza/hyphae" //line views/stuff.qtpl:5 -import "github.com/bouncepaw/mycorrhiza/util" +import "github.com/bouncepaw/mycorrhiza/user" //line views/stuff.qtpl:6 +import "github.com/bouncepaw/mycorrhiza/util" + +//line views/stuff.qtpl:7 import "github.com/bouncepaw/mycorrhiza/l18n" -//line views/stuff.qtpl:8 +//line views/stuff.qtpl:9 import ( qtio422016 "io" qt422016 "github.com/valyala/quicktemplate" ) -//line views/stuff.qtpl:8 +//line views/stuff.qtpl:9 var ( _ = qtio422016.Copy _ = qt422016.AcquireByteBuffer ) -//line views/stuff.qtpl:8 +//line views/stuff.qtpl:9 func StreamBaseHTML(qw422016 *qt422016.Writer, title, body string, lc *l18n.Localizer, u *user.User, headElements ...string) { -//line views/stuff.qtpl:8 +//line views/stuff.qtpl:9 qw422016.N().S(` `) -//line views/stuff.qtpl:14 +//line views/stuff.qtpl:15 qw422016.E().S(title) -//line views/stuff.qtpl:14 +//line views/stuff.qtpl:15 qw422016.N().S(` `) -//line views/stuff.qtpl:18 +//line views/stuff.qtpl:19 for _, el := range headElements { -//line views/stuff.qtpl:18 +//line views/stuff.qtpl:19 qw422016.N().S(el) -//line views/stuff.qtpl:18 +//line views/stuff.qtpl:19 } -//line views/stuff.qtpl:18 +//line views/stuff.qtpl:19 qw422016.N().S(` @@ -73,144 +76,144 @@ func StreamBaseHTML(qw422016 *qt422016.Writer, title, body string, lc *l18n.Loca
  • `) -//line views/stuff.qtpl:35 +//line views/stuff.qtpl:36 if cfg.UseAuth { -//line views/stuff.qtpl:35 +//line views/stuff.qtpl:36 qw422016.N().S(` `) -//line views/stuff.qtpl:55 +//line views/stuff.qtpl:56 } -//line views/stuff.qtpl:55 +//line views/stuff.qtpl:56 qw422016.N().S(`
  • `) -//line views/stuff.qtpl:71 +//line views/stuff.qtpl:72 qw422016.N().S(body) -//line views/stuff.qtpl:71 +//line views/stuff.qtpl:72 qw422016.N().S(` `) -//line views/stuff.qtpl:83 +//line views/stuff.qtpl:84 StreamCommonScripts(qw422016) -//line views/stuff.qtpl:83 +//line views/stuff.qtpl:84 qw422016.N().S(` `) -//line views/stuff.qtpl:87 +//line views/stuff.qtpl:88 } -//line views/stuff.qtpl:87 +//line views/stuff.qtpl:88 func WriteBaseHTML(qq422016 qtio422016.Writer, title, body string, lc *l18n.Localizer, u *user.User, headElements ...string) { -//line views/stuff.qtpl:87 +//line views/stuff.qtpl:88 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:87 +//line views/stuff.qtpl:88 StreamBaseHTML(qw422016, title, body, lc, u, headElements...) -//line views/stuff.qtpl:87 +//line views/stuff.qtpl:88 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:87 +//line views/stuff.qtpl:88 } -//line views/stuff.qtpl:87 +//line views/stuff.qtpl:88 func BaseHTML(title, body string, lc *l18n.Localizer, u *user.User, headElements ...string) string { -//line views/stuff.qtpl:87 +//line views/stuff.qtpl:88 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:87 +//line views/stuff.qtpl:88 WriteBaseHTML(qb422016, title, body, lc, u, headElements...) -//line views/stuff.qtpl:87 +//line views/stuff.qtpl:88 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:87 +//line views/stuff.qtpl:88 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:87 +//line views/stuff.qtpl:88 return qs422016 -//line views/stuff.qtpl:87 +//line views/stuff.qtpl:88 } -//line views/stuff.qtpl:89 +//line views/stuff.qtpl:90 func StreamTitleSearchHTML(qw422016 *qt422016.Writer, query string, generator func(string) <-chan string, lc *l18n.Localizer) { -//line views/stuff.qtpl:89 +//line views/stuff.qtpl:90 qw422016.N().S(`

    `) -//line views/stuff.qtpl:92 +//line views/stuff.qtpl:93 qw422016.E().S(lc.Get("ui.search_results_query", &l18n.Replacements{"query": query})) -//line views/stuff.qtpl:92 +//line views/stuff.qtpl:93 qw422016.N().S(`

    `) -//line views/stuff.qtpl:93 +//line views/stuff.qtpl:94 qw422016.E().S(lc.Get("ui.search_results_desc")) -//line views/stuff.qtpl:93 +//line views/stuff.qtpl:94 qw422016.N().S(`

    `) -//line views/stuff.qtpl:102 +//line views/stuff.qtpl:103 } -//line views/stuff.qtpl:102 +//line views/stuff.qtpl:103 func WriteTitleSearchHTML(qq422016 qtio422016.Writer, query string, generator func(string) <-chan string, lc *l18n.Localizer) { -//line views/stuff.qtpl:102 +//line views/stuff.qtpl:103 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:102 +//line views/stuff.qtpl:103 StreamTitleSearchHTML(qw422016, query, generator, lc) -//line views/stuff.qtpl:102 +//line views/stuff.qtpl:103 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:102 +//line views/stuff.qtpl:103 } -//line views/stuff.qtpl:102 +//line views/stuff.qtpl:103 func TitleSearchHTML(query string, generator func(string) <-chan string, lc *l18n.Localizer) string { -//line views/stuff.qtpl:102 +//line views/stuff.qtpl:103 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:102 +//line views/stuff.qtpl:103 WriteTitleSearchHTML(qb422016, query, generator, lc) -//line views/stuff.qtpl:102 +//line views/stuff.qtpl:103 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:102 +//line views/stuff.qtpl:103 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:102 +//line views/stuff.qtpl:103 return qs422016 -//line views/stuff.qtpl:102 +//line views/stuff.qtpl:103 } // It outputs a poorly formatted JSON, but it works and is valid. -//line views/stuff.qtpl:105 +//line views/stuff.qtpl:106 func StreamTitleSearchJSON(qw422016 *qt422016.Writer, query string, generator func(string) <-chan string) { -//line views/stuff.qtpl:105 +//line views/stuff.qtpl:106 qw422016.N().S(` `) -//line views/stuff.qtpl:107 +//line views/stuff.qtpl:108 // Lol counter := 0 -//line views/stuff.qtpl:109 +//line views/stuff.qtpl:110 qw422016.N().S(` { "source_query": "`) -//line views/stuff.qtpl:111 +//line views/stuff.qtpl:112 qw422016.E().S(query) -//line views/stuff.qtpl:111 +//line views/stuff.qtpl:112 qw422016.N().S(`", "results": [ `) -//line views/stuff.qtpl:113 +//line views/stuff.qtpl:114 for hyphaName := range generator(query) { -//line views/stuff.qtpl:113 +//line views/stuff.qtpl:114 qw422016.N().S(` `) -//line views/stuff.qtpl:114 +//line views/stuff.qtpl:115 if counter > 0 { -//line views/stuff.qtpl:114 +//line views/stuff.qtpl:115 qw422016.N().S(`, `) -//line views/stuff.qtpl:114 +//line views/stuff.qtpl:115 } -//line views/stuff.qtpl:114 +//line views/stuff.qtpl:115 qw422016.N().S(`{ "canonical_name": "`) -//line views/stuff.qtpl:115 +//line views/stuff.qtpl:116 qw422016.E().S(hyphaName) -//line views/stuff.qtpl:115 +//line views/stuff.qtpl:116 qw422016.N().S(`", "beautiful_name": "`) -//line views/stuff.qtpl:116 +//line views/stuff.qtpl:117 qw422016.E().S(util.BeautifulName(hyphaName)) -//line views/stuff.qtpl:116 +//line views/stuff.qtpl:117 qw422016.N().S(`", "url": "`) -//line views/stuff.qtpl:117 +//line views/stuff.qtpl:118 qw422016.E().S(cfg.URL + "/hypha/" + hyphaName) -//line views/stuff.qtpl:117 +//line views/stuff.qtpl:118 qw422016.N().S(`" }`) -//line views/stuff.qtpl:118 +//line views/stuff.qtpl:119 counter++ -//line views/stuff.qtpl:118 +//line views/stuff.qtpl:119 qw422016.N().S(` `) -//line views/stuff.qtpl:119 +//line views/stuff.qtpl:120 } -//line views/stuff.qtpl:119 +//line views/stuff.qtpl:120 qw422016.N().S(` ] } `) -//line views/stuff.qtpl:122 +//line views/stuff.qtpl:123 } -//line views/stuff.qtpl:122 +//line views/stuff.qtpl:123 func WriteTitleSearchJSON(qq422016 qtio422016.Writer, query string, generator func(string) <-chan string) { -//line views/stuff.qtpl:122 +//line views/stuff.qtpl:123 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:122 +//line views/stuff.qtpl:123 StreamTitleSearchJSON(qw422016, query, generator) -//line views/stuff.qtpl:122 +//line views/stuff.qtpl:123 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:122 +//line views/stuff.qtpl:123 } -//line views/stuff.qtpl:122 +//line views/stuff.qtpl:123 func TitleSearchJSON(query string, generator func(string) <-chan string) string { -//line views/stuff.qtpl:122 +//line views/stuff.qtpl:123 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:122 +//line views/stuff.qtpl:123 WriteTitleSearchJSON(qb422016, query, generator) -//line views/stuff.qtpl:122 +//line views/stuff.qtpl:123 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:122 +//line views/stuff.qtpl:123 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:122 +//line views/stuff.qtpl:123 return qs422016 -//line views/stuff.qtpl:122 +//line views/stuff.qtpl:123 } -//line views/stuff.qtpl:124 +//line views/stuff.qtpl:125 func StreamBacklinksHTML(qw422016 *qt422016.Writer, query string, generator func(string) <-chan string, lc *l18n.Localizer) { -//line views/stuff.qtpl:124 +//line views/stuff.qtpl:125 qw422016.N().S(`

    `) -//line views/stuff.qtpl:127 +//line views/stuff.qtpl:128 qw422016.E().S(lc.Get("ui.backlinks_query", &l18n.Replacements{"query": query})) -//line views/stuff.qtpl:127 +//line views/stuff.qtpl:128 qw422016.N().S(`

    `) -//line views/stuff.qtpl:128 +//line views/stuff.qtpl:129 qw422016.E().S(lc.Get("ui.backlinks_desc")) -//line views/stuff.qtpl:128 +//line views/stuff.qtpl:129 qw422016.N().S(`

    `) -//line views/stuff.qtpl:137 +//line views/stuff.qtpl:138 } -//line views/stuff.qtpl:137 +//line views/stuff.qtpl:138 func WriteBacklinksHTML(qq422016 qtio422016.Writer, query string, generator func(string) <-chan string, lc *l18n.Localizer) { -//line views/stuff.qtpl:137 +//line views/stuff.qtpl:138 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:137 +//line views/stuff.qtpl:138 StreamBacklinksHTML(qw422016, query, generator, lc) -//line views/stuff.qtpl:137 +//line views/stuff.qtpl:138 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:137 +//line views/stuff.qtpl:138 } -//line views/stuff.qtpl:137 +//line views/stuff.qtpl:138 func BacklinksHTML(query string, generator func(string) <-chan string, lc *l18n.Localizer) string { -//line views/stuff.qtpl:137 +//line views/stuff.qtpl:138 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:137 +//line views/stuff.qtpl:138 WriteBacklinksHTML(qb422016, query, generator, lc) -//line views/stuff.qtpl:137 +//line views/stuff.qtpl:138 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:137 +//line views/stuff.qtpl:138 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:137 +//line views/stuff.qtpl:138 return qs422016 -//line views/stuff.qtpl:137 +//line views/stuff.qtpl:138 } -//line views/stuff.qtpl:139 +//line views/stuff.qtpl:140 func StreamHelpHTML(qw422016 *qt422016.Writer, content, lang string, lc *l18n.Localizer) { -//line views/stuff.qtpl:139 +//line views/stuff.qtpl:140 qw422016.N().S(`
    `) -//line views/stuff.qtpl:143 +//line views/stuff.qtpl:144 qw422016.N().S(content) -//line views/stuff.qtpl:143 +//line views/stuff.qtpl:144 qw422016.N().S(`
    `) -//line views/stuff.qtpl:146 +//line views/stuff.qtpl:147 qw422016.N().S(helpTopicsHTML(lang, lc)) -//line views/stuff.qtpl:146 +//line views/stuff.qtpl:147 qw422016.N().S(`
    `) -//line views/stuff.qtpl:148 +//line views/stuff.qtpl:149 } -//line views/stuff.qtpl:148 +//line views/stuff.qtpl:149 func WriteHelpHTML(qq422016 qtio422016.Writer, content, lang string, lc *l18n.Localizer) { -//line views/stuff.qtpl:148 +//line views/stuff.qtpl:149 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:148 +//line views/stuff.qtpl:149 StreamHelpHTML(qw422016, content, lang, lc) -//line views/stuff.qtpl:148 +//line views/stuff.qtpl:149 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:148 +//line views/stuff.qtpl:149 } -//line views/stuff.qtpl:148 +//line views/stuff.qtpl:149 func HelpHTML(content, lang string, lc *l18n.Localizer) string { -//line views/stuff.qtpl:148 +//line views/stuff.qtpl:149 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:148 +//line views/stuff.qtpl:149 WriteHelpHTML(qb422016, content, lang, lc) -//line views/stuff.qtpl:148 +//line views/stuff.qtpl:149 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:148 +//line views/stuff.qtpl:149 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:148 +//line views/stuff.qtpl:149 return qs422016 -//line views/stuff.qtpl:148 +//line views/stuff.qtpl:149 } -//line views/stuff.qtpl:150 +//line views/stuff.qtpl:151 func StreamHelpEmptyErrorHTML(qw422016 *qt422016.Writer, lc *l18n.Localizer) { -//line views/stuff.qtpl:150 +//line views/stuff.qtpl:151 qw422016.N().S(`

    `) -//line views/stuff.qtpl:151 +//line views/stuff.qtpl:152 qw422016.E().S(lc.Get("help.empty_error_title")) -//line views/stuff.qtpl:151 +//line views/stuff.qtpl:152 qw422016.N().S(`

    `) -//line views/stuff.qtpl:152 +//line views/stuff.qtpl:153 qw422016.E().S(lc.Get("help.empty_error_line_1")) -//line views/stuff.qtpl:152 +//line views/stuff.qtpl:153 qw422016.N().S(`

    `) -//line views/stuff.qtpl:153 +//line views/stuff.qtpl:154 qw422016.E().S(lc.Get("help.empty_error_line_2a")) -//line views/stuff.qtpl:153 +//line views/stuff.qtpl:154 qw422016.N().S(` `) -//line views/stuff.qtpl:153 +//line views/stuff.qtpl:154 qw422016.E().S(lc.Get("help.empty_error_link")) -//line views/stuff.qtpl:153 +//line views/stuff.qtpl:154 qw422016.N().S(` `) -//line views/stuff.qtpl:153 +//line views/stuff.qtpl:154 qw422016.E().S(lc.Get("help.empty_error_line_2b")) -//line views/stuff.qtpl:153 +//line views/stuff.qtpl:154 qw422016.N().S(`

    `) -//line views/stuff.qtpl:154 +//line views/stuff.qtpl:155 } -//line views/stuff.qtpl:154 +//line views/stuff.qtpl:155 func WriteHelpEmptyErrorHTML(qq422016 qtio422016.Writer, lc *l18n.Localizer) { -//line views/stuff.qtpl:154 +//line views/stuff.qtpl:155 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:154 +//line views/stuff.qtpl:155 StreamHelpEmptyErrorHTML(qw422016, lc) -//line views/stuff.qtpl:154 +//line views/stuff.qtpl:155 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:154 +//line views/stuff.qtpl:155 } -//line views/stuff.qtpl:154 +//line views/stuff.qtpl:155 func HelpEmptyErrorHTML(lc *l18n.Localizer) string { -//line views/stuff.qtpl:154 +//line views/stuff.qtpl:155 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:154 +//line views/stuff.qtpl:155 WriteHelpEmptyErrorHTML(qb422016, lc) -//line views/stuff.qtpl:154 +//line views/stuff.qtpl:155 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:154 +//line views/stuff.qtpl:155 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:154 +//line views/stuff.qtpl:155 return qs422016 -//line views/stuff.qtpl:154 +//line views/stuff.qtpl:155 } -//line views/stuff.qtpl:156 +//line views/stuff.qtpl:157 func streamhelpTopicsHTML(qw422016 *qt422016.Writer, lang string, lc *l18n.Localizer) { -//line views/stuff.qtpl:156 +//line views/stuff.qtpl:157 qw422016.N().S(` `) -//line views/stuff.qtpl:190 +//line views/stuff.qtpl:191 } -//line views/stuff.qtpl:190 +//line views/stuff.qtpl:191 func writehelpTopicsHTML(qq422016 qtio422016.Writer, lang string, lc *l18n.Localizer) { -//line views/stuff.qtpl:190 +//line views/stuff.qtpl:191 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:190 +//line views/stuff.qtpl:191 streamhelpTopicsHTML(qw422016, lang, lc) -//line views/stuff.qtpl:190 +//line views/stuff.qtpl:191 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:190 +//line views/stuff.qtpl:191 } -//line views/stuff.qtpl:190 +//line views/stuff.qtpl:191 func helpTopicsHTML(lang string, lc *l18n.Localizer) string { -//line views/stuff.qtpl:190 +//line views/stuff.qtpl:191 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:190 +//line views/stuff.qtpl:191 writehelpTopicsHTML(qb422016, lang, lc) -//line views/stuff.qtpl:190 +//line views/stuff.qtpl:191 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:190 +//line views/stuff.qtpl:191 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:190 +//line views/stuff.qtpl:191 return qs422016 -//line views/stuff.qtpl:190 +//line views/stuff.qtpl:191 } -//line views/stuff.qtpl:192 +//line views/stuff.qtpl:193 func streamhelpTopicBadgeHTML(qw422016 *qt422016.Writer, lang, topic string) { -//line views/stuff.qtpl:192 +//line views/stuff.qtpl:193 qw422016.N().S(` ? `) -//line views/stuff.qtpl:194 +//line views/stuff.qtpl:195 } -//line views/stuff.qtpl:194 +//line views/stuff.qtpl:195 func writehelpTopicBadgeHTML(qq422016 qtio422016.Writer, lang, topic string) { -//line views/stuff.qtpl:194 +//line views/stuff.qtpl:195 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:194 +//line views/stuff.qtpl:195 streamhelpTopicBadgeHTML(qw422016, lang, topic) -//line views/stuff.qtpl:194 +//line views/stuff.qtpl:195 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:194 +//line views/stuff.qtpl:195 } -//line views/stuff.qtpl:194 +//line views/stuff.qtpl:195 func helpTopicBadgeHTML(lang, topic string) string { -//line views/stuff.qtpl:194 +//line views/stuff.qtpl:195 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:194 +//line views/stuff.qtpl:195 writehelpTopicBadgeHTML(qb422016, lang, topic) -//line views/stuff.qtpl:194 +//line views/stuff.qtpl:195 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:194 +//line views/stuff.qtpl:195 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:194 +//line views/stuff.qtpl:195 return qs422016 -//line views/stuff.qtpl:194 +//line views/stuff.qtpl:195 } -//line views/stuff.qtpl:196 +//line views/stuff.qtpl:197 func StreamUserListHTML(qw422016 *qt422016.Writer, lc *l18n.Localizer) { -//line views/stuff.qtpl:196 +//line views/stuff.qtpl:197 qw422016.N().S(`

    `) -//line views/stuff.qtpl:199 +//line views/stuff.qtpl:200 qw422016.E().S(lc.Get("ui.users_heading")) -//line views/stuff.qtpl:199 +//line views/stuff.qtpl:200 qw422016.N().S(`

    `) -//line views/stuff.qtpl:201 +//line views/stuff.qtpl:202 var ( admins = make([]string, 0) moderators = make([]string, 0) @@ -846,386 +849,406 @@ func StreamUserListHTML(qw422016 *qt422016.Writer, lc *l18n.Localizer) { editors = append(editors, u.Name) } } + sort.Strings(admins) + sort.Strings(moderators) + sort.Strings(editors) -//line views/stuff.qtpl:216 +//line views/stuff.qtpl:220 qw422016.N().S(`

    `) -//line views/stuff.qtpl:218 +//line views/stuff.qtpl:222 qw422016.E().S(lc.Get("ui.users_admins")) -//line views/stuff.qtpl:218 +//line views/stuff.qtpl:222 qw422016.N().S(`

      `) -//line views/stuff.qtpl:219 +//line views/stuff.qtpl:223 for _, name := range admins { -//line views/stuff.qtpl:219 +//line views/stuff.qtpl:223 qw422016.N().S(`
    1. `) -//line views/stuff.qtpl:220 +//line views/stuff.qtpl:224 qw422016.E().S(name) -//line views/stuff.qtpl:220 +//line views/stuff.qtpl:224 qw422016.N().S(`
    2. `) -//line views/stuff.qtpl:221 +//line views/stuff.qtpl:225 } -//line views/stuff.qtpl:221 +//line views/stuff.qtpl:225 qw422016.N().S(`

    `) -//line views/stuff.qtpl:224 +//line views/stuff.qtpl:228 qw422016.E().S(lc.Get("ui.users_moderators")) -//line views/stuff.qtpl:224 +//line views/stuff.qtpl:228 qw422016.N().S(`

      `) -//line views/stuff.qtpl:225 +//line views/stuff.qtpl:229 for _, name := range moderators { -//line views/stuff.qtpl:225 +//line views/stuff.qtpl:229 qw422016.N().S(`
    1. `) -//line views/stuff.qtpl:226 +//line views/stuff.qtpl:230 qw422016.E().S(name) -//line views/stuff.qtpl:226 +//line views/stuff.qtpl:230 qw422016.N().S(`
    2. `) -//line views/stuff.qtpl:227 +//line views/stuff.qtpl:231 } -//line views/stuff.qtpl:227 +//line views/stuff.qtpl:231 qw422016.N().S(`

    `) -//line views/stuff.qtpl:230 +//line views/stuff.qtpl:234 qw422016.E().S(lc.Get("ui.users_editors")) -//line views/stuff.qtpl:230 +//line views/stuff.qtpl:234 qw422016.N().S(`

      `) -//line views/stuff.qtpl:231 +//line views/stuff.qtpl:235 for _, name := range editors { -//line views/stuff.qtpl:231 +//line views/stuff.qtpl:235 qw422016.N().S(`
    1. `) -//line views/stuff.qtpl:232 +//line views/stuff.qtpl:236 qw422016.E().S(name) -//line views/stuff.qtpl:232 +//line views/stuff.qtpl:236 qw422016.N().S(`
    2. `) -//line views/stuff.qtpl:233 +//line views/stuff.qtpl:237 } -//line views/stuff.qtpl:233 +//line views/stuff.qtpl:237 qw422016.N().S(`
    `) -//line views/stuff.qtpl:237 +//line views/stuff.qtpl:241 } -//line views/stuff.qtpl:237 +//line views/stuff.qtpl:241 func WriteUserListHTML(qq422016 qtio422016.Writer, lc *l18n.Localizer) { -//line views/stuff.qtpl:237 +//line views/stuff.qtpl:241 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:237 +//line views/stuff.qtpl:241 StreamUserListHTML(qw422016, lc) -//line views/stuff.qtpl:237 +//line views/stuff.qtpl:241 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:237 +//line views/stuff.qtpl:241 } -//line views/stuff.qtpl:237 +//line views/stuff.qtpl:241 func UserListHTML(lc *l18n.Localizer) string { -//line views/stuff.qtpl:237 +//line views/stuff.qtpl:241 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:237 +//line views/stuff.qtpl:241 WriteUserListHTML(qb422016, lc) -//line views/stuff.qtpl:237 +//line views/stuff.qtpl:241 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:237 +//line views/stuff.qtpl:241 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:237 +//line views/stuff.qtpl:241 return qs422016 -//line views/stuff.qtpl:237 +//line views/stuff.qtpl:241 } -//line views/stuff.qtpl:239 +//line views/stuff.qtpl:243 func StreamHyphaListHTML(qw422016 *qt422016.Writer, lc *l18n.Localizer) { -//line views/stuff.qtpl:239 +//line views/stuff.qtpl:243 qw422016.N().S(`

    `) -//line views/stuff.qtpl:242 +//line views/stuff.qtpl:246 qw422016.E().S(lc.Get("ui.list_heading")) -//line views/stuff.qtpl:242 +//line views/stuff.qtpl:246 qw422016.N().S(`

    `) -//line views/stuff.qtpl:243 +//line views/stuff.qtpl:247 qw422016.E().S(lc.GetPlural("ui.list_desc", hyphae.Count())) -//line views/stuff.qtpl:243 +//line views/stuff.qtpl:247 qw422016.N().S(`

      `) -//line views/stuff.qtpl:245 - for h := range hyphae.YieldExistingHyphae() { -//line views/stuff.qtpl:245 +//line views/stuff.qtpl:250 + hyphaNames := make(chan string) + sortedHypha := hyphae.PathographicSort(hyphaNames) + for hypha := range hyphae.YieldExistingHyphae() { + hyphaNames <- hypha.Name + } + close(hyphaNames) + +//line views/stuff.qtpl:256 + qw422016.N().S(` + `) +//line views/stuff.qtpl:257 + for hyphaName := range sortedHypha { +//line views/stuff.qtpl:257 + qw422016.N().S(` + `) +//line views/stuff.qtpl:258 + hypha := hyphae.ByName(hyphaName) + +//line views/stuff.qtpl:258 qw422016.N().S(`
    • `) -//line views/stuff.qtpl:247 - qw422016.E().S(util.BeautifulName(h.Name)) -//line views/stuff.qtpl:247 +//line views/stuff.qtpl:260 + qw422016.E().S(util.BeautifulName(hypha.Name)) +//line views/stuff.qtpl:260 qw422016.N().S(` `) -//line views/stuff.qtpl:248 - if h.BinaryPath != "" { -//line views/stuff.qtpl:248 +//line views/stuff.qtpl:261 + if hypha.BinaryPath != "" { +//line views/stuff.qtpl:261 qw422016.N().S(` `) -//line views/stuff.qtpl:249 - qw422016.E().S(filepath.Ext(h.BinaryPath)[1:]) -//line views/stuff.qtpl:249 +//line views/stuff.qtpl:262 + qw422016.E().S(filepath.Ext(hypha.BinaryPath)[1:]) +//line views/stuff.qtpl:262 qw422016.N().S(` `) -//line views/stuff.qtpl:250 +//line views/stuff.qtpl:263 } -//line views/stuff.qtpl:250 +//line views/stuff.qtpl:263 qw422016.N().S(`
    • `) -//line views/stuff.qtpl:252 +//line views/stuff.qtpl:265 } -//line views/stuff.qtpl:252 +//line views/stuff.qtpl:265 qw422016.N().S(`
    `) -//line views/stuff.qtpl:256 +//line views/stuff.qtpl:269 } -//line views/stuff.qtpl:256 +//line views/stuff.qtpl:269 func WriteHyphaListHTML(qq422016 qtio422016.Writer, lc *l18n.Localizer) { -//line views/stuff.qtpl:256 +//line views/stuff.qtpl:269 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:256 +//line views/stuff.qtpl:269 StreamHyphaListHTML(qw422016, lc) -//line views/stuff.qtpl:256 +//line views/stuff.qtpl:269 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:256 +//line views/stuff.qtpl:269 } -//line views/stuff.qtpl:256 +//line views/stuff.qtpl:269 func HyphaListHTML(lc *l18n.Localizer) string { -//line views/stuff.qtpl:256 +//line views/stuff.qtpl:269 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:256 +//line views/stuff.qtpl:269 WriteHyphaListHTML(qb422016, lc) -//line views/stuff.qtpl:256 +//line views/stuff.qtpl:269 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:256 +//line views/stuff.qtpl:269 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:256 +//line views/stuff.qtpl:269 return qs422016 -//line views/stuff.qtpl:256 +//line views/stuff.qtpl:269 } -//line views/stuff.qtpl:258 +//line views/stuff.qtpl:271 func StreamAboutHTML(qw422016 *qt422016.Writer, lc *l18n.Localizer) { -//line views/stuff.qtpl:258 +//line views/stuff.qtpl:271 qw422016.N().S(`

    `) -//line views/stuff.qtpl:262 +//line views/stuff.qtpl:275 qw422016.E().S(lc.Get("ui.about_title", &l18n.Replacements{"name": cfg.WikiName})) -//line views/stuff.qtpl:262 +//line views/stuff.qtpl:275 qw422016.N().S(`

    • `) -//line views/stuff.qtpl:264 +//line views/stuff.qtpl:277 qw422016.N().S(lc.Get("ui.about_version", &l18n.Replacements{"pre": "", "post": ""})) -//line views/stuff.qtpl:264 +//line views/stuff.qtpl:277 qw422016.N().S(` 1.5.0
    • `) -//line views/stuff.qtpl:265 +//line views/stuff.qtpl:278 if cfg.UseAuth { -//line views/stuff.qtpl:265 +//line views/stuff.qtpl:278 qw422016.N().S(`
    • `) -//line views/stuff.qtpl:266 +//line views/stuff.qtpl:279 qw422016.E().S(lc.Get("ui.about_usercount")) -//line views/stuff.qtpl:266 +//line views/stuff.qtpl:279 qw422016.N().S(` `) -//line views/stuff.qtpl:266 +//line views/stuff.qtpl:279 qw422016.N().DUL(user.Count()) -//line views/stuff.qtpl:266 +//line views/stuff.qtpl:279 qw422016.N().S(`
    • `) -//line views/stuff.qtpl:267 +//line views/stuff.qtpl:280 qw422016.E().S(lc.Get("ui.about_homepage")) -//line views/stuff.qtpl:267 +//line views/stuff.qtpl:280 qw422016.N().S(` `) -//line views/stuff.qtpl:267 +//line views/stuff.qtpl:280 qw422016.E().S(cfg.HomeHypha) -//line views/stuff.qtpl:267 +//line views/stuff.qtpl:280 qw422016.N().S(`
    • `) -//line views/stuff.qtpl:268 +//line views/stuff.qtpl:281 qw422016.E().S(lc.Get("ui.about_admins")) -//line views/stuff.qtpl:268 +//line views/stuff.qtpl:281 qw422016.N().S(``) -//line views/stuff.qtpl:268 +//line views/stuff.qtpl:281 for i, username := range user.ListUsersWithGroup("admin") { -//line views/stuff.qtpl:269 +//line views/stuff.qtpl:282 if i > 0 { -//line views/stuff.qtpl:269 +//line views/stuff.qtpl:282 qw422016.N().S(` `) -//line views/stuff.qtpl:270 +//line views/stuff.qtpl:283 } -//line views/stuff.qtpl:270 +//line views/stuff.qtpl:283 qw422016.N().S(` `) -//line views/stuff.qtpl:271 +//line views/stuff.qtpl:284 qw422016.E().S(username) -//line views/stuff.qtpl:271 +//line views/stuff.qtpl:284 qw422016.N().S(``) -//line views/stuff.qtpl:271 +//line views/stuff.qtpl:284 } -//line views/stuff.qtpl:271 +//line views/stuff.qtpl:284 qw422016.N().S(`
    • `) -//line views/stuff.qtpl:272 +//line views/stuff.qtpl:285 } else { -//line views/stuff.qtpl:272 +//line views/stuff.qtpl:285 qw422016.N().S(`
    • `) -//line views/stuff.qtpl:273 +//line views/stuff.qtpl:286 qw422016.E().S(lc.Get("ui.about_noauth")) -//line views/stuff.qtpl:273 +//line views/stuff.qtpl:286 qw422016.N().S(`
    • `) -//line views/stuff.qtpl:274 +//line views/stuff.qtpl:287 } -//line views/stuff.qtpl:274 +//line views/stuff.qtpl:287 qw422016.N().S(`

    `) -//line views/stuff.qtpl:276 +//line views/stuff.qtpl:289 qw422016.N().S(lc.Get("ui.about_hyphae", &l18n.Replacements{"link": "/list"})) -//line views/stuff.qtpl:276 +//line views/stuff.qtpl:289 qw422016.N().S(`

    `) -//line views/stuff.qtpl:280 +//line views/stuff.qtpl:293 } -//line views/stuff.qtpl:280 +//line views/stuff.qtpl:293 func WriteAboutHTML(qq422016 qtio422016.Writer, lc *l18n.Localizer) { -//line views/stuff.qtpl:280 +//line views/stuff.qtpl:293 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:280 +//line views/stuff.qtpl:293 StreamAboutHTML(qw422016, lc) -//line views/stuff.qtpl:280 +//line views/stuff.qtpl:293 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:280 +//line views/stuff.qtpl:293 } -//line views/stuff.qtpl:280 +//line views/stuff.qtpl:293 func AboutHTML(lc *l18n.Localizer) string { -//line views/stuff.qtpl:280 +//line views/stuff.qtpl:293 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:280 +//line views/stuff.qtpl:293 WriteAboutHTML(qb422016, lc) -//line views/stuff.qtpl:280 +//line views/stuff.qtpl:293 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:280 +//line views/stuff.qtpl:293 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:280 +//line views/stuff.qtpl:293 return qs422016 -//line views/stuff.qtpl:280 +//line views/stuff.qtpl:293 } -//line views/stuff.qtpl:282 +//line views/stuff.qtpl:295 func StreamCommonScripts(qw422016 *qt422016.Writer) { -//line views/stuff.qtpl:282 +//line views/stuff.qtpl:295 qw422016.N().S(` `) -//line views/stuff.qtpl:283 +//line views/stuff.qtpl:296 for _, scriptPath := range cfg.CommonScripts { -//line views/stuff.qtpl:283 +//line views/stuff.qtpl:296 qw422016.N().S(` `) -//line views/stuff.qtpl:285 +//line views/stuff.qtpl:298 } -//line views/stuff.qtpl:285 +//line views/stuff.qtpl:298 qw422016.N().S(` `) -//line views/stuff.qtpl:286 +//line views/stuff.qtpl:299 } -//line views/stuff.qtpl:286 +//line views/stuff.qtpl:299 func WriteCommonScripts(qq422016 qtio422016.Writer) { -//line views/stuff.qtpl:286 +//line views/stuff.qtpl:299 qw422016 := qt422016.AcquireWriter(qq422016) -//line views/stuff.qtpl:286 +//line views/stuff.qtpl:299 StreamCommonScripts(qw422016) -//line views/stuff.qtpl:286 +//line views/stuff.qtpl:299 qt422016.ReleaseWriter(qw422016) -//line views/stuff.qtpl:286 +//line views/stuff.qtpl:299 } -//line views/stuff.qtpl:286 +//line views/stuff.qtpl:299 func CommonScripts() string { -//line views/stuff.qtpl:286 +//line views/stuff.qtpl:299 qb422016 := qt422016.AcquireByteBuffer() -//line views/stuff.qtpl:286 +//line views/stuff.qtpl:299 WriteCommonScripts(qb422016) -//line views/stuff.qtpl:286 +//line views/stuff.qtpl:299 qs422016 := string(qb422016.B) -//line views/stuff.qtpl:286 +//line views/stuff.qtpl:299 qt422016.ReleaseByteBuffer(qb422016) -//line views/stuff.qtpl:286 +//line views/stuff.qtpl:299 return qs422016 -//line views/stuff.qtpl:286 +//line views/stuff.qtpl:299 }